一、实验任务
①放置2个2-4译码器模块,则总共有2组SW, 每组2个,2组LED,每组4个,每组SW分别控 制其对应的LED组。
②参照代码,设计一个3-8译码器,完成类似的拨码开关实验。注意代码中的信号宽度设定。
③自行查阅手册中的7段译码器管脚对应关系, 用4个拨码开关控制一个7段译码器的数字,从 0-9-A-F,共16个数字和字母。
二、实验过程
任务一:放置2个2-4译码器模块,则总共有2组SW,每组2个,2组LED,每组4个,每组SW分别控制其对应的LED组。
首先新建bdf文件使其成为顶层文件,之后新建RTL文件,编写2-4译码器模块代码,代码如下
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文件里放置两个input,1个output[3..0]。注意:bdf文件中input 的线是绿色框的线,output与译码器连接的线要用红色框的。
这里注意线网式的标记方法
• 导线命名方法:导线上右键,properties,name,然后设定 名称,中括号表示该导线是一个bus的一部分。
• 线网的选择使用 两个点号“..”,例如图中的inW[1..0],表示其包含了inW[0]和inW[1]两根导线。
• 这种使用导线的名称来进行连接电路的方法叫做网(络)标(号)式连接。
最后上板子验证
任务二:设计一个3-8译码器,完成类似的拨码开关实验
还是要先建bdf文件,然后编写3-8译码器RTL代码,代码如下
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文件里,放置三个input,一个output[7..0],bdf图如下,这里也是要注意连线不同
然后分配管脚,上板子验证(DE0板子管脚分配图我会放在最后)
最后上板子验证
任务三:用4个拨码开关控制一个7段译码器的数字,从 0-9-A-F,共16个数字和字母。
还是要先建bdf文件,然后编写数码管RTL代码,其中数码管原理图如下
RTL代码
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图
引脚分配图
上板子验证
DE0相关原理图