北邮22信通一枚~
跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章
持续关注作者 迎接数电实验学习~
获取更多文章,请访问专栏:
北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客
关注作者的uu们可以进群啦~
一.verilog代码
1.1 decoder_led.v
module decoder_led(A,RBI,LT,BI_RBO,seg_led,seg_led_DP,seg_led_DIG);
input [3:0] A;
input RBI;//灭零输入信号
input LT;//试灯信号
input BI_RBO;//消隐输入、灭零输出信号
output [6:0]seg_led;//输出信号
output wire seg_led_DP;
output wire seg_led_DIG;
assign seg_led_DP=0;
assign seg_led_DIG=0;
decoders decoder_1(A,RBI,LT,BI_RBO,seg_led);//高位
endmodule
1.2 decoders.v
module decoders
(
A,
RBI,
LT,
BI,
out,
RBO,
);
input [3:0]A;
output reg [6:0]out;
input LT,RBI,BI;
output wire RBO;
always @(*)begin
casex({LT,RBI,A,BI})
7'b110_0001:out=7'b111_1110;
7'b1x0_0011:out=7'b011_0000;
7'b1x0_0101:out=7'b110_1101;
7'b1x0_0111:out=7'b111_1001;
7'b1x0_1001:out=7'b011_0011;
7'b1x0_1011:out=7'b101_1011;
7'b1x0_1101:out=7'b101_1111;
7'b1x0_1111:out=7'b111_0000;
7'b1x1_0001:out=7'b111_1111;
7'b1x1_0011:out=7'b111_1011;
7'b1x1_0101:out=7'b000_1101;
7'b1x1_0111:out=7'b001_1001;
7'b1x1_1001:out=7'b010_0011;
7'b1x1_1011:out=7'b100_1011;
7'b1x1_1101:out=7'b000_1111;
7'b1x1_1111:out=7'b000_0000;
7'bxxx_xxx0:out=7'b000_0000;
7'b100_0000:out=7'b000_0000;
7'b0xx_xxx1:out=7'b111_1111;
default out=7'b000_0000;
endcase
end
assign RBO=(LT& ~RBI &(A==4'b0000))?0:1;
endmodule
二.管脚分配
三.效果展示
通过拨动拨码开关可以控制七段数码管显示不同的数字。拨码开关是4为二进制。