跑马灯:8个LED以每个0.5s的速率循环闪烁
- 设计定义
2. 设计输入
module paomadeng( clk, rst, led ); input clk; input rst; output reg[7:0] led; reg[31:0] cnt; always@(posedge clk or negedge rst) if(!rst) cnt <= 0; else if(cnt==25_000-1) cnt <= 0; else cnt <= cnt + 1; always@(posedge clk or negedge rst) if(!rst) led[7:0] <= 8'b0000_0001; else if(cnt == 25_000-1) begin if(led[7:0] == 8'b1000_000) led[7:0] <= 8'b0000_0001; else led[7:0] <= led[7:0] <<1; end endmodule
3. 功能仿真
`timescale 1ns / 1ns module paomadeng_tb; reg s_clk; reg s_rst; wire [7:0]s_led; paomadeng paomadeng_tb( .clk(s_clk), .rst(s_rst), .led(s_led) ); initial s_clk =1; always #10 s_clk=~s_clk; initial begin s_rst = 0; #201 s_rst = 1; #40000000; $stop; end endmodule