2017-03-08 30 views
0

現在我想了解我們在verilog中使用negedge時鐘的優點。 我在谷歌中遇到了下面的verilog代碼。在verilog中使用negedge時鐘有什麼好處?

module negedgecapture 
    ( 
    input    clk, 
    input    rst_n, 
    input    din, 
    output wire  dout 
    ); 

    reg   neg_dout ; 
    assign dout = neg_dout; 

    always @(negedge clk or negedge rst_n) 
    if (~rst_n) neg_dout <= 0; 
    else neg_dout <= din; 

endmodule 

並且在我知道的情況下,建立時間至少需要數據在時鐘沿之前變得穩定的時間。 並且保持時間至少需要數據在時鐘邊沿之後變得穩定。

但我不知道那裏有什麼好處?爲什麼我們使用這些技術?

+0

您是否在詢問安裝和保持時間?請澄清你的問題。 –

+0

i2c,spi,mdio等將在一個邊緣上具有一個側面輸出,因此另一側可以在相反側進行採樣。在下降讀取上升或上升時讀取,下降讀取...... –

回答

1

使用時鐘的下降沿而不是上升沿對寄存器進行計時沒有特別的好處。事實上,我所做過的大多數設計都是利用一切的上升緣。有幾種情況下,我已經看到負邊緣使用:

  1. 當使用外部接口使用否定由於某種原因。我似乎回想起很久以前,即在雙極性TTL邏輯的日子裏,I/O驅動器在上升和下降時間方面可能是不對稱的,下降時間更快。在某些情況下,這種行爲已經進入界面設計。
  2. 在一些較舊的ASIC設計中,設計人員會在塊之間移動時從一個時鐘邊切換到另一個時鐘邊,以避免時鐘偏移問題。然而,從那以後,佈局工具在使用時鐘偏移管理方面做得更好,因此這個過程不再使用。
  3. 在DDR(雙倍數據速率)接口上,數據在正和負時鐘邊沿都發生變化。您將在基於LVDS的I/O和DDR存儲器接口中看到這一點。
+0

謝謝,但是,在違反保留時間的觀點呢?如果我使用上面的代碼,那麼有沒有什麼優點? – grander3

+0

您可以告訴我更多關於「在一些較舊的ASIC設計中,設計人員在塊之間移動時會從一個時鐘邊切換到另一個時鐘邊,以避免時鐘偏移問題。」 TECHNIC? – grander3

+0

@ gander3在良好的靜態時序分析工具和時鐘樹綜合工具可用之前,已經使用了這種技術。那時,時鐘偏移在邏輯塊內是非常可控的(物理上侷限於佈局中的矩形區域),但在模塊之間有些不可預知。因此設計人員會在其輸入端使用一個相反的邊沿觸發器來校正時鐘偏斜。這些工具現在好多了,時鐘速度要快得多,所以我從20世紀90年代後期就沒有見過這種技術。 –

1

如果你在posedge上書寫,閱讀對於一個神經來說是有用的。這將在讀操作上節省一個完整的時鐘週期。

爲了避免DUT和Te​​stbench之間的競爭狀態,在測試平臺中也使用了內部時鐘操作,因爲它們都在不同的時鐘邊沿被驅動。

+0

感謝您的回答,有沒有任何例子可以鍛鍊? – grander3