很高兴回答你的问题!
如果以下回答合适,请空卜采纳;如果不恰当,继续讨论。谢谢!
该题本质上是有限状态机的设计问题。令所要完成的功能要求包含四种模式,分别是①从左到右点亮,②从右到左点亮,③从两边到中间点亮,④从中间到两边点亮。要求四种模式依次切换,循环执行。
令clk为led流水灯(共计12个LED灯)的驱动时钟【要求低频扮亏橡,如1Hz】,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低电平为亮,高电平为灭)
很高兴回答你的问题!
如果以下回答合适,请采纳;如果不恰当,继续讨论。谢谢!
令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低电平为亮,高电平为灭)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)