学生实验
- 1、放置2个2-4译码器模块,则总共有2组SW,每组2个,2组LED,每组4个,每组SW分别控制其对应的LED组。
- 2、参照代码,设计一个3-8译码器,完成类似的拨码开关实验。注意代码中的信号宽度设定。
- 3、自行查阅手册中的7段译码器管脚对应关系,用4个拨码开关控制一个7段译码器的数字,从0-9-A-F,共16个数字和字母
1、放置2个2-4译码器模块,则总共有2组SW,每组2个,2组LED,每组4个,每组SW分别控制其对应的LED组。
首先编写verilog代码如下:
module dec_2to4(
IN ,
OUT);
input [2-1:0] IN ;
output [4-1:0] OUT ;
reg [4-1:0] OUT ;
always @ (IN) begin
case(IN)
2'b00: OUT = 4'b 0001;
2'b01: OUT = 4'b 0010;
2'b10: OUT = 4'b 0100;
2'b11: OUT = 4'b 1000;
endcase
end
endmodule // module dec_2to4;
画BDF图:

观察RTL Viewer:

再编译下载之后可得结果:
SW0,SW1控制LED0-LED3
SW2,SW3控制LED4-LED5
当SW0,SW1,SW2,SW3均为零时LED0和LED4亮

当SW0为1,SW1为1,SW2,为1,SW3为0时LED1和LED5亮

实验结果与预期一致,实验正确。
2.下面设计一个3-8译码器,完成类似的拨码开关实验。
编写3-8译码器的Verilog代码如下:
module dec_3to8(
IN ,
OUT);
input [3-1:0] IN ;
output [8-1:0] OUT ;
reg [8-1:0] OUT ;
always @ (IN) begin
case(IN)
3'b000: OUT = 8'b 0000_0001;
3'b001: OUT = 8'b 0000_0010;
3'b010: OUT = 8'b 0000_0100;
3'b011: OUT = 8'b 0000_1000;
3'b100: OUT = 8'b 0001_0000;
3'b101: OUT = 8'b 0010_0000;
3'b110: OUT = 8'b 0100_0000;
3'b111: OUT = 8'b 1000_0000;
endcase
end
endmodule // module dec_3to8;
bdf原理图:

RTL Viewer:

编译下载后结果图:
当SW2,SW1,SW0均为1时,经过译码器后结果应该为LED7亮:

结果与设想一致,验证了实验的正确性。
3、自行查阅手册中的7段译码器管脚对应关系,用4个拨码开关控制一个7段译码器的数字,从0-9-A-F,共16个数字和字母
首先编写7段译码管Verilog代码如下:
module bcd7seg(
IN,
OUT);
input [3:0] IN;
output [7:0] OUT;
reg [7:0] OUT;
always @(IN) begin
case(IN)
4'b0000: OUT = 8'b11000000; // 0
4'b0001: OUT = 8'b11111001; // 1
4'b0010: OUT = 8'b10100100; // 2
4'b0011: OUT = 8'b10110000; // 3
4'b0100: OUT = 8'b10011001; // 4
4'b0101: OUT = 8'b10010010; // 5
4'b0110: OUT = 8'b10000010; // 6
4'b0111: OUT = 8'b11111000; // 7
4'b1000: OUT = 8'b10000000; // 8
4'b1001: OUT = 8'b10010000; // 9
4'b1010: OUT = 8'b00001000; // A
4'b1011: OUT = 8'b00000000; // B
4'b1100: OUT = 8'b01000110; // C
4'b1101: OUT = 8'b01000000; // D
4'b1110: OUT = 8'b00000110; // E
4'b1111: OUT = 8'b00001110; // F
endcase
end
endmodule
bdf原理图为:

RTL Viewer:

在这里,我们用拨码开关SW3,SW2,SW1,SW0控制数码管,其中数字A~F我们加小数点来提醒。
当我们输入SW0为1,其余为0时,数码管显示为1:

当我们输入SW3,SW2,SW1,SW0均为1时,数码管显示F:

实验结果与设想一致,验证了实验的正确性。
本文详细介绍了一个数字译码实验,包括2-4译码器、3-8译码器的Verilog代码实现及验证,以及使用4个拨码开关控制7段译码器显示0-9及A-F的十六进制数字。
894

被折叠的 条评论
为什么被折叠?



