8位流水灯程序verilog_花样流水灯2:双灯左移右移与闪烁
时间: 2023-12-03 16:46:29 浏览: 35
以下是一个简单的8位流水灯程序,使用Verilog语言实现双灯左移、右移和闪烁。
```verilog
module LED_Lights(
input clk,
output reg [7:0] leds
);
reg [7:0] pattern;
reg [2:0] count;
always @(posedge clk) begin
count <= count + 1;
if(count == 3'd6) begin
count <= 0;
pattern <= pattern << 1;
if(count[2] == 1) begin
pattern[0] <= ~pattern[0];
pattern[4] <= ~pattern[4];
end else begin
pattern[7] <= ~pattern[7];
pattern[3] <= ~pattern[3];
end
end
end
assign leds = pattern;
endmodule
```
代码中有一个计数器 `count`,它每隔6个时钟周期递增一次。当 `count` 达到6时,左移 1 位,并根据 `count[2]` 的值选择要闪烁的灯。
`pattern` 寄存器保存当前的灯模式,也就是要显示的内容。在每个时钟周期中,它向左移动一位,并根据需要闪烁。
最终结果是,每隔6个时钟周期,8位模式会向左移动一位并闪烁两个灯之一。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![sb3](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)