12个跑马灯 verilog hdl程序中rst复位 四种循环模式从左到右点亮 从右到左点亮

从两边到中间点亮 从中间到两边点亮 四种模式循环切换
2025-03-10 14:41:51
推荐回答(1个)
回答1:

  很高兴回答你的问题!

  如果以下回答合适,请采纳;如果不恰当,继续讨论。谢谢!


令clk为led流水灯的驱动时钟,rst为上升沿复位信号(异步)。则所实现的Verilog HDL代码部分如下:

module led_run(clk,led,rst);

input clk; //clk with low frequency like 1Hz

input rst; //system reset signal

output [11:0] led; //denotes 12 leds,

reg [11:0] led;

reg [2:0] state; //state variable,internal signals

reg [5:0] count; //control signals of the state diagram,internal signals


always @(posedge clk or posedge rst) //the state diagram

  if (rst)

    begin

state <= 3'b000;

count <= 6'b000000;

end

  else 

    case(state)

...

详细代码见附件。

该代码的仿真波形如下图所示(注led低电平为亮,高电平为灭)