數(shù)字電路設計中遇到跨時鐘域(Clock Domain Crossing, CDC)的電路時一般都需要特別的處理,例如同步器,異步FIFO等。那么為什么CDC需要特別的處理,如果不做處理又會導致什么問題。
亞穩(wěn)態(tài)
我們都知道數(shù)字電路中有兩個最重要的概念,建立時間和保持時間。通過滿足建立時間和保持時間,我們可以確保信號被正確的采樣,即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】所示的是異步時鐘采樣失敗的情況。當數(shù)據(jù)(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ù)邏輯也出現(xiàn)亞穩(wěn)態(tài)的情況,導致邏輯的錯誤和混亂,比如狀態(tài)機出現(xiàn)錯誤的跳轉從而鎖死在某個狀態(tài)。
同步器
第一級觸發(fā)器采樣后出現(xiàn)亞穩(wěn)態(tài),第二級觸發(fā)器在經(jīng)過一個時鐘周期的等待之后采樣到一個穩(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ā)生的頻率越高。
表示了MTBF的影響因子,可以看到,當時鐘頻率越高,數(shù)據(jù)發(fā)生變化的頻率越高,MTBF越小,即亞穩(wěn)態(tài)發(fā)生的頻率也越高。
對于一些高頻電路設計,兩級觸發(fā)器所構成的同步器MTBF仍然很小,這時候可以考慮再添加一級觸發(fā)器,即使用三級觸發(fā)器。另外,我們也希望當數(shù)據(jù)被異步時鐘采樣時數(shù)據(jù)的變化頻率也盡可能小,因此一般數(shù)據(jù)在跨時鐘域之前最好可以用寄存器打一拍,減少數(shù)據(jù)的變化,從而減小亞穩(wěn)態(tài)發(fā)生的概率。
值得注意的是,同步器的使用只是消除了不定態(tài),但是同步器的輸出仍然可能是錯誤的,可能被采樣的信號是1,但是同步器輸出的確是0。這樣的錯誤是否是電路可以接受的要依據(jù)不同的設計來看,這便涉及到另外一個話題,如何使系統(tǒng)對產(chǎn)生的錯誤不敏感,本文暫不討論。
責任編輯:haq
-
電路
+關注
關注
172文章
5826瀏覽量
171775 -
時鐘
+關注
關注
10文章
1714瀏覽量
131274 -
同步器
+關注
關注
1文章
92瀏覽量
14597
原文標題:跨時鐘域處理-亞穩(wěn)態(tài)與同步器
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論