十六进制7段数码显示译码器设计实验报告.docx
《十六进制7段数码显示译码器设计实验报告.docx》由会员分享,可在线阅读,更多相关《十六进制7段数码显示译码器设计实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
十六进制7段数码显示译码器设计实验报告
实验名称:
十六进制7段数码显示译码器设计
实验目的:
1.设计七段显示译码器,并在实验板上验证
2.学习VerilogHDL文本文件进行逻辑设计输入;
3.学习设计仿真工具的使用方法;
工作原理:
7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
例如6-18作为7段译码器,输出信号LED7S的7位分别接图6-17数码管的7个段,高位在左,低位在右。
例如当LED7S输出为“1101101”时,数码管的7个段g,f,e,d,c,b,a分别接1,1,0,1,1,0,1;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,例6-18中的LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0)应改为…(7DOWNTO0)。
实验内容1:
将设计好的VHDL译码器程序在QuartusII上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
实验步骤:
步骤1:
新建一个文件夹击打开vhdl文件;
步骤2:
编写源程序并保存
步骤3:
新建一个工程及进行工程设置
步骤4:
调试程序至无误;
步骤5:
接着新建一个VECTORWAVEFOM文件及展出仿真波形设置
步骤6:
输入数据并输出结果(时序仿真图)
步骤7:
设置好这个模式
步骤8:
生成RTL原理图
步骤9:
引脚锁定及源代码
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDECL7SIS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
END;
ARCHITECTUREoneOFDECL7SIS
BEGIN
PROCESS(A)
BEGIN
CASEAIS
WHEN"0000"=>LED7S<="0111111";
WHEN"0001"=>LED7S<="0000110";
WHEN"0010"=>LED7S<="1011011";
WHEN"0011"=>LED7S<="1001111";
WHEN"0100"=>LED7S<="1100110";
WHEN"0101"=>LED7S<="1101101";
WHEN"0110"=>LED7S<="1111101";
WHEN"0111"=>LED7S<="0000111";
WHEN"1000"=>LED7S<="1111111";
WHEN"1001"=>LED7S<="1101111";
WHEN"1010"=>LED7S<="1110111";
WHEN"1011"=>LED7S<="1111100";
WHEN"1100"=>LED7S<="0111001";
WHEN"1101"=>LED7S<="1011110";
WHEN"1110"=>LED7S<="1111001";
WHEN"1111"=>LED7S<="1110001";
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
END;
实验内容二:
1、硬件测试。
程序不一样,其他步骤相同操作
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT4BIS
PORT(CLK,RST,ENA:
INSTD_LOGIC;
OUTY:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCNT4B;
ARCHITECTUREbehavOFCNT4BIS
BEGIN
PROCESS(CLK,RST,ENA)
VARIABLEQ:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFRST='0'THENQ:
=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
IFENA='1'THEN
Q:
=Q+1;
ENDIF;
ENDIF;
IFQ="1111"THENCOUT<='1';
ELSECOUT<='0';ENDIF;
OUTY<=Q;
ENDPROCESS;
ENDbehav;
2、时序仿真波形:
3、RTL原理图:
实验内容三:
1、源代码:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYadderIS
PORT(clock0,rst0,ena0:
INSTD_LOGIC;
led:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
cout0:
OUTSTD_LOGIC);
ENDENTITYadder;
ARCHITECTUREad1OFadderIS
COMPONENTCNT4B
PORT(CLK,RST,ENA:
INSTD_LOGIC;
OUTY:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTDECL7S
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
q:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDCOMPONENT;
SIGNALtmp:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
u1:
CNT4BPORTMAP(CLK=>clock0,RST=>rst0,ENA=>ena0,OUTY=>tmp,COUT=>cout0);
u2:
DECL7SPORTMAP(A=>tmp,q=>led);
ENDARCHITECTUREad1;
2、时序仿真波形:
3、RTL原理图:
(计数器和译码器连接电路的顶层文件原理图)
注意:
运用实验三,调用实验一和实验二的RTl原理图得计数器和译码器连接电路的顶层文件原理图
在引脚锁定及硬件测试。
建议选GW48系统的实验电路模式6(参考附录图F-6),用数码8显示译码输出(PIO46~PIO40),键8、键7、键6和键5四位控制输入,硬件验证译码器的工作性能。
提示1:
目标器件选择MAX7000S系列的EPM7128SLC84-15。
提示2:
引脚锁定除了参考第5章第2节内容外,具体引脚编号选定应参考“实验附注资料附注3:
万能接插口与结构图信号/与芯片引脚对照表”的“EPM7128S-PL84”栏目。
提示3:
选实验电路模式6,参考“实验附注资料附注2:
实验电路结构图”的“附图2-8实验电路结构图NO.6”栏目。
实验心得及个人心得:
通过本次实验,对QuartusII有了进一步的学习和认识,对Verilog也有了深入了解。
学会了7段数码显示译码器的Verilog硬件设计,学习了VHDL的CASE语句应用及多层次设计方法。
在设计顶层文件时,最有深刻体会,自己在不知道弄错了多少次和请教过别人多次,在终于知道顶层文件怎样生成的所以我们应该学会认真分析程序,弄清实验原理,做实验时耐心、认真,遇到问题争取自己解决。
认真总结实验,分析波形,完成实验报告。
特别经过一个学期的学习,我并不说我完全懂得EDA技术,我知道在程序方面还有很多要学习的,对于EDA,我都还懂得一些必要的语法和程序。
这门课程锻炼了我读程序的能力和分析语法用法的能力,为我将来学更高级的语言打下了基础,很多语言都是有相通的地方,只是有些用法不太一样而已。
但我学到了运用QuartusII这个软件,并靠自己慢慢去摸索,慢慢研究。
能多学一些软件就多学一些,毕竟不知道将来的路怎样发展。
虽然老师说EDA这门课程出来后用处不大,但我觉得锻炼了自我学能力和分析问题、解决问题的能力。