题目(1):放置2个2-4译码器模块,则总共有2组SW,每组2个,2组LED,每组4个,每组SW分别控制其对应的LED组
1.新建VHDL-Verilog文件,并写一个2-4译码器的moudle,并创建Symbol。
2.新建BDF文件,将上面创建的2-4译码器添加到文件中,添加输入、输出引脚,并且指派引脚。
3.RTL图如下所示
4.编译,下载到DE0板子,通过拨动两组开关,观察对应的Led的亮灭情况
题目(2):参照代码,设计一个3-8译码器,完成类似的拨码开关实验。注意代码中的信号宽度设定
1.新建工程,添加Verilog文件和BDF文件,写出一个3-8译码器的module,并创建Symbol,代码如下:
module MUX3_8(
IN,OUT
);
input [2:0] IN;
output [7:0] OUT;
reg [7:0] OUT;
always @(IN) begin
case (IN)
3'b000: OUT=8'b0000_0001;
3'b001: OUT=8'b0000_0010;
3'b010: OUT=8'b0000_0100;
3'b011: OUT=8'b0000_1000;
3'b100: OUT=8'b0001_0000;
3'b101: OUT=8'b0010_0000;
3'b110: OUT=8'b0100_0000;
3'b111: OUT=8'b1000_0000;
endcase
end
endmodule
2.新建BDF文件,将上面创建的2-4译码器添加到文件中,添加输入、输出引脚,并且指派引脚
3.RTL图如下所示
4.编译下载工程,观察现象
题目(3):自行查阅手册中的7段译码器管脚对应关系,用4个拨码开关控制一个7段译码器的数字,从0-9-A-F,共16个数字和字母
1.新建工程,添加Verilog文件和BDF文件,写出一个译码器控制数码管的module,并创建Symbol,代码如下:
module SEG_VC(
IN,
OUT
);
input [3:0] IN;
output [7:0] OUT;
reg [7:0] OUT;
always @ (IN) begin
case(IN)
4'b0000:OUT=8'b11000000;
4'b0001:OUT=8'b11111001;
4'b0010:OUT=8'b10100100;
4'b0011:OUT=8'b10110000;
4'b0100:OUT=8'b10011001;
4'b0101:OUT=8'b10010010;
4'b0110:OUT=8'b10000010;
4'b0111:OUT=8'b11111000;
4'b1000:OUT=8'b10000000;
4'b1001:OUT=8'b10010000;
4'b1010:OUT=8'b10001000;
4'b1011:OUT=8'b10000011;
4'b1100:OUT=8'b11000110;
4'b1101:OUT=8'b10100001;
4'b1110:OUT=8'b10000110;
4'b1111:OUT=8'b10001110;
endcase
end
endmodule
2.新建BDF文件,将上面创建的Symbol添加到文件中,添加输入、输出引脚,并且指派引脚
3.RTL图如下:
4.编译下载工程,观察现象