隨著現代ASIC中時鐘域的增加,時鐘域交叉(CDC)變得無處不在,必不可少且必不可少。當然,時間安排總是一個問題。高時鐘速度和信號路徑中的延遲會導致信號到達不希望的時刻,從而導致亞穩性。本文的第一部分重點介紹設計中異步域的必要性以及隨之而來的挑戰。由于工程師無法避免異步信號,因此本文介紹了如何減輕CDC引起的問題。它還涵蓋了MTBF在設計中選擇同步器的用法。
第二部分介紹了同步器的時序方面,以及由于同步器不同元素之間的路徑約束不當而可能如何影響此功能。當今的SoC使用各種同步技術,但是您必須了解其在適當情況下的用法。我們將討論這些技術,并說明在給定情況下不使用apt同步器的后果。第三,我們將涵蓋設計中CDC同步器的驗證方面以及設計中同步器所有方面的方法論。為什么使用異步路徑?
現代芯片中越來越多的邏輯使得異步路徑必不可少。在同步設計中,在所有觸發器上都保持相同的時鐘偏斜使時序變得困難。使用全局同步時鐘會在較短的路徑上引入時序開銷,而使用更快的時鐘則不會發生這種情況。結果:降低了整體性能。此外,由時鐘路徑延遲引起的過程電壓-溫度(PVT)變化最終會導致不均勻的偏斜,從而使路徑有效地異步并引起亞穩定性問題。盡管工程師在同步設計中使用時鐘門控單元來降低功耗,但異步域的功耗甚至更低。
異步路徑有一個有用的目的,但是會帶來風險??梢詫σ圆煌l率工作的兩個觸發器之間的傳播時間進行定時,但是時鐘的異步特性不會在數據切換和時鐘沿之間提供確定的關系。為了正確的觸發器操作,源(觸發器D)上的數據應在其設置和保持窗口之外很好地切換。這就是為什么。亞穩態的傷害考慮一下圖1a中的圖表,這是一個正邊沿觸發翻牌的內部圖片。為了理解亞穩態,假設觸發器處于復位狀態。1. CLK = 0,D = 1:路徑DABC和PQR處于活動狀態。D處的值鎖存在C處(狀態如圖1b所示)
)2. CLK = 1,D = 1,路徑CAB和PQ處于活動狀態。C處的鎖存值反映在Q處(狀態如圖1c所示)。建立時間:當D處的值從0變為1時,信號從D到達節點C需要一定的時間。同時,如果CLK切換,它將鎖存一個中間值節點C。因此,C被卡住,并且該亞穩值出現在Q處。通過此路徑傳播所需的時間是建立時間。為了避免亞穩態,D處的數據必須在設置窗口(T s)之外進行很好的更改。保持時間
:假設D在CLK從0切換到1的過程中切換。由于在CLK切換之后,節點A從節點D斷開,因此A可以捕獲在Q處可見的中間值。因此,CLK從0切換到1的時間。是保持時間。
圖1(a)邊沿觸發觸發器的內部框圖顯示了反相器和傳輸門。(b)當CLK = 0時,活動路徑為綠色。(c)當CLK = 1時,活動路徑為綠色。
消除亞穩定性
在兩種情況下,當CLK從0切換到1時,亞穩態值都會卡在節點A(設置)或節點C(保持)上。這會導致亞穩態值在第一個鎖存器(ABC)周圍循環,然后嘗試將其自身解析為穩定值。在圖1b和圖1c的情況下,固定值在帶有兩個交叉耦合逆變器的閉環(雙穩態元件)中移動。通過小信號模型分析,兩個節點之間的電壓差顯示出指數行為。它確定的值取決于節點A或C的中間值,但是在稱為亞穩態解析時間的確定時間后,電壓差接近晶體管閾值電壓(V TH)
由同步時間常數(τ)確定。如果亞穩不能在半個周期內解決,則當CLK從1切換到0時,亞穩值甚至可能在第二個鎖存器(PQR)中循環,此亞穩值不得進一步傳播。幸運的是,兩個背對背觸發器(2 Dff)可以防止出現此問題。如果在第一個觸發器(即元觸發器)的時鐘周期內穩定到穩定值,則第二個觸發器將不會捕獲不穩定值(同步觸發器)。但是,我們如何確保亞穩態值將在一個時鐘周期內穩定下來?考慮確定亞穩態解決時間的因素。
其中V TH 是閾值電壓和δ V我 是在卡住值(電壓差V小號 )到亞穩態電壓(V中號 )中,如圖圖2,其示出傳輸的雙穩態逆變器回路的特性。
圖2雙穩態逆變器的傳輸特性包括滯留電壓(V S )和亞穩態電壓(V M )。差異(V M )可能導致V OUT 下降到閾值電壓(V TH )之間。
同步時間常數(τ)決定了亞穩分辨率。它取決于逆變器的RC特性增益(A)。τ值越小,從亞穩值到閾值電壓的過渡斜率越大。這樣可以縮短解析時間。因此,低閾值電壓單元(LVT)通常代替meta flop,因為LVT的τ值遠小于高閾值電壓單元(HVT)和標準閾值電壓單元(SVT)的τ值,從而減少了解決時間。亞穩電壓也成為問題的原因。根據公式,如果V M 為0,則滯留電壓(V MS)等于亞穩電壓(V M
)。發生這種情況時,理論上將需要無限的時間來解決。這本質上永遠不會發生嗎?即使被卡住的電壓恰好在電源電壓和地之間的中間點(V M ),由于諸如熱噪聲之類的隨機過程,它最終還是會發生變化。由于數學公式無法提供解決時間,因此您需要一種概率方法。概率方法發生亞穩態的概率為(T W / T)× F D,其中T W 是設置保持窗口,T 是時間段,F D
是數據引腳切換的頻率。因此,概率(輸入MS)= T W × F C × F D。 由于分辨時間遵循指數行為,因此在給定時間t分解亞穩態的概率 由e – t /τ給出。因此,故障概率或故障發生率為T W × F C × F D ×e – t /τ。因此,平均無故障時間(MBTF)= 1 / Rate(failure)
為了提高同步器的可靠性,我們最大化了MTBF。我們根據預期產品壽命選擇最佳MTBF值。因為我們希望亞穩態到一個周期的持續時間,內解決噸 在電子噸/τ 小于一個時鐘周期或同步時段(? RES )和τ是技術依賴。因此,將MTBF設置為10 3 年的數量級,我們可以計算出同步器在MTBF時間段內無故障運行的頻率。注意:通常將MTBF設置為比單個同步器期望的高幾個數量級??紤]到a,SOC可能包含多達1000個數量級的許多同步器,因此總體MTBF降低了相同數量級。
選擇同步器觸發器
對于同步器,由于時鐘周期短,可能會導致亞穩態無法解決。解決方法:使用兩個元觸發器。第二個翻牌提供了更多時間來解決亞穩性。因此,可以基于設計的頻率要求來選擇要使用的同步器觸發器的數量。隨著頻率的增加,同步觸發器的數量也可以根據等式1進行增加。例如,如果t的值 根據上式計算得出的值大于工作頻率的時間段,則元觸發器的數量也必須增加。請記住,增加觸發器數量也會在同步關鍵數據路徑時引入延遲,最終導致數據速率降低。因此,您必須進行權衡。
圖3 2 Dff同步器使用兩個觸發器來消除亞穩態條件。
了解時序要求
在圖4a中,在第二周期的同步觸發器處正確捕獲了DIN處的數據(沒有亞穩態)。源脈沖的長度足以使目標觸發器捕獲它?,F在,看看一些不幸的計時條件。在圖4b中,DIN處的數據脈沖太短,無法捕獲目標域。因此,在同步時沒有捕獲任何值。在圖4c中
,DIN處的數據太短,并且會在元觸發器(TW)的設置保持時間窗口內轉換。結果,元觸發器變為亞穩態,但由于它在一個周期的持續時間內解析,因此它不會傳播到同步觸發器。但是,元觸發器可以解析為值0或1。這種情況可能導致錯誤的數據傳播。如果數據在另一個時鐘周期內保持穩定,則不會發生這些不幸的情況。就是這樣。
在圖4c中,如果源數據(DIN)對于目的地時鐘的至少三個邊緣是穩定的,則在第二或第三周期中有效地使數據同步。因此,要使這種同步技術正常工作,需要一個時鐘周期加上在src(DIN)數據上的建立和保持時間的時序要求。如果數據從較慢的時鐘域傳遞到較快的域,以使較慢時鐘與較快時鐘的時間段之比為1.5,則沒有嚴格的時序要求。來自較慢時鐘域的數據將始終在較快時鐘處進行采樣。
圖4(a)在DIN處正確采樣的數據。(b)缺少DIN的數據。(c)DIN上的數據太短,無法傳播正確的值。(d)在DIN處正確采樣的數據。
對于從較快的時鐘傳遞到較慢的時鐘的信號,其中DIN可能是如圖4b所示的脈沖信號,并且在目標時鐘的1.5個周期內不穩定,我們可以使用基于確認的同步器。這種技術可以拉伸源數據并在目標域捕獲它。目的地信號被確認回到源域,以確保在目的地正確捕獲。元觸發器和同步觸發器之間的時序我們已經看到源觸發器處的異步信號時序如何影響同步器中的數據傳播?,F在,元觸發器和同步觸發器之間是否有時序要求?如果將元觸發器和同步觸發器放置得相距很遠(圖5a
),以至于傳播延遲(TDELAY)超過時鐘周期,亞穩值可能會傳播到同步觸發器,如波形所示(圖5b)。因此,應將它們放置得足夠近,以使SyncD的值在下一個時鐘沿穩定下來。拖鞋之間應該有多少距離?我們應確保在元觸發器和同步觸發器之間驗證保持檢查,以避免它們之間的饋通。
圖5(a)放置Meta和Sync觸發器,使T DELAY 相距很遠,從而導致(b)Sync觸發器處的亞穩態傳播。
要仔細實施這些限制而不必檢查每個同步器,請使用已經放置好位置的硬單元替換這些結構。同樣,較小的τ值可提供更好的亞穩分辨率。這些硬塊中的觸發器被LVT單元所取代,后者具有更好的能力在最短的時間內解決亞穩態。您應該在寄存器傳輸級別(RTL)中使用標準的分層塊。源觸發器與元觸發器之間的時序到目前為止,我們已經討論了源數據輸入(DIN)處的時序要求(三個邊緣數據要求)以及元觸發器與同步觸發器之間的時序約束。但是,在源觸發器和目標觸發器之間是否存在約束。如果源觸發器和目標觸發器分開放置,會發生什么情況?
如果單個數據位由兩個Dff同步,則源和目標之間的傳播時間會增加,并且在兩個或三個周期后將捕獲目標處的采樣數據。取決于設計,這可能會或可能不會對功能產生影響。在總線同步和重新收斂路徑的情況下,很大程度上觀察到了它的影響。如圖6a所示,灰色總線的源觸發器放置不均勻。這導致每個源觸發器到其各自的元觸發器的傳播延遲不同。因此,數據到達元觸發器(MetaD)輸入所花費的時間是不同的(圖6b)。同步的數據不正確,可能會導致設計中的功能錯誤。因此,除了約束從元觸發器到源觸發器的路徑之外,還必須約束從源觸發器到元觸發器的定時路徑。(Din到MetaD)。但是,這種約束的定量價值是多少?通常,從源到元觸發器的路徑受sdc命令– set_max_delay或set_multicycle_path約束。set_max_delay-從[Din] –到[MetaD] 1 * RX_Clk_period
圖6(a)在這種設計中,總線中的源觸發器與元觸發器的距離不同。由于源觸發器與元觸發器之間的傳播延遲不同,這導致(b)在目標處采樣的值不正確。
從Din到MetaD的所有路徑都將具有相同的偏斜,從而導致正確的數據傳播。我們將路徑限制為一個RX_clk_period的延遲。理想情況下,最好選擇兩個時鐘周期中較小者的最大延遲,但是對于非關鍵數據,我們可以放寬路徑。同步功能相關的信號假設我們要同步一組具有功能相關性的信號,并且該相關性需要保持在同步時鐘域,那么使用兩觸發器同步器被證明是錯誤的(圖8)。
圖8 Din0和Din1之間的關系在目標域中不同。
對于具有功能依賴性的此類多位信號,例如-狀態機,計數器,相移總線信號,不建議使用2 Dff。為了同步多位總線,我們可以使用下面將要討論的基于使能的同步器。但是,如果這些信號在同步端具有松弛以失去其依賴性,即它們是不相關的,則可以使用2個Dff結構進行同步。然而,為了正確采樣,這些信號必須滿足目標時鐘周期的1.5倍的約束。同步多位數據工程師經常使用基于使能的同步器(圖9)來同步多位總線,其中它們之間存在功能依賴性。同步使能信號(RX_enable)使總線同步。
圖9基于啟用的同步器:一種用于多位總線信號的同步技術。
使用這些結構會增加嚴格的時序要求。當RX_enable到達目標域時,TX_data必須穩定,以確保成功進行數據傳播。違反時序可能會導致RX_data觸發器出現亞穩態。在這種情況下,我們需要限制從TX_data到RX_data的異步路徑,以防止這些觸發器在芯片中分開放置。如果不受限制,盡管RTL設計人員必須在假設理想延遲的情況下確保了功能時序要求,但綜合工具可能會出現錯誤行為,并將其視為“無關緊要”或“錯誤”的路徑。我們可以使用以下sdc命令:
set_max_delay-從[TX_data] –到[RX_data](2 + 1)RX_clk_period
在此,使用的延遲為(2 + 1)×Rx_clk_period。RX_enable信號為兩個周期,src(TX_enable)與使能同步器的MetaD之間的延遲為一個周期。是什么殺死了同步器?組合邏輯容易出現故障。因此,如果組合錐中的信號可以同時切換,則在同步器的路徑中使用組合邏輯會受到限制,因為毛刺會傳播到目標域,從而導致功能錯誤。通常,啟用信號(圖10a中所示的信號A
)在同步器之前通過與門與異步源信號(TX_data)進行門控。但是,考慮到使能信號的行為,應謹慎使用此類結構。當源數據切換時,它應該是穩定的,以防止任何毛刺傳輸。但是建議避免在同步器之前使用組合邏輯,因為我們永遠不知道在數據路徑上會引入多少延遲合成,從而導致違反我們的使能信號時序假設。讓我們看一個示例,組合邏輯如何導致錯誤的值傳輸。
圖10(a)異步路徑處的組合邏輯。(b)組合邏輯分解為不同的路徑,從而在異步路徑上造成故障。
在圖10b中,組合邏輯可以將數據路徑拆分為單獨的路徑。綜合不能保證兩條路徑之間具有相等的數據平衡。兩個信號的不同到達時間可能導致毛刺傳播,甚至導致同步觸發器變為亞穩態。防止這種結構發生毛刺傳播的唯一方法是在合成過程中保留“與”門。對于整個SOC而言,這通常是一項艱巨的任務。這就是為什么我們不使用組合門來防止這種情況的原因。CDC中的形式驗證方面
隨著設計復雜性CDC的增加,遇到CDC問題的可能性也隨之增加。驗證已成為CDC分析的重要方面,最廣泛使用的驗證技術是基于斷言的驗證。一些工程師在仿真環境中使用這些斷言,而另一些工程師在形式驗證中使用它們。形式驗證方法更全面地描述了我們的CDC結構成功率,因為它涵蓋了模擬可能會在其測試模式中遺漏的所有其他情況。我們使用這些斷言來驗證CDC結構是否適合其各自的場景。例如:
2 Dff結構要求在目標時鐘周期的1.5倍周期內保持穩定的源數據,從而在接收時鐘域進行正確的采樣。
在基于啟用的同步器中,當rx_enable置為有效時,源數據不應更改。
在重新收斂Tx信號的情況下,可能存在三種情況:
信號可以用灰色編碼。在這種情況下,assertion屬性應僅檢查前一個值(Gray屬性)中的一位。
信號可能很熱。在這種情況下,屬性應確保在給定的時間,總線中只有一位為高,即,一次總線中只有一個網在傳輸數據。在此處執行1.5倍周期的2 Dff穩定性檢查。我們需要確保在目標域對信號進行了正確的采樣。
信號是無關的,即,即使源信號同時切換,也不會在目標域產生任何功能上的影響。在這種情況下,不需要斷言來檢查總線相關性。但是,必須對總線的各個信號進行2 Dff的穩定性檢查。
我們將上述方法基于形式斷言。一個正式的驗證引擎將被喚起,它將測試所有可能的情況以找出可能的失敗情況。因此,對于復雜的設計,可能有必要通過提供假設來解釋對工具的信號的功能行為,從而限制主要輸入。但是過度約束設計可能會導致出現虛假情況。例如,如果將2 Dff的源輸入約束為穩定,則斷言之前的情況可能永遠不會發生。因此,應非常小心地應用設計約束。CDC同步器中的強制策略
與CDC驗證策略有關的另一個驗證方面是在IP驗證套件中對CDC結構進行建模。在仿真中,該工具不考慮設置或保持違規,除非在門級仿真(GLS)的情況下。一切都是功能驗證的理想選擇。工程師提出了一種新穎的方法來仿真仿真中的同步器行為,該方法可在源觸發器發生任何變化時,在元觸發器中隨機插入0或1個周期的延遲,以模仿亞穩性情況。
該延遲模擬了觸發器已進入亞穩態的狀態(延遲1個周期)或未達到亞穩態(延遲0個周期),這是觸發器的物理設計的特征。此邏輯已合并到標準CDC設計結構本身中,RTL設計人員可以使用這些標準結構在其設計中放置同步器。這種方法的使用使IP設計人員確信,即使引入了亞穩定性,也不會妨礙設計的功能。
作為門級仿真(GLS)的常規做法,我們將觸發器的建立和保持時間設置為零。在建立/保持時間違反的情況下,我們將關閉計時檢查以防止x從元觸發器上傳播。因此,在異步邊界處,GLS仿真可以復制功能驗證。但是為了詳盡地驗證時序,我們可以通過定義相對于時鐘周期的合適的建立和保持窗口,來修改上述模型,以檢查在元觸發器上是否發生建立和保持違規。如果數據在設置窗口或保持窗口內切換,我們可以在元觸發器上引入0或1個周期的隨機延遲。
Cherry Maskara是NXP Semiconductors的IP設計工程師
編輯:hfy
-
asic
+關注
關注
34文章
1199瀏覽量
120436 -
觸發器
+關注
關注
14文章
2000瀏覽量
61132 -
同步器
+關注
關注
1文章
98瀏覽量
14629
發布評論請先 登錄
相關推薦
評論