实验二---7段数码显示译码器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二7段数码显示译码器
【实验目的】
1.设计七段显示译码器,并在实验板上验证
2.学习Verilog HDL文本文件进行逻辑设计输入;
3.学习设计仿真工具的使用方法;
【实验内容】
1. 实现BCD/七段显示译码器的“Verilog ”语言设计。
说明:7段显示译码器的输入为:IN0…IN3共5根,7段译码器的逻辑表同学自行设计,要求实现功能为:输入“0…15 ”(二进制),输出“0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。
2. 使用工具为译码器建立一个元件符号
3. 设计仿真文件,进行验证。
4.编程下载并在实验箱上进行验证。
【实验原理】
7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的。为了满足16进制数的译码显示,利用Verilog译码程序在FPGA/CPLD中来实现。首先要设计一段程序,该程序可用case语句表述方法,根据真值表写出程序。
设输入的4位码为IN[3:0],输出控制7段共阴数码管的七位数据为led7[6:0]。首先完成7段BCD码译码器的设计。本实验中的7段译码管输出信号led7的7位分别接数码管的7个段,高位在左,低位在右。如当LED7输出为“”时,数码管的7个段:a,b,c,d,e,f,g分别接1、1、1、1、0、1、1;接有高电平的段发亮,于是数码管显示“9”。
【共阴数码管】
【程序源代码】(加注释)
module LED7(IN,led7);
input [3:0] IN; //定义LED7的4位数据输入端口
output [6:0] led7;// 定义LED7的7位数据输出端口
reg[6:0] led7; //定义一个模块内部的暂存变量led7[6:0]
always @(IN) begin //主块开始
case(IN)
4'b0000: led7<=7'b0111111;//输入为“0”时,数码管显示“0”
4'b0001: led7<=7'b0000110;//以下同理
4'b0010: led7<=7'b1011011;
4'b0011: led7<=7'b1001111;
4'b0100: led7<=7'b1100110;
4'b0101: led7<=7'b1101101;
4'b0110: led7<=7'b1111101;
4'b0111: led7<=7'b0000111;
4'b1000: led7<=7'b1111111;
4'b1001: led7<=7'b1101111;
default: led7<=0; //输入不在“0—9”时,数码管显示“0”
endcase
end //主块结束
endmodule
【RLT电路】
【仿真和测试结果】
功能分析:在仿真结果中,输入IN采用十进制形式,输出led7采用二进制形式。如图当输入为“1”时,相应的输出为“”。输入与输出的关系与表4-12 BCD
七段译码器真值表相对应。
【管脚分配】
分析:图中输入为“0011”,其中,“1”对应的灯亮,“0”对应的灯不亮。LED7相应
的输出为“”时,数码管的7个段:a,b,c,d,e,f,g分别接1、1、1、1、0、0、
1;接有高电平的段发亮,于是数码管显示“3”。
【实验心得和体会】
通过实验,我能将从书本上学到的知识应用于实践,学会了如何使用Verilog HDL文本文件进行逻辑设计输入源程序及仿真工具的使用方法,但在实验中也遇到了不少问题,多愧老师的指导。同时,我明白了:在我们遇到不明白的问题时首先应独立思索,若自己实在无法解决,要及时请教于老师和同学,并能充分利用图书馆的资料,搜索查找所需信息。俗话说:熟能生巧,我相信只要我练习,多思索,就会有进步。