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