gpt4 book ai didi

verilog - 如何在合成的verilog中包含时间延迟?

转载 作者:行者123 更新时间:2023-12-04 16:07:39 52 4
gpt4 key购买 nike

我正在尝试用 verilog 编写一个可综合的代码,我需要在其中包含几秒钟的时间延迟。我已经使用#delay 完成了模拟,但这对于合成器来说是 Not Acceptable 。

在合成FSM的过程中,不是根据某种条件而是在几秒的时间延迟后改变其状态,我想要上面的时间延迟方法。 FSM 必须在 4 秒后将状态从 state_1 切换到 state_2,在 2 秒后从 state_2 切换到 state_3,依此类推。

最佳答案

如果您知道您的时钟频率是 x 赫兹,并且您想要等待 y 秒,那么只需使用一个计数器并等待直到您达到数字 x*y。

例如对于 1kHz 的时钟和 3 秒的延迟,此代码将在时间延迟后触发 do_something。

`define CLOCK_FREQ 1000
`define TIME_DELAY 3

reg [31:0] count=0;

assign do_something = (count==`CLOCK_FREQ*`TIME_DELAY);

always @(posedge clk)
begin
count <= count + 1'b1;
end

关于verilog - 如何在合成的verilog中包含时间延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17361606/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com