十六进制7段数码显示译码器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的:学习7段数码显示译码器的Verilog硬件设计。
实验原理:7段数码是纯组合电路。通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的。为了满足十六进制数的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD中来实现。首先要设计一段程序。该程序可按照例3-2的case语句表述方法,再根据表4-2的真值表写出程序。设输入的4位码为A[3:0],输出控制7段共阴数码管的7位数据为LED7S[6:0]。输出信号LED7S的7位分别接图4-47的共阴数码管的7个段,高位在左,低位在右。例如当LED7S 输出为“”时,数码管的7个段g , f , e , d , c , b , a 分别接在1,1,0,1,1,0,1;接有高电平的段发亮,于是数码管显示“5”。这里没有考虑小数点的发光管,如果要考虑,需要增加段h,然后将LED7S改为8位输出。
实验过程:1:新建Verilog工程2:编程3:保存(与模块名一致) 4:新建波形图5:保存6:导入波形7:设置输入波形8:设置fuction 仿真9:生成网表10:仿真
程序代码:
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
程序代码正确波形仿真: