新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 復位設計中的結構性缺陷及解決方案(二)

復位設計中的結構性缺陷及解決方案(二)

作者: 時間:2013-11-16 來源:網絡 收藏
px/25px 宋體, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align=center>  圖11:同步復位問題2

  4. 解決方案

  可用以下方式編寫RTL代碼,以避免同步鏈的組合邏輯。

  always @(posedge clk )

  if(!sync_rst_b) begin

  sync1 = 1‘b0;

  end

  else begin

  sync1 = async_in; sync2 = sync1

  end

  在上面的代碼中,對sync2觸發(fā)器不使用復位,因此在同步鏈中不會實現組合信元。然而,需要注意sync2需要一個額外的周期才能復位,這不應導致設計出現任何問題。

冗余復位同步器引起的問題

  1. 問題

  在使用多個異步時鐘的設計中,設計人員需要確保在目標寄存器使用的時鐘方面,異步復位的同步去斷言,否則可能導致目標觸發(fā)器發(fā)生時序違反,從而產生亞穩(wěn)態(tài)。復位同步器被用來復位去斷言,與目標時鐘域同步。然而,只有在系統(tǒng)復位去斷言過程中有目標時鐘時才會發(fā)生復位去斷言時序違反。如果在復位去斷言時沒有時鐘,那么便不會有任何時序違反。因此,在設計多時鐘域模塊時,設計人員可以讓編譯時間選項繞過該模塊中的那些復位同步器,并讓系統(tǒng)集成商根據對該模塊的時鐘可用性決定是否需要使用復位同步器。

  此外,如果系統(tǒng)時鐘和異步時鐘比非常高,冗余同步器甚至會造成設計功能性問題。下面描述了這個問題。

  復位設計中的結構性缺陷及解決方案(二)

  圖12:冗余同步器的問題

  在上面的設計中,去斷言與sys clk同步的系統(tǒng)復位被饋送到(mod_clk域)的復位同步器,然后在mod_clk域邏輯中使用該復位。讓我們假定sys clk : mod_clk的時鐘頻率比大于6:1.默認不啟用mod_clk,以節(jié)省動態(tài)功率。當用戶想要啟用mod_clk域邏輯的功能時,便啟用該時鐘。在啟用了該時鐘后,有兩個mod_clk周期的延遲,其中,由于復位同步器導致整個mod_clk域邏輯都處于復位狀態(tài)。在該階段,如果一些數據交易從sys clk域開始,將在mod_clk域丟失。

  2. 解決方案

  雖然這不是大問題,但有時會在客戶一端造成混淆,因為該延遲對客戶不可見。 因此消除混淆的更好的方式是:

  * 如果在全局復位去



評論


技術專區(qū)

關閉