1、南邮软件设计613ms嫌唸上辔通信与信息工程学院2013 /2014 学年第二学期软件设计实验报告模块名称EDA-VHDL软件设计专业电子信息工程学生班级B110学生学号学生姓名指导教师梅中辉设计题目1、 D触发器2、 R、G B三基色彩色条纹显示控制任务要求1、 设计一个D型触发器,输入CK(时钟信号,T表示上升沿时刻), D (数据),Clear端“0”时清零),输出Q,真值表如图。2、 设计一种信号发生器使 VGA显示器能显示出彩色条纹。该发生 器产生R、G B三基色信号(高电平有效),能在VGA彩色显示器(640 X 480/60HZ)上显示出白、黄、青、绿、品、红、蓝、黑条 纹,各种
2、彩色条纹所对应的 R、G B编码如下表所示。另外需产生 行同步HS和场同步VS信号。当VS=Q HS=0时,CRT显示的内容为 亮的过程,即正向扫扌田过程,约为 26us,当一行扫扌田兀毕,行同步 HS=1约为6us;其间CRT扫描产生消隐,电子束回到 CRT左边下 一行起始位置(x=0,y=1);当扫描完480行后,CRT的场同步VS=1, 产生场同步使扫描线回到 CRT的第一行第一列(x=0, y=0),约需 两行周期。已知该发生器的输入时钟为 12MHz实验设备及软件1:微型计算机2: quartus II 开发软件同组人员学号及姓名参考文献VHDL开发精解与实例剖析詹仙宁云耕编著V H
3、DL数字电路及系统设计江思敏编著报告内容实验目的:1.使学生全面了解如何应用该硬件描述语言进行高速集成电路设计;2.通过软件使用、设计与仿真环节使学生熟悉 EDA-VHD开发环境;3.通过对基本题、综合题的设计实践,使学生掌握硬件系统设计方法(自底向上或自顶向下),熟悉VHDL语言三种设计风格,并且培养学生应用 VHDL语言解 决实际问题的能力。实验设备:1:微型计算机 2 : quartus II开发软件实验课题:1、D触发器一、实验内容:设计一个D型触发器,输入CK(时钟信号,T表示上升沿时刻), D (数据),Clear端(“0”时清零),输出Q真值表如图。、原理图CK Clear DQ
4、X 0 X0f 1 00f 1 11三、功能分析Clear端为0时,无论D为何值,Q置0。当Clear为1时,遇到输入时钟信 号CK上升沿时,Q=D算法框图:四、时序仿真图ff-srtEp PE3D.p Elz L&l.Q m 0 ell 皿 g iX O nsu m tic P bi TiO.Jl TE SDO O lz ns a:Tj_L_i 1 ! L! d : 1_i_L414 tt*Li1 : 1 1 1 .厂 一 1 . 1 L *i r.iJ结果分析:当clear为0时,Q端置0; clear为1时,Q在CK上升沿处跳至与 D相等的值。仿真结果与分析相同,结果正确。五、调试过程与
5、问题这个实验是第一次使用quartus II开发软件和VHDL语言,虽然是一个简单 的问题,但是也花费了不少时间。首先顶层实体名称必须与设计顶层文件的文件名一致,与 VHDL设计中的顶层实体名一致。具体做法是 Assig nments中Sett in gs 里General标签中的Top-level entity 要与VHDL程序中ENTITY后面的文件名一致。不然程序无法编译,这个问题一开始也是困扰了很久的。成功编译程序之后,一开始不知道如何设置仿真的波形,通过网上搜索和翻 阅一些参考书,花了一些时间之后终于找到了波形仿真相关按钮的位置、 并掌握了波形仿真的步骤。时序仿真成功后,通过分析时序
6、图发现,当 clear端为0时,只有遇到CK 上升沿Q端才会置0,与题目要求不符。于是重新调整语句,将 clear是否为0 作为第一个判断条件。一开始信号周期选的较小,由于存在延时,不便于观察结果是否正确。选取 较大周期信号后,延时基本可以忽略。六、VHDL源程序见附录一实验课题:2、R、G B三基色彩色条纹显示控制一、实验内容:设计一种信号发生器使 VG/显示器能显示出彩色条纹。该发生器 产生R、G B三基色信号(高电平有效),能在VGA彩色显示器(640X 480/60HZ) 上显示出白、黄、青、绿、品、红、蓝、黑条纹,各种彩色条纹所对应的 R、GB编码如下表所示。另外需产生行同步 HS和
7、场同步VS信号。当VS=0 HS=0时, CRT显示的内容为亮的过程,即正向扫描过程,约为 26us,当一行扫描完毕,行 同步HS=1,约为6us;其间CRT扫描产生消隐,电子束回到CRT左边下一行起始 位置(x=0,y=1);当扫描完480行后,CRT的场同步VS=1,产生场同步使扫描 线回到CRT的第一行第一列(x=0, y=0),约需两行周期。已知该发生器的输入 时钟为12MHz第红品r黄白R000111G円0010)010100)二、设计思路需要一个时钟输入信号,根据输入信号产生水平扫描计数从而产生行同步信 号HS,再根据水平扫描计数的进位产生竖直扫描计数从而产生场同步信号,完 成扫描
8、过程。之后在根据要求将水平或竖直方向的扫描信号的显示时间分为 8组,显示出8个彩条。信号扫描时序图: 图像显示 t 消隐时间垂直扫描水平扫描时间长度时钟周期等效行数时间长度时钟周期数Ts16.07ms38560048233.3lis800Tdisp16ms38400048026.67is640Tpw66.7 iis160026.67is160YV480NNNNN三、算法框图V=V+1五、调试过程与问题在程序成功编译之后开始时序仿真,设定好输入波形之后开始时序仿真 发现输出信号全为0,于是将中间信号加入到时序仿真中,发现波形正常, 考虑到可能是仿真时长不够,输出信号还未开始变化,将仿真时长设定为
9、1ms 之后,成功看到按顺序变化的 RGB言号。之后开始对于题目中给出的时间要求,更改程序中的相关数据。由于正 向扫描过程约为26us,为640个时钟周期,需要水平扫描信号为 24MHz, 而输入时钟信号只有12MHz,时钟信号倍频相对困难,于是在一个时钟周期 内扫描两个水平像素点来保证正向扫描约为 26us,约为6us的行消隐信号约 为144个时钟周期。六、VHDL源程序见附录二 实验小结:这是第一次接触VHDL语言,通过查阅参考书,从零做起,从实际的题 目中一点一点了解了 VHDL语言的用法。先理解书上一些实际的例题,然后 自己去更改、编写程序,从而完成了实验课题。只有通过自己动手实验,才
10、 能更快的掌握新的知识,才能发现纯理论学习中发现不了的问题。这次的实验基本都是通过自学完成的,在实验过程中遇到的问题大多都 是通过参考书、网络或是和同学讨论解决的,大大提高了自己的学习能力。实验分为基本题和综合题的形式。基本题较简单,很好得帮助我了解 VHDL语言以及quartus II 开发软件的使用。之后的综合题较为复杂,帮 助我进一步学习VHDL语言,以及题目相关的其他知识。无论是基本题还是 综合题在实验过程中都是遇到了各种各样的问题,困难重重,通过自己的努 力完成这次实验收获还是不小的。附录:一、library ieee;use ieee.std_logic_1164.all;enti
11、ty HY is port(D,CK,clear:in std_logic;Q:out std_logic);end;architecture a of HY is signal Q_temp:std_logic;begin pl:process(CK) beginif clear=0 thenQ_temp=0;elsif clear=1 then if CKevent and CK=1 thenQ_temp=D; end if; end if;Q=Q_temp;end process;end;附录二:library iEEE;use IEEE.STD_LOGIC_1164.ALL;entit
12、y B11011013 isport(Clk:in STD_LOGIC;Rst:in STD_LOGIC; Red:out STD_LOGIC;Green:out STD_LOGIC; Blue:out STD_LOGIC;H_Sync:out STD_LOGIC;V_Sync:out STD_LOGIC);end B11011013;architecture Bchavioral of B11011013 is signal Cnt_H:integer range 0 to 800; signal Cnt_V:integer range 0 to 482; signal Clk_H:std_
13、logic:=0; signal Clk_V:std_logic:=0; signal RGB:std_logic_vector(0 to 2);beginRed=RGB(0);GreeN=RGB(1);Blue=RGB(2);-12MHZ 作为水平扫描信号的时钟 p1:process(Clk)beginClk_H=Clk;end process;-水平扫描计数,并产生竖直扫描计数的时钟 p2:process(Clk_H,Rst)beginif(Rst=1)thenCnt_H=0;Clk_V=800)thenCnt_H=0;elseCnt_H400)thenClk_V=0; elseClk_V
14、=1; end if;end if;end process;-竖直扫描计数 p3:process(Clk_V,Rst) beginif(Rst=1)thenCnt_V=0; elsif(Clk_Vevent and Clk_V=1)then if(Cnt_V=482)thenCnt_V=1;elseCnt_V=Cnt_V+1;end if;end if;end process;-产生水平扫描信号和竖直扫描信号 p4:process(Clk,Rst) beginif(Rst=1)thenH_Sync=0;V_Sync=641)thenH_Sync=1; elseH_Sync480)thenV_S
15、ync=1;elseV_Sync=0;end if;end if;end process;-输出颜色控制p5:process(Clk,Rst,Cnt_V)beginif(Rst=1)thenRGB480)thenRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB=XXX; end case;end if;end process;end Bchavioral;设计成绩评定评分内容具体要求总分评分上机时间上机时间是否达到要求的学时,按照实际情况给 与一定的成绩。10分报告审阅结果报告结构严谨,文字通顺,用语符合技术规范, 图表清楚,书写格式规范,不与别人雷同。30分验 收 结 果原理原理清楚,能较好地理解课题任务并提出实施方 案。20分完成情况独立完成规定设计任务,论证、分析、设计、计 算、结构、建模、实验正确合理,有一定的创新。30分操作能熟练操作相关工具软件,并利用工具软件完成 设计任务。10分总成绩(五分制)100分指导教师评阅意见
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1