文章目录
FPGA实验
LAB1——项目创建、编译和下载
要求
用1个拨码开关控制所有的LED灯亮灭
BDF文件
引脚图
实验结果
LAB2——FPGA译码器组合逻辑
要求—1
1、放置2个2-4译码器模块,则总共有2组SW,每组2个,2组LED,每组4个,每组SW分别控制其对应的LED组。
BDF文件
引脚图(Pins)
实验结果
第一组:SW0=SW1=1时,LED3亮;
第二组:SW2=0,SW3=1时,LED6亮 。
要求—2
2、参照代码,设计一个3-8译码器,完成类似的拨码开关实验。注意代码中的信号宽度设定。
代码
//add dec3to8 symbol
module dec3to8(
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
BDF文件
注意:不要将添加符号的名称与BDF文件名称一致,否则会报错(Error: Can’t compile duplicate declarations of entity “dec3to8” into library)
引脚图(Pins)
实验结果
当SW0=SW1=SW2=1时,LED7亮
要求—3
3、自行查阅手册中的7段译码器管脚对应关系,用4个拨码开关控制一个7段译码器的数字,从0-9-A-F,共16个数字和字母
代码
// add 4to7dec shumaguan symbol
module dec4to7(
IN , // input
OUT ); // out data
input [3:0] IN;
output [6:0] OUT;
reg [6:0] OUT;
always @ (IN) begin
case(IN)
4'b0000: OUT = 7'b1000000; //0 gfedcba bit
4'b0001: OUT = 7'b1111001; //1
4'b0010: OUT = 7'b0100100; //2
4'b0011: OUT = 7'b0110000; //3
4'b0100: OUT = 7'b0011001; //4
4'b0101: OUT = 7'b0010010; //5
4'b0110: OUT = 7'b0000010; //6
4'b0111: OUT = 7'b1111000; //7
4'b1000: OUT = 7'b0000000; //8
4'b1001: OUT = 7'b0010000; //9
4'b1010: OUT = 7'b0001000; //A
4'b1011: OUT = 7'b0000011; //b B=8
4'b1100: OUT = 7'b1000110; //C
4'b1101: OUT = 7'b0100001; //d D=0
4'b1110: OUT = 7'b0000110; //E
4'b1111: OUT = 7'b0001110; //F
endcase
end
endmodule
BDF文件
引脚图(Pins)
实验结果
当SW0=SW3=0,SW1=SW2=1时,数码管显示6;