点亮流水灯(板子上实现按键功能)
module led(clk,rst_n,led);
input clk,rst_n;
output led;
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
led<=0111;
else if(led == 0111)
led<=1011;
else if(led == 1101)
led<=1110;
else if(led == 1110)
led<=0111;
end
endmodule
仿真
`timescale 1ns/1ps
module led_tb(clk,rst_n,led);
wire clk,rst_n;
reg led;
led(
.clk(clk),
.rst_n(rst_n),
.led(led)
);
initial
begin
if
led<={led[0],led[3:0]} ;
else
led<={led[2],led[2:1]} ;
end
endmodule
分频
module freg(clk,rst_n,led);
input clk,rst_n;
output led;
reg[4:0] cnt;
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
cnt<=0;
else
cnt<=cnt+1'b0;
end
assign led=cnt;
endmodule