8段数码管静态显示实验cylone4e FPGA(EP4CE6)Verilog例程quartus11.0工程源码 module sled(seg,dig,clock,); input clock; output [7:0] seg; //数码管段码输出 output [3:0] dig; //数码管位码输出 reg [7:0] seg; //数码管段码输出寄存器 reg [3:0] dig; //数码管位码输出寄存器 reg [3:0] disp_dat; //显示数据寄存器 reg [36:0] count; //定义计数寄存器 always @ (posedge clock ) begin count = count + 1'b1; dig= 8'b00000000;// end always @ (count[24]) begin disp_dat = {count[28:25]}; end always @ (disp_dat) begin case (disp_dat) 4'h0 : seg = 8'hc0; //显示"0" 4'h1 : seg = 8'hf9; //显示"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"
8段数码管静态显示Verilog设计逻辑Quartus工程源码文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module seg_led_static_top ( input sys_clk , // 系统时钟 input sys_rst_n, // 系统复位信号(低有效) output [5:0] sel , // 数码管位选 output [7:0] seg_led // 数码管段选 ); //parameter define parameter TIME_SHOW = 25'd25000_000; // 数码管变化的时间间隔0.5s //wire define wire add_flag; // 数码管变化的通知信号 //***************************************************** //** main code //***************************************************** //每隔0.5s产生一个时钟周期的脉冲信号 time_count #(.MAX_NUM(TIME_SHOW) ) u_time_count( .clk (sys_clk ), .rst_n (sys_rst_n), .flag (add_flag ) ); //每当脉冲信号到达时,使数码管显示的数值加1 seg_led_static u_seg_led_static ( .clk (sys_clk ), .rst_n (sys_rst_n), .add_flag (add_flag ), .sel (sel ), .seg_led (seg_led ) ); endmodule