七段数码显示译码器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一七段数码显示译码器
1.实验目的:
设计七段显示译码器;学习Verilog HDL文本文件进行逻辑设计输入。
2.实验原理:
7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的。为了满足16进制数的译码显示,利用Verilog译码程序在FPGA/CPLD中来实现。首先要设计一段程序,该程序可用case语句表述方法,根据真值表写出程序。首先完成7段BCD码译码器的设计。本实验中的7段译码管输出信号led7的7位分别接数码管的7个段,高位在左,低位在右。如当LED7输出为“1101111”时,数码管的7个段:a,b,c,d,e,f,g分别接1、1、1、1、0、1、1;接有高电平的段发亮,于是数码管显示“9”。
共阴数码管
七段译码器真值表
3.源程序:
module LED(A,LED7S);
input [3:0]A;
output [6:0]LED7S;
reg [6:0]LED7S;
always @ (A)
begin: LED
case(A)
4'b0000: LED7S<=7'b0111111;
4'b0001: LED7S<=7'b0000110;
4'b0010: LED7S<=7'b1011011;
4'b0011: LED7S<=7'b1001111;
4'b0100: LED7S<=7'b1100110;
4'b0101: LED7S<=7'b1101101;
4'b0110: LED7S<=7'b1111101;
4'b0111: LED7S<=7'b0000111;
4'b1000: LED7S<=7'b1111111;
4'b1001: LED7S<=7'b1101111;
4'b1010: LED7S<=7'b1110111;
4'b1011: LED7S<=7'b1111100;
4'b1100: LED7S<=7'b0111001;
4'b1101: LED7S<=7'b1011110;
4'b1110: LED7S<=7'b1111001;
4'b1111: LED7S<=7'b1110001;
default: LED7S<=7'b0111111;
endcase
end
endmodule
4.实验内容
4.1创建工程
file→New Project Wizard
4.2 file→New→Verilog HDL File
4.3输入代码→start Compilation
4.4 file→New→Other Files→Vector Waveform File
View→Utility windows→node finder
对输入A进行赋值,在Edit里设置end time,对A进行clock里的设置。
4.5时序仿真
Start Simulation
4.6功能仿真
Setting→simulator setting→simulation node→Functional
Processing→Generate Functional simulation Netlist→Start Simulation
4.7生成RTL原理图:
Tools→Netlist Viewers→RTL Viewer
4.8指定管脚
在EDA6000中装入模式4
Assignments→Pins 输入相应管脚
4.9连接实验箱下载,进行实验
5.实验心得和体会
这次实验在一开始做的时候感觉很困难,感觉上课的时候看老师操作演示,等自己真正动手做的时候就把很多步骤跟注意事项都忘了,因此我还要继续对Quartus II进行练习。还有就是对编写verilog代码我也需要继续努力,需要多分析一下电路,对课本上讲的东西灵活运用。还有就是在做时序仿真时出现了时延,而在功能仿真时时延又会消失,这些问题也需要我继续探究。