跑马灯的逻辑代码
module led_run(
Clk,
Reset_n,
Led
);
input Clk;
input Reset_n;
output reg [7:0]Led;
reg [24:0]counter;
parameter MCNT =25'd24999999;
always@(posedge Clk or negedge Reset_n)
if(!Reset_n)
counter <=0;
else if(counter == MCNT)
counter <=0;
else
counter <= counter +1'd1;
always@(posedge Clk or negedge Reset_n)
if(!Reset_n)
Led <=8'b0000_0001;
else if(counter == MCNT)begin
if (Led == 8'b1000_0000)
Led <=8'b0000_0001;
else
Led <=Led <<1;
//Led <= {Led[6:0],Led[7]};
end
else
Led <= Led;
endmodule
仿真代码
`timescale 1ns/1ns
module led_run_tb;
reg Clk;
reg Reset_n;
wire [7:0]Led;
led_run
led_run_ints0(
.Clk(Clk),
.Reset_n(Reset_n),
.Led(Led)
);
defparam led_run_ints0.MCNT=24999;
initial Clk =1;
always #10 Clk =!Clk;
initial begin
Reset_n = 0;
#201;
Reset_n=1;
#40000000;
$stop;
end
endmodule
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删