集成电路课程设计报告基于FPGA实现VGA彩条信号发生器设计_第1页
集成电路课程设计报告基于FPGA实现VGA彩条信号发生器设计_第2页
集成电路课程设计报告基于FPGA实现VGA彩条信号发生器设计_第3页
集成电路课程设计报告基于FPGA实现VGA彩条信号发生器设计_第4页
集成电路课程设计报告基于FPGA实现VGA彩条信号发生器设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、集成电路课程设计报告 vga 彩条图像发生器设计 姓名:xxx专业班级:xxxx 学号:xxxxx 指导老师:xxxxxx1、 课程设计要求 通过一周的时间,小组成员进行学习和讨论,来设计一个vhdl/verilog 程序来实现以下功能:1. 利用 fpga 实现 vga 彩条信号发生器.2. 可以产生彩色横条, 彩色竖条信号, 彩色棋盘格信号.3. 由一个按键按照顺序选择不同模式的信号输出.4. 选用 gw48-pk2系统, 编写程序在 fpga 上实现并加以验证.二、课程设计目的1、熟悉vga显示器的实现原理2、加深对vhdl语言的设计编程和设计语言规则的应用3、熟悉集成电路设计的流程,学

2、习使用eda集成电路设计软件quartusii 进行模拟综合,然后在fpga上实现。3、 实验环境开发过程中采用集成工具quartuaii实现设计,选用 gw48-pk2实验箱,以及一个显示器。4、 课程设计原理1、 vga显示原理 vga(video graphics array) 作为一种标准的显示接口得到了广泛的应用。文中基于标准vga模式来实现。工业标准的vga 显示模式为:640 480 16 60。常见的彩色显示器一般由阴极射线管(crt) 构成,彩色由grb(green red blue) 基色组成。显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生g

3、rb 基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,crt 对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。2、 vga信号时序一帧屏幕的显示是由600行从上至下扫描,800列从左至右填充(这也是为什么每当电脑几乎要当机的时候,视屏显示从上之下的延迟扫描)然而微观上,一行的行扫描是由超过800个列填充完成,一帧图像超过600行扫描。实际上是vga的时序在作怪。上图是有关 hsync 和 vsyc

4、nc 的时序图,以 800 x 600 x 60hz 为例,信息如下:800x600x50hza段b段c 段d 段e 段总共n个列像素hsync signal 列像素 128 88 800 40 1056800x600x50hzo 段p 段q 段r 段s段总共n个行像素vsync signal 行像素 4 23 600 1 628hsync signal 是用来控制“列填充”, 而一个hsync signal 可以分为 4个段,也就是 a (同步段) , b(后肩段),c(激活段),d(前肩段)。hsync signal 的a 是拉低的128 个列像素 ,b是拉高的88个列像素,至于c 是拉高

5、的 800 个列像素,而最后的 d 是拉高的40 个列像素。 一列总共有1056 个列像素。vsync signal 是用来控制“行扫描”。而一个 vsync signal 同样可以分为 4 个段, 也是 o (同步段) , p(后肩段),q(激活段),r(前肩段)。vsync signal 的o 是拉低的4个行像素 ,p是拉高的23 个行像素,至于q 是拉高的 600 个行像素,而最后的 r 是拉高的 1 个行像素。 一行总共有628 个行像素。“一个行像素”是以“列像素为单位”来定义(以 800 x 600 x 60hz 为例)如下所示 :1个行像素 = 1056个列像素。而“一个列像素”

6、是以“时间位单位”来定义(以 800 x 600 x 60hz 为例),如下所示:1个列像素 = 25 ns。1个行像素 = 1056个列像素 = 1056 x 25ns = 2.64us。(以 800 x 600 x 60hz 为例)上述内容读者可以发现一个事实,要完成一行的扫描,需要 1056 个列像素,也就是说需要 1056 x25ns的时间。如果要完成所有行的扫描的话,需要628 x 1056 x 25ns 的时间。很遗憾的是,不是所有时间都用来显示图片,有一部分的时间是用来同步操作。而hsync signal 只有在的c段 和vsync signal 的 q 段的激活段,数据的输入才

7、有效。3、 v ga 彩条信号产生 彩条信号产生模块包括了彩条模式控制、竖彩条发生、横彩条发生和棋盘格发生三个模块。彩条模式控制可以用一个控制端口来实现。竖彩条发生模块根据行点数器h_cnt 的计数值来产生彩条,横彩条发生模块根据列点数器v_ cnt 的计数值来产生彩条,棋盘格的彩条就可以用横彩条和竖彩条异或来得到。5、 课程设计源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color is port(clk,md:in std_logic; hs,vs,r,g,b:out

8、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); signal ll:std_logic_vector(8 downto 0); signal grbx:std_logic_vector(3 downto 1); signal g

9、rby:std_logic_vector(3 downto 1); signal grbp:std_logic_vector(3 downto 1); signal grb:std_logic_vector(3 downto 1);begin grb(2)=(grbp(2)xor md) and hs1 and vs1; grb(3)=(grbp(3)xor md) and hs1 and vs1; grb(1)=(grbp(1)xor md) and hs1 and vs1; process(md)begin if mdevent and md=0 then if mmd=10 then m

10、md=00; else mmd=mmd+1; end if; end if;end process; process(mmd) begin if mmd=00then grbp=grbx; elsif mmd=01then grbp=grby; elsif mmd=10then grbp=grbx xor grby; else grbp=000; end if; end process;process(clk)begin if clkevent and clk =1 then if fs = 13 then fs =0000; else fs =(fs+1); end if; end if;e

11、nd process;fclk=fs(3);cclk=cc(4);process(fclk)beginif fclkevent and fclk =1 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 ll23 then hs1 =0; else hs1 479 then vs1=0; else vs1=1;end if;end process;

12、process(cc,ll)begin if cc3 then grbx =111; elsif cc6 then grbx =110; elsif cc9 then grbx =101; elsif cc13 then grbx =100; elsif cc15 then grbx =011; elsif cc18 then grbx =010; elsif cc21 then grbx =001; else grbx=000; end if; if ll60 then grby =111; elsif ll130 then grby =110; elsif ll180 then grby

13、=101; elsif ll240 then grby =100; elsif ll300 then grby =011; elsif ll360 then grby =010; elsif ll420 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;6、 课程设计步骤 1.1、创建一个文件夹为vga。设置好保存路径。1.2、打开quartusii,在new窗口中的device design files 中选择编译文件的语言类型,这里选择vh

14、dl file。输入本设计的程序源代码。然后filesave as,保存的名字应与实体名保持一致。1.3、选择菜单filenew project wizard,创建一个新的工程,工程名要和顶层文件的实体名一致,为colour。1.4、点击next把文件加入工程中,选择目标芯片,本设计用到的芯片为cyclone系列的ep1c3tc144。1.5、一直next 后finish。2.1、选择processing 菜单的 start compilation ,开始编译。编译过程中,如果有错误,在编译报告窗口中就会出现详细错误内容。双击此条文,就会弹出相应的vhdl文件,进行修改后再进行编译,直至编译成

15、功没有错误。窗口如下图:3.1、在编译通过后,对设计进行时序仿真,添加波形。打开波形编辑器。选择filenewvector waveform fileok3.2、设置仿真时间区域,选择editend time,在time栏输入10本设计设置为10ms。3.3、将波形文件存盘。选择filesave as ,文件名为colour.vwf3.4、选择viewutility windowsnode finder,在filter框中选pins:all,然后单击list按钮,在下方的nodes found 窗口中就出现工程中的所有端口引脚名,用鼠标把输入输出端口引脚拖到波形编辑器。3.5、给clk时钟信号

16、设置周期为83us,占空比为50,然后设置md的周期,周期为5ms。3.6、选择start simulation ,直达出现波形图。如下图:4.1、引脚设置选择assignment assignment editor 进入编辑窗口,在category 栏中选择pin,双击to栏,双击location,在下拉菜单中选择对应端口信号名的器件引脚号。引脚号需要查看相关的工具书。引脚如下图:4.2、在存储锁定的引脚后,还要再编译一次,才能将引脚锁定信息编译进下载文件中。5.1、下载到fpga上实现 将显示器连接电源,通过vga接口接在试验箱上。5.2、打开显示器。选择programmer,编程器选择byte blater,选择工程文件,点击start。这样在显示器上就会出现彩色条文。如下: 7、 实验总结本实验在课编程技术的基础上,根据vga原理,运用vhdl描述语言实现了vga控制设计的方案。1. 再设计的过程中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论