【作业要求】
1、请画出1s跑马灯的时序图?
2、请使用Verilog设计一个翻转灯:led隔1s翻转一次,led一开始亮两个灯,1s之后亮另外两个灯(写出详细的代码)?
【我的做法】1、不知道用啥画
2、在原来代码的基础上将初态改为0011,移位改为2
module W_LED(
input clk ,
input rst ,
output reg [3:0] led
);
parameter TIME_1s = 26'd50_000_000;
reg [25:0] cnt ;
/////1s计时器
always@(posedge clk)
if(!rst)
cnt <= 0;
else
if(cnt < TIME_1s)
cnt <= cnt + 1;
else
cnt <= 0;
always@(posedge clk)
if(!rst)
led <= 4'b0011; /////分支1:赋初值
else if(cnt == TIME_1s) /////1s达到
begin
if(led == 4'b1100)
led <= 4'b0011;
else /////led != 4'b1000
led <= led << 1; /////led左移1位
end
else /////1s没有记到
led <= led; /////led保持
endmodule【结果/截图说明】
评论 0