同步電路
即電路中的所有受時鐘控制的單元,全部由一個統(tǒng)一的全局時鐘控制:
- 觸發(fā)器(Flip Flop)
- 寄存器(Register)
同步電路優(yōu)點:
- 在同步設(shè)計中,EDA工具可以保證電路系統(tǒng)的時序收斂,有效避免了電路設(shè)計中競爭冒險現(xiàn)象。
- 由于觸發(fā)器只有在時鐘邊緣才改變?nèi)≈?,很大限度地減少了整個電路受毛刺和噪聲影響的可能。
缺點:
電路里面所有的觸發(fā)器都由同一個時鐘驅(qū)動,所以必須構(gòu)建時鐘樹、時鐘網(wǎng)絡,因此時鐘到達哥哥觸發(fā)器的時間不一樣,則會引入時鐘偏斜和時鐘抖動問題:
- 時鐘偏斜( Clock Skew )
- 時鐘抖動(Clock Jitter )
- 時鐘樹綜合,需要加入大量的延遲單元,使得電路的面積和功耗大大增加
全局異步電路
全局異步設(shè)計跟同步設(shè)計最大的不同就是它的電路中的數(shù)據(jù)傳輸可以在任何時候發(fā)生,電路中沒有一個全局的或局部的控制時鐘。
異步電路優(yōu)點:
異步電路缺點:
同步異步時鐘,指時鐘源是不是同一個,假設(shè)是同一個PLL出來的,就能看成是同步時鐘,不同PLL下即使是同頻也是異步時鐘
在一個性想的全局時鐘控制下,只要電路的各個功能壞節(jié)都買現(xiàn)了時序收斂,整個電路就可以可靠工作了。由于 EDA 工具的廣泛支持,采用同步電路設(shè)計的方法是目前ASIC 和 SoC 設(shè)計的基本要求。但是常大規(guī)模 ASIC 和 SoC 芯片中都采用了全局異步、局部同步的方法。因此,在設(shè)計中必須要注意 異步信號與同步電路的交互問題 。
在不同時鐘域間,如何安全傳遞信號
跨時鐘域電路主要分為以下幾種:
亞穩(wěn)態(tài)相關(guān)概念和原理
- 亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內(nèi)達到一個可確認的狀態(tài)。
- 亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內(nèi)達到一個可確認的狀態(tài)。當一個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩(wěn)定在某個正確的電平上。
- 在這個期間,觸發(fā)器輸出一些中間級電平,或者可能處于振蕩狀態(tài),并且這種無用的輸出電平可以沿信號通道上的各個觸發(fā)器級聯(lián)式傳播下去。
- 亞穩(wěn)態(tài)不能從根本上消除,但可以通過采取一定的措施使其對電路造成的影響降低。
亞穩(wěn)態(tài)影響衡量指標MTBF(Mean Time Between Failure),MTBF越大,亞穩(wěn)態(tài)影響越?。?/p>
雙鎖存器電平同步器
雖然說的是鎖存器,但實際上是兩個觸發(fā)器:
- 一個信號在過渡到另一個時鐘域時,如果僅僅用一個觸發(fā)器將其鎖存,那么用b_clk進行采樣的結(jié)果將可能是亞穩(wěn)態(tài)。這也是信號在跨時鐘域時應該注意的問題。
為了避免上節(jié)所述的亞穩(wěn)態(tài)問題,就應當使參數(shù) MTBF 盡可能的大,通常采用的方法是雙鎖存器法,即在一個信號進入另一個時鐘域之前,將該信號用兩個鎖存器連續(xù)鎖存兩次,最后得到的采樣結(jié)果就可以消除亞穩(wěn)態(tài)問題。
雙鎖存器法,優(yōu)點:
- 結(jié)構(gòu)簡單、易實現(xiàn),面積消耗很小。
缺點:
- 增加了兩級觸發(fā)器延時;
- 高性能計算中,兩個時鐘周期消耗對系統(tǒng)性能有消極的影響。
- 當快時鐘域轉(zhuǎn)到慢時鐘域時,易造成慢時鐘采樣丟失(還未來得及采樣,數(shù)據(jù)就變化了)。
使用條件:
- 常用于慢時鐘域轉(zhuǎn)到快時鐘域
- {(Clk_slow的周期)} > {(Clk_fast的周期) + (路徑延時)} ,確保信號可以被Clk_fast采樣到(假設(shè)Clk_fast和Clk_slow起始時刻相同求得)
- {(data數(shù)據(jù)變化間隔)}>{(Clk_slow的周期)+2*(CIk_fast的周期) +(路徑延時)},確保所有的數(shù)據(jù)變化均能采集到。
結(jié)論:
- 對于典型的0.25gm 工藝 ASIC 庫中的一個觸發(fā)器,則 MTBF=2.01(day ) ,即觸發(fā)器每兩天便可能出現(xiàn)一次亞穩(wěn)態(tài)。如果將采樣時間和異步事件觸發(fā)頻率都提高,亞穩(wěn)態(tài)出現(xiàn)還要頻繁。
- 對于同樣的參數(shù),雙鎖存器法可將MTBF提升為9.57* 年,這個數(shù)值足夠保證電子系統(tǒng)穩(wěn)定地運行。
- 兩級觸發(fā)器已經(jīng)將MTBF變得足夠大
- 三級或者更多級雖然能將亞穩(wěn)態(tài)出現(xiàn)概率 降得更低 ,但是影響電路效率
增加寄存器進行同步的方法,只是不斷降低亞穩(wěn)態(tài)出現(xiàn)概率
單bit信號跨時鐘域如何傳輸
慢時鐘到快時鐘的信號傳輸
采用邊沿檢測同步器電路。這種方法通常應用在慢速向快速時鐘傳遞過程中,可以檢測輸入信號的上升沿,也可以檢測它的下降沿。輸出的的與門間相差一個快時鐘的延遲:
其時序圖為:
適用條件:
- 輸入數(shù)據(jù)的寬度必須比—個接受時鐘周期加上一個同步觸發(fā)器的hold時間要長,最安全的就是兩個同步周期寬度。
- 保證: 慢時鐘域的脈沖足夠保持到被快時鐘的同步器拿到
快時鐘到慢時鐘的信號傳輸
對于快時鐘域到慢時鐘域,通常采用脈沖同步器進行同步。這個電路結(jié)構(gòu)中,最左邊是快時鐘域下的一個翻轉(zhuǎn)電路。中間是慢時鐘域的兩級同步器,最后是慢時鐘域一級觸發(fā)器+一個邏輯門。
基本功能是從快時鐘域取出一個單時鐘寬度脈沖,然后在慢時鐘域中建立另一個單時鐘寬度的脈沖。對電路結(jié)構(gòu)的功能分析:
限制如下:
- 輸入脈沖之間的最小間隔必須等于兩個同步器時鐘周期。
- 如果輸入脈沖相互過近,則新時鐘域中的輸出脈沖也緊密相鄰,結(jié)果是輸出脈沖寬度比一個時鐘周期寬。
- 當輸入脈沖時鐘周期大于兩個同步器時鐘周期時,這個問題更加嚴重。
- 這種情況下,如果輸入脈沖相鄰太近,則同步器就不能檢測到每個脈沖。
對單bit同步器總結(jié):
三種同步器總結(jié)
- 電平同步器,輸入信號必須保持兩個接受時鐘周期寬度,每一次同步之后,輸入信號必須恢復到無效狀態(tài)。
- 邊沿檢測同步器,適用于低頻時鐘域向高頻時鐘域傳輸,輸入信號必須保持兩個接受時鐘周期寬度。
- 脈沖檢測同步器,適用于高頻時鐘域向低頻時鐘域傳輸,輸入的脈沖時間的距離必須保持兩個接收時鐘周 期以上。
采用結(jié)繩法 進行單bit信號傳輸
- 信號從快時鐘域到慢時鐘域過渡時 ,慢時鐘將可能無法對變化太快的信號實現(xiàn)正確采樣;
- 上述同步器法對兩個時鐘之間的關(guān)系要求很嚴格,而“結(jié)繩法”適合任何時鐘域的過渡。
“結(jié)繩法1”
原理:
- 將快時鐘信號的脈沖周期延長,等到慢時鐘同步采樣后再“解繩”,還原為原來的脈沖周期寬度。
- 利用數(shù)據(jù)的邊沿作時鐘(圖中上升沿)。(可以將脈沖無限延長,直到可以采集到數(shù)據(jù),然后復位,要考慮產(chǎn)生數(shù)據(jù)的頻率)。
- 這種結(jié)繩法的原理是,數(shù)據(jù)作為Din_clkA ,即當數(shù)據(jù)有上升沿(0->1)時,寄存器1的輸出將會穩(wěn)定在高電平,此時等待CIkB采樣;當CIkB完成采樣后,寄存器4會輸出高電平,若此時Din_clkA為低電平,那么即可完成復位,開始下一次采樣等待。
- 這里需要注意的是當數(shù)據(jù)來臨(上升沿)時,ClkB域需要等待3個ClkB才會在寄存器4輸出并完成輸入端的復位,所以Din_CIkA如果變化較快,即持續(xù)時間短于3個CIkB,也就是Din_ClkA頻率大于CIkB的1/3,那么這時Din_ClkA的變化將無法被采樣到,因為CIkB域需要3個CIkB才能完成采樣,并且此時Din_CIkA必須是低電平才能復位,采用異步復位。
- 在慢時鐘采樣快時鐘的時候,結(jié)繩法適合采樣數(shù)據(jù)較少(即脈沖間隔較大的控制信號。即脈沖間隔Ta>3Tb;即等待3個clkB時鐘后,完成復位,才允許下一個輸入脈沖。
結(jié)繩法2:
- 利用數(shù)據(jù)作為異步復位,置位信號:
結(jié)繩法3:
- 利用握手協(xié)議:
電路功能為:
結(jié)繩法總結(jié)
- 結(jié)繩就是將單脈沖延長,以方便采集到數(shù)據(jù)。
結(jié)繩的方法歸結(jié)為2類:
- 利用脈沖的邊沿做時鐘;
- 利用脈沖的電平(部分場合要求最小脈沖寬度)做選擇器或者異步復位,置位。
- 另外的關(guān)鍵點就是什么時候結(jié)繩結(jié)束(采集到了數(shù)據(jù)就要讓對方回到初始狀態(tài))
這里的操作也有2種方法:
- 利用采集到的脈沖做異步復位,置位。
- 利用采集到的脈沖再次結(jié)繩采集做握手響應信號。
總結(jié):
- 結(jié)繩法可以解決快時鐘域向慢時鐘域過渡的問題,且其適用的范圍很廣。
- 結(jié)繩法實現(xiàn)較為復雜,特別是其效率不高,在對設(shè)計性能要求較高的場合應該慎用。
傳輸兩個同時需要的信號(b_load 和b_en)
多個控制信號跨時鐘域僅僅通過簡單的同步器同步有可能是不安全的
當兩個信號中出現(xiàn)一點skew時,跨時鐘域不一定能夠正確在同一個時刻被采樣到:
b_load和b_en同步至a_clk時鐘域,如果這兩個信號有一個小的ske導致在a_clk時鐘域中兩個信號并不是在同一時刻起作用,與在b_clk中的邏輯關(guān)系不同。
解決方法(合并信號)
將b_load和b_en信號在b_clk時鐘域中合并成一個信號b_lden,然后同步至a_clk中。
對不能合并的情況
如果遇到不能合并的情況,如譯碼信號。如果Bdec[0]、bdec[1]間存在skew將導致同步至a_clk中后譯碼錯誤,出現(xiàn)誤碼。
在這種情況下,建議加入另一個控制信號,確保bdec[0]、bec[1]穩(wěn)定時采。例如在bdec[0]、bec[1]穩(wěn)定輸出后一到兩個周期b_clk域輸出一個en信號,通知a_clk域此時可以采bdec[O]、bec[1]信號。這樣可確保正確采樣。
小結(jié)
采樣中“快到慢”與“慢到快”在考慮問題時有什么區(qū)別?
慢到快:
- 只需要考慮亞穩(wěn)態(tài)問題
快到慢:
- 亞穩(wěn)態(tài)問題
- 考慮慢時鐘的采樣速率問題。因為根據(jù)采樣定理,采樣頻率低于信號最高頻率2倍的時候,是無法完整采樣的。
-
電磁兼容
+關(guān)注
關(guān)注
54文章
1944瀏覽量
98538 -
寄存器
+關(guān)注
關(guān)注
31文章
5402瀏覽量
122876 -
EDA工具
+關(guān)注
關(guān)注
4文章
269瀏覽量
32468 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2029瀏覽量
61774 -
同步電路
+關(guān)注
關(guān)注
1文章
60瀏覽量
13460
發(fā)布評論請先 登錄
跨時鐘域控制信號傳輸設(shè)計方案


如何解決單bit和多bit跨時鐘處理問題?
單位寬信號如何跨時鐘域
從處理單bit跨時鐘域信號同步問題來入手

評論