1. 基本概念
- 什么是亞穩(wěn)態(tài)
亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內(nèi)達到一個可確認的狀態(tài)。當一個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩(wěn)定在某個正確的電平上。在這個穩(wěn)定期間,觸發(fā)器輸出一些中間級電平,或者可能處于振蕩狀態(tài),并且這種無用的輸出電平可以沿信號通道上的各個觸發(fā)器級聯(lián)式傳播下去 .
例如:從A時鐘域出來的信號A直接進入B時鐘域,從圖可以看出,如果A信號在B時鐘的上升沿發(fā)生變化,便會出現(xiàn)不定態(tài).

對任何一種觸發(fā)器,在時鐘觸發(fā)沿前后的一個小時間窗口內(nèi),輸入信號必須穩(wěn)定。這一時間窗口是多種因素的函數(shù),包括觸發(fā)器設計、實現(xiàn)技術、運行環(huán)境以及無緩沖輸出上的負載等。輸入信號陡峭的邊沿可以將此窗口減至最小。隨著時鐘頻率的升高,會出現(xiàn)更多有問題的時間窗口,而隨著數(shù)據(jù)頻率的提升,這種窗口的命中概率則會增加.
理解:就是跨時鐘的A信號在B時鐘沿前后的時間窗口保持穩(wěn)定,A信號邊沿越陡峭,變化的時間越快,時間窗口越小.
- 什么是多比特信號中間態(tài)
多比特信號聯(lián)合組成某個含義(如地址信號)的穿越,如果簡單的按照單比特信號穿越方法各bit打兩拍單獨穿越,則會造成各個bit穿越時間不一致,則會造成另一個時鐘域里面有一些被前一個時鐘沿采到了,有些被后面的采到了,造成中間態(tài)無意義的數(shù)據(jù).

理解:主要是寄存器對于每個信號的延遲時間不一樣,導致目的時鐘域采到的值錯誤,造成中間態(tài)的存在.
2.跨時鐘域處理方法
時鐘域的一般方法:單比特信號打兩拍,多比特信號采用FIFO,對于FIFO處理多比特信號較為復雜,不予說明.
- 單比特信號跨時鐘域
考慮頻率關系,信號是電平還是脈沖
從慢時鐘域到快時鐘域:
應對策略;本身可以保證信號被采樣,當信號為脈沖信號時,需要在目的時鐘域進行脈沖恢復,保證信號(電平 or 脈沖)都可以被采到.
從快時鐘域到慢時鐘域:
應對策略:電平信號要保證電平寬度大于(不等于)慢時鐘域的寬度,如果是脈沖信號,需要轉換為電平信號,而且裝換后的電平信號寬度大于等于慢時鐘域周期,并且在目的時鐘域沿恢復為脈沖信號.
當頻率關系不確定的時候:
應對策略:將信號展寬處理,如果是脈沖信號,需要在目的時鐘域進行脈沖的恢復,因此涉及問題:展多寬.
舉個例子說明一下,如果信號要從A側傳遞到B側時鐘域去,那么展寬要考慮在A側/B側時鐘頻率最多的情況下,所展的寬度要大于B側的時鐘周期.
注意:當單bit組合邏輯跨時鐘域的時候,組合邏輯容易產(chǎn)生毛刺,由于目的時鐘域采樣時刻的不確定性,有可能采樣到此毛刺,導致后續(xù)功能錯誤,要避免組合邏輯跨時鐘域.
3.具體的設計思路
源時鐘域的信號要發(fā)送到目的時鐘域,信號要經(jīng)過目的時鐘域同步電路進行同步,才能進入目的時鐘域.
同步電路一般為2到多級D觸發(fā)器,避免亞穩(wěn)態(tài)的產(chǎn)生.這樣可以防止亞穩(wěn)態(tài)的傳播,但不能保證采數(shù)據(jù)的正確性.
同步的位數(shù)較少,2級及多級觸發(fā)器可以將亞穩(wěn)態(tài)幾率降到最低,但也會造成延時.

4. 電平的同步電路設計
電平信號的同步電路設計,在電平同步電路中,跨時鐘域的信號在新時鐘域要保持高或低電平兩個周期以上.這種電路的要求是,在成為有效信號前,信號需要先變成無效狀態(tài)(源時鐘域要清源信號),每一次信號有效時,接收邏輯都會把它看做一個單個事件,而不管信號的有效狀態(tài)保持了多久.
電平的同步電路根據(jù)輸出信號特點,又可以分為三種同步電路,即輸出電平的電平同步電路,輸出上升沿脈沖的電平同步電路,輸出下降沿脈沖的電平同步電路。
- 輸出電平的電平同步電路
工作原理:被同步的信號被同步電路用目的時鐘打兩拍(特別要求可以打三拍),達到同步與消除亞穩(wěn)態(tài)的功能.
第二拍的寄存器輸出,即后續(xù)電路所要用到的信號.
電路結構及時序:

- 輸出上升沿脈沖的電平同步電路(慢到快)
工作原理:信號被同步電路用目的時鐘打三拍,達到同步與消除亞穩(wěn)態(tài)的功能,并有第二拍的寄存器輸出 與上 第三拍寄存器輸出的取反,來取第二拍寄存器輸出的上升沿脈沖,這個單脈沖信號就是后續(xù)電路所要用到的信號.
電路結構及時序:

- 輸出下降沿脈沖的電平同步電路(慢到快)
工作原理:信號被同步電路用目的時鐘打三拍,達到同步與消除亞穩(wěn)態(tài)的功能,并有第二拍的寄存器輸出的取反 與上 第三拍寄存器輸出,來取第二拍寄存器輸出的下降沿脈沖,這個單脈沖信號就是后續(xù)電路所要用到的信號.
電路結構及時序:

5.脈沖的同步電路設計
在處理脈沖的慢到快的同步電路中,包括慢到快的同步電路,快到慢的同步電路,以及通用的同步電路,主要介紹慢到快的同步電路.
- 輸出脈沖的慢到快的同步電路.
a.注意:被同步的信號,必須是源時鐘域的寄存器輸出信號,即該信號時被寄存過得,如果輸入信號是組合邏輯輸出,必須先被源時鐘打一拍,然后把被打一拍的寄存器輸出拿去給目的時鐘同步,否則可能會產(chǎn)生毛刺,從而被目的時鐘采樣,產(chǎn)生電路功能的混亂不可控.
b.被同步的信號用目的時鐘打三拍,
達到同步與消除亞穩(wěn)態(tài)的功能,第三拍的寄存器輸出,即后續(xù)電路所要用到的信號.
電路結構及時序:

- 輸出上升沿脈沖的慢到快同步電路
工作原理:信號被同步電路用目的時鐘打三拍,達到同步與消除亞穩(wěn)態(tài)的功能,并有第二拍的寄存器輸出 與上 第三拍寄存器輸出的取反,來取第二拍寄存器輸出的上升沿脈沖,這個單脈沖信號就是后續(xù)電路所要用到的信號.
電路結構及時序:

- 輸出下降沿脈沖的慢到快同步電路
工作原理:信號被同步電路用目的時鐘打三拍,達到同步與消除亞穩(wěn)態(tài)的功能,并有第二拍的寄存器輸出的取反 與上 第三拍寄存器輸出,來取第二拍寄存器輸出的下降沿脈沖,這個單脈沖信號就是后續(xù)電路所要用到的信號.
電路結構及時序:

這些與電平同步電路由慢到快電路結構都差不多,但需要注意電平與脈沖的區(qū)別.
6.時鐘關系不定的通用同步電路設計
在該同步電路設計中,根據(jù)輸出信號要求有三種同步電路。即輸出上升沿脈沖的通用同步電路,輸出下降沿脈沖的通用同步電路,輸出電平信號的通用同步電路,該電路主要用于時鐘快到慢的同步電路,時鐘由慢到快也可以采用,但上面介紹的幾種同步電路結構更為適合.
注意:該類的同步電路輸入都不必是寄存過的信號,因擴展時會寄存,擴展是為了防止采樣不到.
該通用電路的工作原理:
- 被同步的信號先被源時鐘打一拍擴展為電平,因為如果源時鐘是快時鐘的話,那被同步的信號因為太窄,所以目的時鐘可能采樣不到這個信號.這個擴展信號寄存器的置位與清0信號的優(yōu)先級別:清0信號高于置位信號.
- clr有效前如果來了多個set,不會對電路功能產(chǎn)生影響,因為后續(xù)的set被采樣,但被淹沒在擴展信號里,擴展信號拉高后,需等到clr到來后才會被拉低.
- 假設set優(yōu)先于clr,clr與set同時到來,set起作用,會把擴展信號維持在高電平,clr無法拉低高電平,這個clr不起作用,后面的set也無法拉低高電平,從而沒有上升沿脈沖被目的時鐘采樣到,電路功能出錯.
- 假設clr優(yōu)先于set,clr與set同時到來,clr先驅動把信號拉低,后續(xù)來的set,可以再把信號拉高,從而上升沿脈沖可以被目的時鐘采樣到,電路可以同步后續(xù)的信號.
- 被擴展的信號用目的時鐘打三拍,達到同步與消除亞穩(wěn)態(tài)的功能,并有第二拍的寄存器輸出與上第三拍寄存器輸出的反,來取第二拍寄存器輸出的上升沿單脈沖,這個單脈沖就是后續(xù)電路所要用到的信號.
- 被擴展的信號被同步后,再下一次被同步前需先被拉低清零,而清零信號必須是源時鐘域的信號,而被擴展的信號被同步的事件發(fā)生在目的時鐘域,所以,這里選擇把第二拍的寄存器輸出反饋回源時鐘域,這里涉及到異步時鐘域處理,和前面類似打兩拍,不同在于打的時鐘是源時鐘,輸出電平expr_clr,這個電平信號就是被擴展的信號的清0信號.
電路結構及時序:


至于取上升沿和下降沿通用同步電路,就是第二拍寄存器輸出和第三拍寄存器輸出之間互相與的關系,電路結構和時序圖不在給出.
7.多比特信號跨時鐘域
1一般采用握手和FIFO的形式進行跨時鐘域.