流水灯设计
- 硬件电路
- 由原理图可见,LED高电平有效。
- 引脚图
设计要求
- 4颗LED依次点亮1s,对于50MHz的系统时钟,一个时钟周期是20ns,则1s则需要50,000,000个时钟周期。
- 如果用计数器累加1次表示一个时钟周期,那么50,000,000个时钟周期需要计数49,999,999(从0开始计数)。
方式一(计数4s)
- 设计思想:有上面的设计要求可知,1s的时间要计数49,999,999,2s计数99,999,999,3s计数149,999,999,4s计数199,999,999,依次循环。
- LED0,LED1,LED2,LED3,初始0000,把上面的计数作为判断条件,依次切换即可。
// first project: led_test
// Date : 2021/12/13
// By : Coucher
// Module function : Running-water lamp
module led_test(
input clk, // system clock 50MHz
input rst_n, // reset, low active
output reg[3:0] led // LED, use for control the LED signal
);
// define the time counter
reg[31:0] cnt;
// cycle counter: from 0 to 4 sec
always@(posedge clk or negedge rst_n)
begin
if(rst_n ==