


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子设计自动化课程设计报告学生姓名:学 号:课设题目: VGA 彩条信号显示控制器设计同组人:电子设计自动化课程设计报告郝欣欣课程设计内容1、使用Verilog 语言和Modelsim仿真器完成可显示横彩条、竖彩条、棋盘格相间的VGA控制器的设计和验证2、 设计并验证可显示英语单词”HIT”的VGA控制器3、使用Quartus II 和SOPC实验箱验证设计的正确性4、Verilog 代码要符合微电子中心编码标准、FPGA原理CPLD FPGA是在PAL GAL等基础上发展起来的一种具有丰富的可编程I/O引脚、逻辑宏单元、门电路以及 RAM空间的可编程逻辑器件,几乎所有应用门 阵列、PLD和中
2、小规模通用数字集成电路的场合均可应用 FPGA和CPLD器件CPLD勺设计是基于乘积项选择矩阵来实现的,而 FPGAS于查找表来设计的。查RAM中,然后在输1所示:找表就是实现将输入信号的各种组合功能以一定的次序写入 入信号的作用下,输出特定的函数运算结果。其结构图如图徊入器输入4T-图1. FPGA查找表单元一个N输入查找表(LUT,Look Up Table)可以实现N个输入变量的任何逻辑功 能,如 N输入“与”、N输入“异或”等。输入多于N个的函数、方程必须分开用几个查找表(LUT)实现(如图2所示)o16x1RAMI |图2 FPGA查.找表单元内部结构该系统设计中,FPGA芯片用的是
3、ALTERA公司的EP1K30QC208-2它的系统结构 如图3所示。它由若干个逻辑单元和中央布线池加 I/O端口构成快速通道互连函I固逻辑单兀逻辑阵列块图3 EP1K30QC20站部结构三、VGA接口VGA勺全称为Video Graphic Array,即显示绘图阵列。在 PC行业发展的初 期,VGA以其支持在640X480的较高分辨率下同时显示16种色彩或256种灰度, 同时在320X240分辨率下可以同时显示256种颜色的良好特性得到广泛支持。后 来,厂商们纷纷在VGA基础上加以扩充,如将显存提高至1M并使其支持更高分 辨率如800X600或1024X768,这些扩充的模式就称之为 VE
4、SA(VideoElectronics Standards Association ,视频电子标准协会)的Super VGA模式,简称SVGA 现在的显卡和显示器都支持 SVGA莫式。MgCiti10tot临址地聊1VGA图4 VGA接口VGA接口就是显卡上输出模拟信号的接口,也叫 D-Sub接口。VGA接口是- 种D型接口,上面共有15针空,分成三排,每排五个。VGA接口是显卡上应用 最为广泛的接口类型,绝大多数的显卡都带有此种接口。表1 VGA管脚定义管脚定义1红基色red2绿基色gree n3蓝基色blue4地址码ID Bit5自测试(各家定义不同)6红地7绿地8蓝地9保留(各家定义不同
5、)10数字地11地址码12地址码13行同步14场同步15地址码(各家定义不同)通过模拟VGAS口和计算机连接的显示器的工作原理,是计算机内部以数字方式 生成的显示图像信息,被显卡中的数字/模拟转换器转变为R、G B三原色信号 和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模 拟CRT显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。而 对于LCD DLP等数字显示设备,显示设备中需配置相应的 A/D(模拟/数字)转换 器,将模拟信号转变为数字信号。在经过 D/A和A/D2次转换后,不可避免地造 成了一些图像细节的损失。VGAS口应用于CRT显示器无可厚非,但用
6、于连接液 晶之类的显示设备,则转换过程的图像损失会使显示效果略微下降。CRT显示器因为设计制造上的原因,只能接受模拟信号输入,也就是我们为什么在CRT显示 器上只看到VGA接口的原因。四、VGAS示接口原理计算机显示器的显示有许多标准,常见的有VGA SVGA等。本系统采用FPGA 来实现图像显示控制器,这在产品开发设计中有许多实际应用。常见的彩色显示器,一般由CRT(阴极射线管)构成,彩色是由G R、B(绿: Green,红:Red,蓝:Blue)三基色组成。显示是用逐行扫描的方式解决,阴极 射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRBE基色,合成一个彩色像素。扫描从屏幕的左上方开始
7、,从左到右,从上到下,进行扫描,每扫完一行, 电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同 步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。对于普通的VGA显示器,其引出线共含5个信号:G R、B:三基色信号; HS:行同步信号;VS:场同步信号。对于5个信号的时序驱动,对于 VGA显示器要严格遵循“ VGA工业标准”, 即640X480X 60Hz模式。通常我们用的显示器都满足工业标准,因此我们设计 VGA控制器时要参考显示器的技术规格。图5是VGA行扫描、场扫描的时序图:bla
8、kkBLANKVijTKThft scrHtyifiQ舛点书效显示数据也_ 什丁炉-p厂牛tLFtF 12 3 4SQ :12 3Hsjnw;BLANK图5 VGA行扫描、场扫描时序图行时序祯时序abcdabd1024 x%SXGA (75Ih)L.212.20.2328768i1 Q24x76&XG A(60Hz)2.12.5 15.80.4676838tX)x600SVGA(60Hz)3.22.220,01.04h6001640x480VGA(75Hz)2.0工8 I20.30.5374801表2 VGA参考时序设计VGA工业标准所要求的频率:时钟频率(Clock frequency ):
9、 25.175MHz (像素输出的频率);行频(Line frequency ): 31469Hz场频(Field frequency ): 59.94Hz (每秒图像刷新频率)。五、FPGA的设计实现设计VGA图像显示控制需要注意两个问题:一个是时序的驱动,这是完成设 计的关键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;另一个是 VGA信号的电平驱动。显示控制器设计提示:显示器的技术规格提供的行频一般都满足在 30-45KHZ (保守数据),场频一般满足在50-75HZ (保守数据),针对以上保守数 据,我们以30KHZ的行频进行扫描时所需时钟频率为:30KHZX 800 (行周期
10、) =24MHz则场频为:30KHz 525 (场周期)=57.14Hz,针对实验箱的条件,可以 用12MHz的信号经过倍频(EP1K30QC208-芯片特有的功能,在 MaxPlusll软件 中调用参数可设置兆功能元件库 mega_lpm的CLKLOC元件来倍频)来产生24MHz 的时钟频率,参考设计的顶层文件如下图所示::CL0CKB0aST=2:IINFLIT FREQIUENCY=Z4HS &H hs Q3(fotl27 -VS:阿时-|/ VS 打dot 侦 128,RESETIR:QU7PVT 、0 一raiBia-innraiaiiBiaiiiiiraiaiBiii4 r-HD石
11、:dUTPirr.aiaiBJbiii. jibH Q madot砂站:卅rprr1 b ;gadat126;图6.VGA接口实现顶视图VGACOR模块包含了扫描时序产生模块、图像描述模块。时序产生模块的设 计可参考图5所示来设计,图像描述模块主要通过 640X 480个像素点来描述图 像。如本项设计的彩条信号发生器可通过图像描述模块产生如下表所示的3种显示模式,共6种显示变化的图像。表3 VGA图形编码1行彩条1白黄青绿品红监黑2:黑蓝红品绿青黄白2r竖彩条11白黄青绿品红监黑2:黑蓝红品绿青黄白3棋盘格1棋盘格显示模式12 :棋盘格显示模式2上表颜色对应的编码为:表4 VGA颜色编码颜色黑
12、八、蓝红品绿青黄白G00001111R00110011B01010101在设计完彩条信号发生器的基础上很容易完成汉字 /图像的设计。由于本设 计是对视频数据进行处理,用普通的设计方法(不使用专用芯片),在单芯片上实现是不可思议的,而在此用 FPGA设计,轻松地达到了面积和速度上的要求。六、程序及仿真(一)、管脚分配本设计米用主板上的VGA接口实验模式:模式5时钟及控制clk-pin_29 clock9实验要求采用12M的时钟rstpin_240 键8,低电平有效,作为使能信号 MD -pin_233 键1,模式选择信号,共有6种模式 显示器输出R -pin_180PIO29G -pin_181
13、PIO30B -pin_182PIO31HS -pin_183PIO32VS -pin_185PIO34(二八彩条发生器程序实现及仿真1、主程序module vga( clk_25m,rst_n, / 系统控制 hsyn c,vs yn c,vga_rgb,MD / VGA 控制 );in put clk_25m; / 25MHzin put rst_n; 低电平复位in put MD;/ FPGA与VGA接口信号output hsync; 行同步信号output vsync; 场同步信号output2:0 vga_rgb;/坐标计数reg9:0 x_cnt;行坐标reg9:0 y_cnt;/
14、 列坐标always (posedge clk_25m or negedge rst_n) if(!rst_n) x_cnt = 10d0;else if(x_cnt = 10d799) x_cnt = 10d0; else x_cnt = x_cnt+1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) y_cnt = 10d0;else if(y_cnt = 10d524) y_cnt = 10d0; else if(x_cnt = 10d799) y_cnt = y_cnt+1b1;/ 产生 VGA 场同步 ,行同步信号 reg
15、 hsync_r,vsync_r;always (posedge clk_25m or negedge rst_n) if(!rst_n) hsync_r = 1b1;else if(x_cnt = 10d0) hsync_r = 1b0; /产生 hsync 信号 else if(x_cnt = 10d96) hsync_r = 1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) vsync_r = 1b1;else if(y_cnt = 10d0) vsync_r = 1b0; / 产生 vsync 信号 else if(y_c
16、nt = 10d2) vsync_r = 1b1;assign hsync = hsync_r; assign vsync = vsync_r;/有效显示标志位产生reg valid_yr; /行显示有效信号 always (posedge clk_25m or negedge rst_n)if(!rst_n) valid_yr = 1b0;else if(y_cnt = 10d32) valid_yr = 1b1; else if(y_cnt = 10d512) valid_yr = 1b0;wire valid_y = valid_yr;reg valid_r; / VGA 有效显示区标志
17、位always (posedge clk_25m or negedge rst_n)if(!rst_n) valid_r = 1b0;else if(x_cnt = 10d141) & valid_y) valid_r = 1b1;else if(x_cnt = 10d781) & valid_y) valid_r = 1b0;wire valid = valid_r;wire9:0 x_dis;/横坐标显示有效区域相对坐标值 0-639wire9:0 y_dis;/竖坐标显示有效区域相对坐标值 0-479assign x_dis = x_cnt - 10d142;assign y_dis =
18、 y_cnt - 10d33;/reg2:0 cnt;always (posedge MD or negedge rst_n) begin if(!rst_n)cnt = 3d0;else if(cnt=3d5) cnt=3d0;else cnt=cnt+3d1;end/ VGA 色彩信号产生/*RGB = 000黑色RGB = 100红色= 001蓝色= 101紫色= 010绿色= 110黄色= 011青色= 111白色*/reg2:0 vga_rgb;always( posedge clk_25m)begin if(!valid) vga_rgb = 10d0 & x_dis 10d80)
19、 vga_rgb = 10d80 & x_dis 10d160) vga_rgb = 10d160 & x_dis 10d240) vga_rgb = 10d240 & x_dis 10d320) vga_rgb = 10d320 & x_dis 10d400) vga_rgb = 10d400 & x_dis 10d480) vga_rgb = 10d480 & x_dis 10d560) vga_rgb = 10d560 & x_dis 10d640) vga_rgb = 10d0 & x_dis 10d80) vga_rgb = 10d80 & x_dis 10d160) vga_rgb
20、 = 10d160 & x_dis 10d240) vga_rgb = 10d240 & x_dis 10d320) vga_rgb = 10d320 & x_dis 10d400) vga_rgb = 10d400 & x_dis 10d480) vga_rgb = 10d480 & x_dis 10d560) vga_rgb = 10d560 & x_dis 10d640) vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d1
21、80 & y_dis 10d240) vga_rgb = 10d240 & y_dis 10d300) vga_rgb = 10d300 & y_dis 10d360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d180 & y_dis 10d240) vga_rgb = 10d240 & y_
22、dis 10d300) vga_rgb = 10d300 & y_dis 10d360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d180 & y_dis 10d240) vga_rgb = 10d240 & y_dis 10d300) vga_rgb = 10d300 & y_dis 10d
23、360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 3d7;end 10d80,10d160,10d240,10d320,10d400,10d480,10d560,10d640: vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d180 & y_dis 10d240) vga_rgb = 10d240 & y_dis 10
24、d300) vga_rgb = 10d300 & y_dis 10d360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 3d0; end 10d80,10d160,10d240,10d320,10d400,10d480,10d560,10d640: vga_rgb = vga_rgb+3d1; /每 80 个横坐标像素点后显示色彩数据增 1 变化 default: ;endcaseend end endendmodule 2、验证程序timescale 1 ns/ 1 ps modul
25、e tb_vga ();reg t_clk_25m; reg t_rst_n;wire t_hsync;wire 2:0 t_vga_rgb;wire t_vsync;wire t_MD;vgahct dut( .clk_25m(t_clk_25m), .hsync(t_hsync), .rst_n(t_rst_n), .vga_rgb(t_vga_rgb), .vsync(t_vsync),.MD(t_MD) );initial begin t_clk_25m=0;t_rst_n=1;t)MD=O;#20;t_rst_ n=0;#50;t_rst_ n=1;$display(R unning
26、 testbe nch);endalways #0.04 t_clk_25m=t_clk_25m;always #200 t_MD=t_MD;en dmodule(三八 字符显示程序及仿真1、主程序timescale 1ns / 1psmodule vga_char( clk_25m,rst_n, 系统控制hsync,vsync,vga_rgb / VGA 控制 );in put clk_25m; / 25MHzin put rst_ n;低电平复位/ FPGA与VGA接口信号output hsync; 行同步信号output vsync; 场同步信号 output2:0 vga_rgb;/坐
27、标计数reg9:0 x_cnt;行坐标always (posedge clk_25m or negedge rst_n) if(!rst_n) x_cnt = 10d0;else if(x_cnt = 10d799) x_cnt = 10d0; else x_cnt = x_cnt+1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) y_cnt = 10d0;else if(y_cnt = 10d524) y_cnt = 10d0; else if(x_cnt = 10d799) y_cnt = y_cnt+1b1;/ VGA 场同
28、步 ,行同步信号 reg hsync_r,vsync_r;/同步信号always (posedge clk_25m or negedge rst_n) if(!rst_n) hsync_r = 1b1;else if(x_cnt = 10d0) hsync_r = 1b0;/产生 hsync 信号else if(x_cnt = 10d96) hsync_r = 1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) vsync_r = 1b1;else if(y_cnt = 10d0) vsync_r = 1b0;/产生 vsync 信
29、号else if(y_cnt = 10d2) vsync_r = 1b1;assign hsync = hsync_r; assign vsync = vsync_r;/有效显示标志位产生reg valid_yr; /行显示有效信号 always (posedge clk_25m or negedge rst_n)if(!rst_n) valid_yr = 1b0;else if(y_cnt = 10d32) valid_yr = 1b1;else if(y_cnt = 10d512) valid_yr = 1b0;wire valid_y = valid_yr;reg valid_r; /
30、VGA 有效显示区标志位 always (posedge clk_25m or negedge rst_n) if(!rst_n) valid_r = 1b0;else if(x_cnt = 10d141) & valid_y) valid_r = 1b1;else if(x_cnt = 10d781) & valid_y) valid_r = 1b0;wire valid = valid_r;/wire9:0 x_dis;/横坐标显示有效区域相对坐标值0-639wire9:0 y_dis;/竖坐标显示有效区域相对坐标值0-479/assign x_dis = x_cnt - 10d142;
31、assign y_dis = y_cnt - 10d33; / VGA色彩信号产生/*RGB= 000黑色RGB= 100红色= 001蓝色=101紫色= 010绿色=110黄色= 011青色=111白色*/*HIT 字模参数 */parameter char_line0=24h000000, char_line1=24h000000, char_line2=24h000000, char_line3=24he77cfe, char_line4=24h421092, char_line5=24h421010, char_line6=24h421010, char_line7=24h421010
32、, char_line8=24h7e1010, char_line9=24h421010, char_linea=24h421010, char_lineb=24h421010, char_linec=24h421010, char_lined=24he77c38, char_linee=24h000000, char_linef=24h000000;reg4:0 char_bit; /显示位计算always (posedge clk_25m or negedge rst_n)if(!rst_n) char_bit = 5h1f;else if(x_cnt = 10d442) char_bit
33、 10d442 & x_cnt 10d466) char_bit = char_bit-1b1; 后面的数据reg2:0 vga_rgb; / VGA 色彩显示寄存器always (posedge clk_25m)if(!valid) vga_rgb 10d442 & x_cnt 10d467) begin case(y_dis)10d231: if(char_line0char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d232: if(char_line1char_bit) vga_rgb = 3b100; else vga_rgb =
34、 3b010;/绿色10d233: if(char_line2char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d234: if(char_line3char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d235: if(char_line4char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d236: if(char_line5char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10
35、d237: if(char_line6char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d238: if(char_line7char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d239: if(char_line8char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d240: if(char_line9char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/绿色10d241: if(char_lineachar_bit) vga_rgb = 3b100; else vga_rgb = 3b0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学课件截屏
- 邢台市中医院骨质疏松症诊断与骨折风险评估考核
- 邢台市中医院颈动脉体瘤切除术技能考核
- 2025湖南邵阳市新宁产业开发区选调5人考前自测高频考点模拟试题附答案详解(典型题)
- 沧州市中医院员工职业生涯发展规划辅导案例分析
- 2025人民医院多学科协作快速响应考核
- 2025年甘肃省民航机场集团校园招聘45人考前自测高频考点模拟试题及答案详解(有一套)
- 2025河南许昌市建安区招聘公益性岗位人员13人考前自测高频考点模拟试题及答案详解(易错题)
- 2025广西南宁市第二十一中学顶岗教师招聘1人模拟试卷(含答案详解)
- 承德市人民医院炎性肌病诊断与肌肉力量评估考核
- 2025年全国中小学生天文知识竞赛试题库
- 运动医学培训体系构建
- 2025年中煤职称计算机考试题库
- 2025年北京师大附属实验中学丘成桐少年班选拔数学试卷
- 2025年中石化校招试题及答案
- 橡胶制品生产工(橡胶硫化工)安全技术操作规程
- 成分制备情况介绍
- 绿色化学技术在精细化工中的应用研究
- 项目管理课件培训
- 女性私密健康与护理课程
- 2025至2030中国游戏陪玩行业市场发展分析及发展前景与投资报告
评论
0/150
提交评论