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)
非常感謝,我不知道過濾。我實現類似於你的示例代碼的延遲,但是你的示例代碼更友好,我將使用它。 –