1,循环显示1-F。
module Seven_LED( clk, rst, led_out ); input clk,rst; output [11:0] led_out; reg [11:0] led_out; reg [3:0] data; reg [24:0] Mega_cnt; wire slow_clk; /***********************************/ always @(posedge clk or negedge rst) begin if(!rst) begin Mega_cnt<=0; end else begin Mega_cnt<=Mega_cnt+1; end end assign slow_clk = Mega_cnt[24]; /***********************************/ always @ (posedge slow_clk or negedge rst) begin if(!rst) data <= 0; else data <= data + 1; end always @ (data) case(data) 4'd0 : led_out = 12'b1111_1100_1111; 4'd1 : led_out = 12'b0110_0000_1111; 4'd2 : led_out = 12'b1101_1010_1111; 4'd3 : led_out = 12'b1111_0010_1111; 4'd4 : led_out = 12'b0110_0110_1111; 4'd5 : led_out = 12'b1011_0110_1111; 4'd6 : led_out = 12'b1011_1110_1111; 4'd7 : led_out = 12'b1110_0000_1111; 4'd8 : led_out = 12'b1111_1110_1111; 4'd9 : led_out = 12'b1111_0110_1111; 4'd10: led_out = 12'b1110_1110_1111; 4'd11: led_out = 12'b0011_1110_1111; 4'd12: led_out = 12'b1001_1100_1111; 4'd13: led_out = 12'b0111_1010_1111; 4'd14: led_out = 12'b1001_1110_1111; 4'd15: led_out = 12'b1000_1110_1111; endcase endmodule
2,显示1234
module seg_led(clk,rst, s0,s1,s2,s3, d0,d1,d2,d3,d4,d5,d6,d7 ); input clk,rst ; output s0,s1,s2,s3 ; output d0,d1,d2,d3,d4,d5,d6,d7 ; reg [1 :0 ] state ; reg [3 :0 ] sn ; reg [7 :0 ] data ; reg [15:0 ] cnt ; wire s0,s1,s2,s3 ; wire d0,d1,d2,d3,d4,d5,d6,d7 ; assign {s3,s2,s1,s0} = sn ; assign {d7,d6,d5,d4,d3,d2,d1,d0} = data ; always @ ( posedge clk ) if( !rst ) cnt<=16'b0; else cnt<=cnt+16'b1; wire clk_slow = cnt[15] ; always @ ( posedge clk_slow or negedge rst ) if( !rst ) state<=2'b00; else state<=state+2'b01; always @ ( posedge clk_slow or negedge rst ) if( !rst ) begin sn<=4'b0; data<=8'b0; end else case(state) 2'b00: begin sn<=4'b0001; data<=8'b0110_0000; end 2'b01: begin sn<=4'b0010; data<=8'b1101_1010; end 2'b10: begin sn<=4'b0100; data<=8'b1111_0010; end 2'b11: begin sn<=4'b1000; data<=8'b0110_0110; end endcase endmodule
动态扫描的方法显示。