立题简介:
内容:回顾FPGA逻辑部分Verilog实验--7段数码管实验;
来源:实际得出;
作用:回顾FPGA逻辑部分Verilog实验--7段数码管实验;
仿真环境:Quartus II 11.0;
日期:2019-04-22;
=====================分割线========================
立题详解:
本次回顾FPGA逻辑部分Verilog实验--7段数码管实验,使用“FPGA芯片”为“EP4CE6E22C8”,价格约“15.00RMB/PCS”,“LEs数目”约为“6272”;
PS:逻辑部分主要有5个:“与门”、“或门”、“非门”、“异或门”、“同或门”;
本次介绍为“与非门”,代码实测可用,简介如下:
i)、“开发环境”:环境为“Quartus II 11.0”;
ii)、FPGA芯片:芯片为“EP4CE6E22C8”,价格约“15.00RMB/PCS”,“LEs数目”约为“6272”;
iii)、“电路描述”:使用电路描述为“组合逻辑电路”;
1、“7段数码管实验”实际介绍
首先,对“7段数码管实验”代码而言,功能为:实现“1秒间隔”改变“4位7段数码管”的数值显示,显示范围“4bit构成的hex数据”,内容为“0~F”;
硬件电路如下所示:
具体代码如:
module sled(clk,seg,dig);
input clk;
output[7:0] seg;
output[3:0] dig;
reg[7:0] seg;
reg[3:0] dig;
reg[3:0] disp_dat;
reg[28:0] cnt;
always @(posedge clk)
begin
cnt <= cnt+1'b1;
dig = 4'b0000;
if(cnt == 27'd24_999_999)
begin
disp_dat <= disp_dat+1'b1;
cnt <= 0;
end
end
parameter seg_show_0 = 8'hc0;
`define SS_S (8'hf9)
always @(disp_dat)
begin
case (disp_dat)
4'h0 : seg = seg_show_0; //显示"0"
4'h1 : seg = `SS_S; //显示"1"
4'h2 : seg = 8'ha4; //显示"2"
4'h3 : seg = 8'hb0; //显示"3"
4'h4 : seg = 8'h99; //显示"4"
4'h5 : seg = 8'h92; //显示"5"
4'h6 : seg = 8'h82; //显示"6"
4'h7 : seg = 8'hf8; //显示"7"
4'h8 : seg = 8'h80; //显示"8"
4'h9 : seg = 8'h90; //显示"9"
4'ha : seg = 8'h88; //显示"a"
4'hb : seg = 8'h83; //显示"b"
4'hc : seg = 8'hc6; //显示"c"
4'hd : seg = 8'ha1; //显示"d"
4'he : seg = 8'h86; //显示"e"
4'hf : seg = 8'h8e; //显示"f"
endcase
end
endmodule
如上所示,特别注意其中的写法为:
其中,为测试“`define”及“parameter”写法,可直接使用“字段定义”,重点注意2点:
i)、“`define”:此处核心字段为“`define”,不为“`define SS_S (8'hf9)”;
ii)、“parameter”:此处核心字段为“parameter”,不为“parameter seg_show_0 = 8'hc0;”;
其次,RTL级截图如下:
再次,引脚分配如下: