assign #1400ps w_clk_d = clk;
充当延迟和过滤器。当clk
更改等待1400ps然后将当前值(非原始值)应用于w_clk_d
。如果输入变化比延迟威胁值丢失更快。物理电路中的延迟单元也可以观察到类似的行为。
通过链接较小的延迟可以减少过滤;物理延迟单元使用相同的策略。
wire #700ps clk_d = clk;
assign #700ps w_clk_d = clk_d;
只未经过滤的延迟可以与传输延迟,这样的clk
值时,它切换,则该采样值适用于w_clk_d
1400ps后者
logic w_clk_d;
always @* w_clk_d <= #1400ps clk;
为了保持分配来实现在调度程序活动区域,则需要额外的代码
logic w_clk_d;
always @(clk) fork
begin
automatic logic sample_clk; // visible only locally with in the fork thread
sample_clk = clk; // local copy of clk
#1400ps;
w_clk_d = sample_clk;
end
join_none // non-blocking, allows detection of next @(clk)
非常感谢,我不知道过滤。我实现类似于你的示例代码的延迟,但是你的示例代码更友好,我将使用它。 –