• 已绑定课时
  • 工程师可点评

【作业要求】 1、请画出1s跑马灯的时序图? 2、请使用Verilog设计一个翻转灯:led隔1s翻转一次,led一开始亮两个灯,1s之后亮另外两个灯(写出详细的代码)? 【我的做法】 module led_2( input wire sysclk, input wire rst_n, output reg [3:0]led ); parameter T_deley = 26'd49_999_99…

ZQY
4 0

1、请画出1s跑马灯的时序图?

2、请使用Verilog设计一个翻转灯:led隔1s翻转一次,led一开始亮两个灯,1s之后亮另外两个灯(写出详细的代码)?

module led_2(
input wire     sysclk,
input wire     rst_n,
output reg     [3:0]led
);
parameter T_deley = 26'd49_999_999; //1s计时器
reg       [25:0]ns_num;             //计数变量
reg                 en;
always@(posedge sysclk or negedge rst_n)begin
if(!rst_n)begin
ns_num <= 0;
en <= 0;
end
else
begin
if(ns_num < T_deley)begin
ns_num <= ns_num + 1;
en <= en;
end
else
ns_num <= 0;
en <= ~en;
end
end
always@(posedge sysclk or negedge rst_n)begin
if(!rst_n)
led <= 4'b0000;
else
begin
if(en == 0)
led <= 4'b1100;
else
led <= led>>2;
end
end
endmodule