版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子设计自动化课程设计报告 学生姓名: 学 号: 学 院:信息科学与工程学院 专 业:电子科学与技术专业年 级:08级 指导教师: 日 期: 2011年8月31日 摘要:vga(视频图形阵列)作为一种标准的显示接口得到广泛的应用。本设计是基于gw48系统sopc实验箱,依据vga显示的原理,“抛弃”vga显示专用芯片,利用fpga(现场可编程门阵列)设计vga接口对于更深入学习接口技术有很大的帮助,同时可以将要显示的数据直接送到显示器上显示,省去了计算机的处理过程,能加快数据的处理速度和节约硬件成本。关键词:fpga,vga, 显示接口 电子设计自动化课程设计报告一、 fpga的原理cpld、
2、fpga是在pal、gal等基础上发展起来的一种具有丰富的可编程i/o引脚、逻辑宏单元、门电路以及ram空间的可编程逻辑器件,几乎所有应用门阵列、pld和中小规模通用数字集成电路的场合均可应用fpga和cpld器件。cpld的设计是基于乘积项选择矩阵来实现的,而fpga基于查找表来设计的。查找表就是实现将输入信号的各种组合功能以一定的次序写入ram中,然后在输入信号的作用下,输出特定的函数运算结果。其结构图如图1所示:图1. fpga查找表单元 一个n输入查找表 (lut,look up table)可以实现n个输入变量的任何逻辑功能,如 n输入“与”、 n输入“异或”等。 输入多于n个的函数
3、、方程必须分开用几个查找表( lut)实现(如图2所示)。图2 fpga查找表单元内部结构该系统设计中,fpga芯片用的是altera公司的ep1k30qc208-2,它的系统结构如图3所示。它由若干个逻辑单元和中央布线池加i/o端口构成图3 ep1k30qc208内部结构二、vga接口vga的全称为video graphic array,即显示绘图阵列。在pc行业发展的初期,vga以其支持在640x480的较高分辨率下同时显示16种色彩或256种灰度,同时在320x240分辨率下可以同时显示256种颜色的良好特性得到广泛支持。后来,厂商们纷纷在vga基础上加以扩充,如将显存提高至1m并使其支
4、持更高分辨率如800x600或1024x768,这些扩充的模式就称之为vesa(video electronics standards association,视频电子标准协会)的super vga模式,简称svga,现在的显卡和显示器都支持svga模式。图4 vga接口vga接口就是显卡上输出模拟信号的接口,也叫d-sub接口。vga接口是一种d型接口,上面共有15针空,分成三排,每排五个。vga接口是显卡上应用最为广泛的接口类型,绝大多数的显卡都带有此种接口。表1 vga管脚定义管脚定义1红基色 red 2绿基色 green 3蓝基色 blue4地址码 id bit5自测试 (各家定义不同
5、)6红地7绿地8蓝地9保留(各家定义不同)10数字地11地址码12地址码13行同步14场同步15地址码 (各家定义不同)通过模拟vga接口和计算机连接的显示器的工作原理,是计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为r、g、b三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟crt显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。而对于lcd、dlp等数字显示设备,显示设备中需配置相应的a/d(模拟/数字)转换器,将模拟信号转变为数字信号。在经过d/a和a/d2次转换后,不可避免地造成了一些图像细节的损失。vga接口应用于
6、crt显示器无可厚非,但用于连接液晶之类的显示设备,则转换过程的图像损失会使显示效果略微下降。crt显示器因为设计制造上的原因,只能接受模拟信号输入,也就是我们为什么在crt显示器上只看到vga接口的原因。三、vga显示接口原理计算机显示器的显示有许多标准,常见的有vga、svga等。本系统采用fpga来实现图像显示控制器,这在产品开发设计中有许多实际应用。常见的彩色显示器,一般由crt(阴极射线管)构成,彩色是由g、r、b(绿:green,红:red,蓝:blue)三基色组成。显示是用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生grb三基色,合成一个彩色像素。扫描从
7、屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,crt对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。对于普通的vga显示器,其引出线共含5个信号:g、r、b:三基色信号;hs:行同步信号;vs:场同步信号。对于5个信号的时序驱动,对于vga显示器要严格遵循“vga工业标准”,即64048060hz模式。通常我们用的显示器都满足工业标准,因此我们设计vga控制器时要参考显示器的技术规格。图5是vga行扫描、场扫描的时序图:图5 vg
8、a行扫描、场扫描时序图表2 vga参考时序设计vga工业标准所要求的频率:时钟频率(clock frequency):25.175mhz(像素输出的频率);行频(line frequency):31469hz;场频(field frequency):59.94hz(每秒图像刷新频率)。四、fpga的设计实现设计vga图像显示控制需要注意两个问题:一个是时序的驱动,这是完成设计的关键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;另一个是vga信号的电平驱动。显示控制器设计提示:显示器的技术规格提供的行频一般都满足在30-45khz(保守数据),场频一般满足在50-75hz(保守数据),针
9、对以上保守数据,我们以30khz的行频进行扫描时所需时钟频率为:30khz800(行周期)=24mhz,则场频为:30khz525(场周期)=57.14hz,针对实验箱的条件,可以用12mhz的信号经过倍频(ep1k30qc208-2芯片特有的功能,在maxplusii软件中调用参数可设置兆功能元件库mega_lpm的clklock元件来倍频)来产生24mhz的时钟频率,参考设计的顶层文件如下图所示:图5.vga接口实现顶视图vgacore模块包含了扫描时序产生模块、图像描述模块。时序产生模块的设计可参考图5所示来设计,图像描述模块主要通过640480个像素点来描述图像。如本项设计的彩条信号发
10、生器可通过图像描述模块产生如下表所示的3种显示模式,共6种显示变化的图像。表3 vga图形编码1行彩条1:白黄青绿品红蓝黑2:黑蓝红品绿青黄白2竖彩条1:白黄青绿品红蓝黑2:黑蓝红品绿青黄白3棋盘格1:棋盘格显示模式12:棋盘格显示模式2上表颜色对应的编码为:表4 vga颜色编码颜 色黑蓝红品绿青黄白g00001111r00110011b01010101在设计完彩条信号发生器的基础上很容易完成汉字/图像的设计。由于本设计是对视频数据进行处理,用普通的设计方法(不使用专用芯片),在单芯片上实现是不可思议的,而在此用fpga设计,轻松地达到了面积和速度上的要求。五、程序及仿真(一)、管脚分配本设计
11、采用主板上的vga接口实验模式:模式5时钟及控制clk-pin_29 clock9 实验要求采用12m的时钟rst-pin_240 键8,低电平有效,作为使能信号md -pin_233 键1,模式选择信号,共有6种模式显示器输出r -pin_180 pio29g -pin_181 pio30b -pin_182 pio31hs -pin_183 pio32vs -pin_185 pio34(二)、彩条发生器程序实现及仿真1、主程序module zui(clk_25m,rst_n,/系统控制hsync,vsync,vga_rgb,md/ vga控制);input clk_25m;/ 25mhzi
12、nput rst_n;/低电平复位input md;/ fpga与vga接口信号output hsync;/行同步信号output vsync;/场同步信号output2:0 vga_rgb;/-/ 坐标计数reg9:0 x_cnt;/行坐标reg9:0 y_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 rs
13、t_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 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;al
14、ways (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_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
15、(y_cnt = 10d32) valid_yr = 1b1;else if(y_cnt = 10d512) valid_yr = 1b0;wire valid_y = valid_yr;reg valid_r;/ 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 = vali
16、d_r;wire9:0 x_dis;/横坐标显示有效区域相对坐标值0-639wire9:0 y_dis;/竖坐标显示有效区域相对坐标值0-479assign x_dis = x_cnt - 10d142;assign y_dis = y_cnt - 10d33;/-/-reg2:0 cnt;always (posedge md or negedge rst_n) beginif(!rst_n)cnt = 3d0;else if(cnt=3d5)cnt=3d0;elsecnt=cnt+3d1;end/- / vga色彩信号产生/*rgb = 000 黑色rgb = 100红色= 001 蓝色=
17、101紫色= 010绿色= 110黄色= 011青色= 111白色*/-reg2:0 vga_rgb;always( posedge clk_25m)beginif(!valid) vga_rgb = 10d0 & x_dis 10d80) 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 = 10d48
18、0 & x_dis 10d560) vga_rgb = 10d560 & x_dis 10d640) vga_rgb = 10d0 & x_dis 10d80) 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_d
19、is 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 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)
20、 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 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
21、 = 10d120 & y_dis 10d180) vga_rgb = 10d180 & 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 = 3d7; end 10d80,10d160,10d240,10d320,10d400,10d480,10d560,10d640: vga_rgb = 10d0 & y_dis 10d60) vga_
22、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 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:
23、 vga_rgb = vga_rgb+3d1;/每80个横坐标像素点后显示色彩数据增1变化 default: ; endcaseendendend endmodule2、验证程序3、仿真波形(三)、字符显示程序及仿真1、主程序timescale 1ns / 1psmodule vga_char(clk_25m,rst_n,/系统控制hsync,vsync,vga_rgb/ vga控制);input clk_25m;/ 25mhzinput rst_n;/低电平复位/ fpga与vga接口信号output hsync;/行同步信号output vsync;/场同步信号output2:0 vga_
24、rgb;/-/ 坐标计数reg9:0 x_cnt;/行坐标reg9:0 y_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_c
25、nt = y_cnt+1b1;/-/ vga场同步,行同步信号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
26、_r = 1b0;/产生vsync信号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_y
27、r;reg valid_r;/ 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_c
28、nt - 10d142;assign y_dis = y_cnt - 10d33;/-/- / vga色彩信号产生/*rgb = 000 黑色rgb = 100红色= 001 蓝色= 101紫色= 010绿色= 110黄色= 011青色= 111白色*/*edn字模参数*/parameter char_line0=24h000000, char_line1=24h000000, char_line2=24h000000, char_line3=24he77cfe, char_line4=24h421092, char_line5=24h421010, char_line6=24h421010,
29、 char_line7=24h421010, 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_cn
30、t = 10d442) char_bit 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) begincase(y_dis)10d231: if(char_line0char_bit) vga_rgb = 3b100;/红色 else vga_rgb = 3b010;/绿色10d232: if(char_line1char_bit) vga_rgb
31、 = 3b100;/红色 else vga_rgb = 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
32、 = 3b100;/红色 else vga_rgb = 3b010;/绿色10d237: 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 = 3b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文心一言优化推广:AI时代企业获客转化的终极答案
- 26年食管癌靶点检测用药避坑指南
- 农业创新与人才-农业人才培养科技创新
- 2023年军队文职人员招录笔试《农学》高频考题汇编(含答案)
- 肠切除术前护理常规
- 药品从业人员继续教育学习心得体会
- 2024-2025学年河北保定六校联盟高一下学期期中英语试题含答案
- 2026 增肌期教学课件
- 骨科护理查房:关节置换术后的护理
- 高血压患者的健康教育内容
- JG/T 287-2013保温装饰板外墙外保温系统材料
- 2022版27001内审检查表-
- 2025年中国民生银行校园招聘考试模拟试题及答案
- 食堂买菜合同协议
- 麻醉车管理制度
- 劳动铸就梦想奋斗开创未来课件-高一下学期五一劳动节励志主题班会
- 新能源汽车维护 课件 任务3.3 冷却系统维护
- 商业模式画布9个维度
- T-CQSES 01-2024 页岩气开采地下水污染评价技术指南
- TCALC 003-2023 手术室患者人文关怀管理规范
- 部编四年级道德与法治下册全册教案(含反思)
评论
0/150
提交评论