我想知道如何为滴答计数器编写一个verilog程序。当快速输入为低电平时,输出滴答为高电平,每 150 ms 一个周期(每 7500000 个周期) clk 周期为 20ns。如果快速输入为高电平,则滴答应每隔一个时钟周期变为高电平一个周期。
我在想我应该计算 clk 周期并在满足周期数时使用该计数来输出最高的滴答声,但我似乎无法让它工作。
这是我的代码:
module tick_counter(
input clk,
input reset,
input fast,
output reg tick
);
reg count;
always @(posedge clk) begin
count <= count + 1;
if((fast == 1)&&(count == 2)) begin
tick <= 1;
end
else if(fast == 0)&&(count == 7500000)) begin
tick <= 1;
end
end
endmodule