數字電路設計中遇到跨時鐘域(Clock Domain Crossing, CDC)的電路時一般都需要特別的處理,例如同步器,異步FIFO等。那么為什么CDC需要特別的處理,如果不做處理又會導致什么問題。
亞穩(wěn)態(tài)
我們都知道數字電路中有兩個最重要的概念,建立時間和保持時間。通過滿足建立時間和保持時間,我們可以確保信號被正確的采樣,即1采到便是1,0采到便是0。但是如果不滿足建立時間和保持時間,采到的信號會進入一個不穩(wěn)定的狀態(tài),無法確定是1還是0,我們稱之為亞穩(wěn)態(tài)。這個亞穩(wěn)態(tài)的信號會在一段時間內處于震蕩狀態(tài),直到穩(wěn)定,而穩(wěn)定后的狀態(tài)值與被采樣值無關,可能是0也可能是1。
圖1【1】所示的是異步時鐘采樣失敗的情況。當數據(adat)的變化離采樣時鐘(bclk)的變化沿很近時,由于不滿足建立時間,導致采樣到的信號(bdat1)進入亞穩(wěn)態(tài)。
異步時鐘由于時鐘相位不同,圖1的情況往往難以避免,這也是跨時鐘域時容易發(fā)生亞穩(wěn)態(tài)的原因。
亞穩(wěn)態(tài)會導致什么問題
由于亞穩(wěn)態(tài)的信號會在一段時間內處于震蕩狀態(tài),后續(xù)不同的邏輯可能會將該信號識別為不同的狀態(tài)值,甚至是后續(xù)邏輯也出現亞穩(wěn)態(tài)的情況,導致邏輯的錯誤和混亂,比如狀態(tài)機出現錯誤的跳轉從而鎖死在某個狀態(tài)。
同步器
最常用的同步器是兩級觸發(fā)器,如圖2【1】:
第一級觸發(fā)器采樣后出現亞穩(wěn)態(tài),第二級觸發(fā)器在經過一個時鐘周期的等待之后采樣到一個穩(wěn)定狀態(tài)的信號,達到消除不定態(tài)的目的。不過要注意,這樣的同步器只是減小了亞穩(wěn)態(tài)發(fā)生的概率,并不能完全消除亞穩(wěn)態(tài)的發(fā)生。而亞穩(wěn)態(tài)發(fā)生的概率的大小一般可以用MTBF(Mean Time Between Faliure)來表示。MTBF的值越小表示亞穩(wěn)態(tài)發(fā)生的頻率越高。
圖3【2】表示了MTBF的影響因子,可以看到,當時鐘頻率越高,數據發(fā)生變化的頻率越高,MTBF越小,即亞穩(wěn)態(tài)發(fā)生的頻率也越高。
對于一些高頻電路設計,兩級觸發(fā)器所構成的同步器MTBF仍然很小,這時候可以考慮再添加一級觸發(fā)器,即使用三級觸發(fā)器。另外,我們也希望當數據被異步時鐘采樣時數據的變化頻率也盡可能小,因此一般數據在跨時鐘域之前最好可以用寄存器打一拍,減少數據的變化,從而減小亞穩(wěn)態(tài)發(fā)生的概率。
值得注意的是,同步器的使用只是消除了不定態(tài),但是同步器的輸出仍然可能是錯誤的,可能被采樣的信號是1,但是同步器輸出的確是0。這樣的錯誤是否是電路可以接受的要依據不同的設計來看,這便涉及到另外一個話題,如何使系統(tǒng)對產生的錯誤不敏感,本文暫不討論。
審核編輯:郭婷
-
fifo
+關注
關注
3文章
402瀏覽量
45281 -
觸發(fā)器
+關注
關注
14文章
2047瀏覽量
62784 -
同步器
+關注
關注
1文章
117瀏覽量
15420
原文標題:跨時鐘域處理-亞穩(wěn)態(tài)與同步器
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
FPGA中亞穩(wěn)態(tài)——讓你無處可逃
Virtex-5亞穩(wěn)態(tài)保護是什么
如何處理好FPGA設計中跨時鐘域問題?
在FPGA復位電路中產生亞穩(wěn)態(tài)的原因
IC設計中多時鐘域處理的常用方法相關資料推薦
關于FPGA設計的同步信號和亞穩(wěn)態(tài)的分析
如何解決異步FIFO跨時鐘域亞穩(wěn)態(tài)問題?
時序問題常見的跨時鐘域亞穩(wěn)態(tài)問題
數字電路設計中跨時鐘域處理的亞穩(wěn)態(tài)
如何處理跨時鐘域這些基礎問題

評論