1、EDA课程设计报告VGA显示器彩色信号发生器电路班级:11电子班 姓名: 学号: 1115102015 指导老师: 凌朝东 摘要:VGA(Video Graphic Array)接口是与显示器进行通信的唯一接口。通过FPGA器件控制RGB信号、行同步信号、场同步信号等信号,并参照有关标准,最后可以实现对VGA显示器的控制。本设计与传统的图像显示方法不同,为节省储存空间在设计中采用R、G、B三种基色利用FPGA芯片和EDA设计方法,可以显示8种颜色,设计出针对性强的VGA显示控制器,而且不需要依靠计算机,既能够大大降低成本,又可以满足生产实践中不断变化的需要,同时产品的升级换代也方便迅速。本设计
2、采用Altera公司的EDA软件0uartus II,并以Cylone系列FPGA器件为硬件平台进行系统设计。目录1、系统设计.42、单元电路设计63、软件设计84、系统测试.125、结论146、参考文献147、附录.158、设计说明书.16一、 系统设计1、设计要求:VGA显示器彩色信号发生器电路,能在VGA显示器上显示8种颜色的图形(条型、方块型)。 2、系统设计方案:方案一:采用传统的图像显示方法,将图像数据传回电脑在传输过程中通过CPU对图像数据信号进行控制,通过显示器显示出来。方案二:采用FPGA和EDA的设计方法,通过FPGA器件控制RGB信号、行同步信号、场同步信号等信号,并参照
3、有关标准,最终可以实现对VGA的控制。方案一为传统的图像显示方法,在传输过程中需要CPU不断对图像数据信号进行控制,这样就造成了CPU的浪费,同时系统还需要依赖电脑,降低了系统的灵活性。方案二是利用可编程器件FPGA和EDA的设计方法,可以根据设计的需要设计出针对性比较强的VGA显示器,而且不需要依靠计算机,大大降低了成本提高了系统的灵活性。综合上诉分析本设计中采用方案二。3、系统的工作原理:计算机显示器的显示有许多接口标准,常见的有VGA、SVGA等。VGA接口,也叫D-Sub接口,是15针的梯形插头,分成3排,每排5个,传输模拟信号。VGA接口采用非对称分布的15针连接方式,其工作原理是:
4、将显存内以数字格式存储的图像(帧)信号在RAMDAC里经过模拟调制成模拟高频信号,然后再输出到显示设备成像。VGA支持在640 X480的较高分辨率下同时显示16种色彩或256种灰度,同时在320240分辨率下可以同时显示256种颜色。常见的彩色显示器一般由CRT(阴极射线管)够成,彩色是有R、G、B(红:Red,绿:Green,蓝:Blue)三基色组成,用逐行扫描的方式解决图像显示。阴极射线枪发出的电子束打在涂有荧光粉的屏幕上,产生R、G、B三基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间对电子束进行行
5、消隐,每行结束时,用行同步信号进行行同步,扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。在本设计中采用普通的VGA显示器,一共引出5条信号线:R、G、B:三基色信号;HS:行同步信号;VS:场同步信号。在设计过程中严格按照VGA的工业标准要求进行设计,其中时钟频率为25.175MHZ,行频为31469HZ,场频为59.94HZ。4、实现电路:VGA显示器二、单元电路设计1、时序信号的产生图片要想在显示器上显示出来,它主要需要5个信号,行同步信号HS(Hor i ZontalSync)、场同步信号VS(VerticalSync)和RGB三
6、基色信号。VGA时序控制模块是整个显示控制器的关键部分,最终输出的行、场同步信号必须严格按照VGA时序标准产生相应的脉冲信号。图1和图2所示为行扫描和场扫描的时序图。图1行扫描时序示意图图2场扫描时序示意图对于VGA显示器的上述五个信号的时序驱动要严格遵循“VGA工业标准”,即64048060HZ模式,否则无法显示正确地图象。VGA工业标准要求的频率:时钟频率:25.175MHz(像素输出的频率)行频:31469Hz场频:59.94Hz(每秒图像刷新频率)行、场扫描时序要求如表1和表2所示。表1 行扫描时序要求:(单位:像素即输出一个像素PixeI的时间间隔)表2 场扫描时序要求:(单位:行即
7、每输出一行line的时间间隔)VGA的工业标准显示模式要求行同步和场同步都为负极性,即同步头脉冲要求是负脉冲。对于一些VGA显示器,HS和VS的极性可正可负,显示器内可以自动转换为正极性逻辑。在图1和图2中,R、G、B为正极性信号即高电平有效。当VS=0、HS=1时,CRT现实的内容为亮的过程,即正向扫描过程约为26us。当一行扫描完毕,行同步HS=1,约需6us。期间,CRT扫描产生消隐,电子束回到CRT左边下一行的起始位置(X=0,Y=1);当扫描完480行后,CRT的场同步VS=1,产生场同步使扫描线回到CRT的第一行第一列(X=0,Y=0)处(约为两个行周期)。2、彩色信号的生成本设计
8、中采用3位数字表达式R、G、B(纯数字方式)三种基色,可以显示8中颜色,表三是此八种颜色的对应的编码电平。利用数字逻辑关系将R、G、B进行逻辑运算便可得到显示的图形。表三 颜色编码颜色黑蓝红品绿青黄白R00001111G00110011B010101013、显示控制模块经编译后的彩条信号经过显示模块处理后送到显示器进行显示。利用行、场同步信号的计数器,在图像有效区间内按照图片的大小划定行和列的起始坐标和终止坐标。本设计使用和行、场计数器相同频率的时钟信号作为图像地址计数器的时钟,当扫描信号到达显示图片的区间时,图像地址计数器开始计数,同时从相应位置读出数据送往显示器进行显示,显示模块的输出直接
9、连到VGA的接口。在设计中还增加了一个模式选择按键MD,用来控制图像的显示模式,本设计中共有6中显示变化的图像如表4所示。表4 彩色信号发生器的显示模式1横彩条1:白黄青绿品红蓝黑2:黑蓝红品绿青黄白2竖彩条1:白黄青绿品红蓝黑2:黑蓝红品绿青黄白3棋盘格1:棋盘格显示模式12:棋盘格显示模式2三、软件设计 本文利用Altera公司Quartus6.0开发平台,遵循自顶向下的设计方法,针对各功能模块,采用VHDL语言对FPGA器件编程,产生HS和VS扫描时序信号及各种图象信号。VGA时序信号是图象显示的关键,行场扫描时序的产生,是利用逻辑编程的方法实现的,即用VHDL编写分频器,计时器模块,来
10、获得T1、T2、T3、T4时序。当输出数字、彩条信号和棋盘格图象时,由外部12M有源晶振提供时钟输入,其中行频HS:12MHZ1329=31830Hz、场频VS:31830Hz4800.93=61.67Hz、T1=1/31830Hz4/29=25.96us、T2=1/31830Hz5/29=6.04us、T3为两个行周期(T1+T2),T4为480个行周期。流程图为 实验程序LIBRARY IEEE; - VGA显示器 彩条 发生器USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COLOR IS PORT (
11、 CLK, MD : IN STD_LOGIC; HS, VS, R, G, B : OUT STD_LOGIC ); - 行场同步/红,绿,蓝END COLOR;ARCHITECTURE behav OF COLOR IS SIGNAL HS1,VS1,FCLK,CCLK : STD_LOGIC; SIGNAL MMD : STD_LOGIC_VECTOR(1 DOWNTO 0);- 方式选择 SIGNAL FS : STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL CC : STD_LOGIC_VECTOR(4 DOWNTO 0); -行同步/横彩条生成 SIGN
12、AL LL : STD_LOGIC_VECTOR(8 DOWNTO 0); -场同步/竖彩条生成 SIGNAL GRBX : STD_LOGIC_VECTOR(3 DOWNTO 1);- X横彩条 SIGNAL GRBY : STD_LOGIC_VECTOR(3 DOWNTO 1);- Y竖彩条 SIGNAL GRBP : STD_LOGIC_VECTOR(3 DOWNTO 1); SIGNAL GRB : STD_LOGIC_VECTOR(3 DOWNTO 1);BEGIN GRB(1) = (GRBP(1) XOR MD) AND HS1 AND VS1; GRB(2) = (GRBP(2
13、) XOR MD) AND HS1 AND VS1; GRB(3) = (GRBP(3) XOR MD) AND HS1 AND VS1; PROCESS( MD ) BEGIN IF MDEVENT AND MD = 0 THEN IF MMD = 10 THEN MMD = 00; ELSE MMD = MMD + 1; END IF; -三种模式 END IF; END PROCESS; PROCESS( MMD ) BEGIN IF MMD = 00 THEN GRBP = GRBX; - 选择横彩条 ELSIF MMD = 01 THEN GRBP = GRBY; - 选择竖彩条 E
14、LSIF MMD = 10 THEN GRBP = GRBX XOR GRBY; -产生棋盘格 ELSE GRBP = 000; END IF; END PROCESS; PROCESS( CLK ) BEGIN IF CLKEVENT AND CLK = 1 THEN - 12MHz 13分频 IF FS = 12 THEN FS = 0000; ELSE FS = (FS + 1); END IF; END IF; END PROCESS; FCLK = FS(3); CCLK = CC(4); PROCESS( FCLK ) BEGIN IF FCLKEVENT AND FCLK = 1
15、 THEN IF CC = 29 THEN CC = 00000; ELSE CC = CC + 1; END IF; END IF; END PROCESS; PROCESS( CCLK ) BEGIN IF CCLKEVENT AND CCLK = 0 THEN IF LL = 481 THEN LL = 000000000; ELSE LL 23 THEN HS1 = 0; -行同步 ELSE HS1 479 THEN VS1 = 0; -场同步 ELSE VS1 = 1; END IF; END PROCESS; PROCESS(CC, LL) BEGIN IF CC 3 THEN G
16、RBX = 111; - 横彩条 ELSIF CC 6 THEN GRBX = 110; ELSIF CC 9 THEN GRBX = 101; ELSIF CC 12 THEN GRBX = 100; ELSIF CC 15 THEN GRBX = 011; ELSIF CC 18 THEN GRBX = 010; ELSIF CC 21 THEN GRBX = 001; ELSE GRBX = 000; END IF; IF LL 60 THEN GRBY = 111; - 竖彩条 ELSIF LL 120 THEN GRBY = 110; ELSIF LL 180 THEN GRBY =
17、 101; ELSIF LL 240 THEN GRBY = 100; ELSIF LL 300 THEN GRBY = 011; ELSIF LL 360 THEN GRBY = 010; ELSIF LL 420 THEN GRBY = 001; ELSE GRBY = 000; END IF; END PROCESS; HS = HS1 ; VS = VS1 ;R = GRB(2) ;G = GRB(3) ; B = GRB(1);END behav;四、系统测试采用Cylone系列FPGA器件为硬件平台进行系统测试,芯片型号为EP2C5T144C8。测试步骤为:首先对设计文件进行综合,
18、然后加载波形进行时序仿真和功能仿真;将设计文件下载到试验箱上进行硬件测试。综合结果如下:功能仿真结果:在时钟线号的激励下产生了扫描信号,同时在MD的控制下,R、G、B分别产生了所需要的彩色信号。硬件测试显示的图形为:五、结论 通过设计时序控制电路,和彩条产生电路,我更深入地理解了FPGA技术,即同过软件编程的方法来实现硬件时序和组合电路,加快了产品开发的速度,以满足不断变化的市场需求。参考文献1、潘松,黄继业 EDA技术与VHDL(第三版)清华大学出版社2、王金明,冷自强 EDA技术与Verilog设计 科学出版社3、梁勇,王留奎 EDA技术教程 人民邮电出版社附录一、锁定引脚附录二、生成的原
19、理图附件、设计说明书一、系统的功能、技术指标 本设计采用EDA技术,通过FPGA芯片实现了实现VGA彩条信号的显示的设计,本文采用VHDL硬件描述语言描述VGA彩条信号的显示电路,完成对电路的功能仿真。通过按键来实现横彩条、竖彩条、棋盘式方格图案的选择。显示图像分辨率为640480,刷新率为60Hz。与传统的设计方式相比,本设计由于采用了FPGA芯片来实现,它将大量的电路功能集成到一个芯片中,并且可以由用户自行设计逻辑功能,提高了系统的集成度和可靠性。采用目标芯片型号为 EP2C5T144C8 ,系统最高工作频率: 258.93 MHz;资源使用情况: 59 个LCs, 7 个I/O, 20
20、个REG;二、 系统的工作原理1、系统框图2、系统原理: FPGA是EDA课程设计的整个系统的核心,通过对其编程可输出RGB三基色信号和HS、VS行场扫描同步信号。当FPGA接受单片机输出的控制信号后,内部的数据选择器模块根据控制信号选通相应的图像生成模块,输出图像信号,与行场扫描时序信号一起通过15帧D型接口电路送入VGA显示器,在VGA显示器上便可以看到对应的彩色图像。FPGA所需的工作时钟由外部高精度有源晶振提供。三、 程序实现的功能1.利用FPGA实现VGA彩条信号发生器。2.可以产生彩色横条,彩色竖条信号,彩色棋盘格信号。3.由一个按键按照顺序选择不同模式的信号输出。四、 键盘驱动按键模块控制VGA显示模式图2.3 VGA模式选择