跨時(shí)鐘域( Clock Domain Crossing,CDC )通俗地講,就是 模塊之間數(shù)據(jù)交互時(shí)用的不是同一個(gè)時(shí)鐘進(jìn)行驅(qū)動(dòng) ,如下圖所示:左邊的模塊FA由C1驅(qū)動(dòng),屬于C1時(shí)鐘域;右邊的模塊FB由C2驅(qū)動(dòng),屬于C2時(shí)鐘域。
跨時(shí)鐘域信號(hào)處理問題,首先要考慮的就是亞穩(wěn)態(tài)問題。
為了使觸發(fā)器正常工作,輸入信號(hào)和時(shí)鐘必須滿足觸發(fā)器的建立和保持時(shí)間要求。在上面的圖2中,信號(hào)A與目標(biāo)時(shí)鐘域C2是異步的,因?yàn)镃1和C2屬于不同時(shí)鐘域。一旦遇到異步信號(hào)進(jìn)入時(shí)鐘域,就不太可能滿足建立和保持時(shí)序約束,因此觸發(fā)器可能以進(jìn)入亞穩(wěn)態(tài)。在下圖中,F(xiàn)A的輸出信號(hào)A變化非常接近C2的時(shí)鐘邊緣,因此違反了FB的建立時(shí)間要求, 它可能導(dǎo)致目標(biāo)觸發(fā)器FB違反setup或hold時(shí)間。輸出信號(hào)B可能會(huì)振蕩不確定時(shí)長。因此輸出是不穩(wěn)定的,也可能會(huì)在C2的下一個(gè)時(shí)鐘邊緣到達(dá)之前穩(wěn)定到某個(gè)值,這種現(xiàn)象被稱為亞穩(wěn)態(tài)。
如果輸入信號(hào)A變化非常接近時(shí)鐘C2的上升沿,那么目標(biāo)觸發(fā)器的輸出是亞穩(wěn)態(tài)的。因此,可能最終穩(wěn)定到信號(hào)B1和B2所描述的1或0。
處理跨時(shí)鐘域**(CDC)信號(hào)同步**的最常見方法之一是使用同步器電路。同步器電路的目的是通過最小化亞穩(wěn)態(tài)的可能性和增加MTBF來保護(hù)下游邏輯。其中一個(gè)基本的同步器電路是 兩級(jí)觸發(fā)器同步器 (也稱為2-FF同步器)。
2-** FF同步器處理跨時(shí)鐘域信號(hào)同步**
兩級(jí)觸發(fā)器同步器是一種電路,其中兩個(gè)觸發(fā)器在目標(biāo)時(shí)鐘域中背靠背連接。如果第一個(gè)觸發(fā)器由于建立/保持沖突而進(jìn)入亞穩(wěn)態(tài),則第二個(gè)觸發(fā)器會(huì)提供足夠的時(shí)間讓第一個(gè)觸發(fā)器脫離亞穩(wěn)態(tài)。從理論上講,當(dāng)?shù)诙€(gè)FF對(duì)值進(jìn)行采樣時(shí),第一個(gè)FF可能仍處于亞穩(wěn)態(tài),因此可以對(duì)不正確的值進(jìn)行采樣,使用超過2級(jí)FF作為同步器(3或4級(jí)FF),可以增加MTBF。
2-FF同步器電路非常適合單比特控制信號(hào)的同步 ,其中輸入切換速率小于目標(biāo)時(shí)鐘頻率,換句話說,如果目標(biāo)時(shí)鐘頻率超過源時(shí)鐘頻率的1.5倍,則不會(huì)丟失數(shù)據(jù) 。但是,如果源和目標(biāo)時(shí)鐘頻率幾乎相同或目標(biāo)時(shí)鐘頻率較慢,則源必須保持其值穩(wěn)定,以便目標(biāo)捕獲它,然后再更改為下一個(gè)值。這可以通過 握手時(shí)鐘域交叉 (CDC)技術(shù)來處理。
握手機(jī)制處理跨時(shí)鐘域信號(hào)同步
在握手技術(shù)中,源時(shí)鐘域?qū)?*“請(qǐng)求”信號(hào)**發(fā)送到使用 2-FF同步器的目標(biāo)域。一旦目標(biāo)域收到請(qǐng)求,它就會(huì)向源域發(fā)送“ack”信號(hào),該源域使用 2-FF 同步器進(jìn)行同步。ack 信號(hào)向源時(shí)鐘域指示目標(biāo)已收到該值,源時(shí)鐘域可以更新其值。握手機(jī)制有許多實(shí)現(xiàn)版本,但原理保持不變: 同步request和ack信號(hào) 。request信號(hào)將在總線上指示一個(gè)新值即將發(fā)送,ack信號(hào)將指示可以更新數(shù)據(jù)總線。
上述機(jī)制在接口的帶寬使用方面確實(shí)有一個(gè)缺點(diǎn)。對(duì)于握手機(jī)制,數(shù)據(jù)總線在接收ack信號(hào)時(shí)無法更新,存在瓶頸,可以使用雙時(shí)鐘異步FIFO來解決這個(gè)問題。正確設(shè)計(jì)的FIFO可以增加整個(gè)接口的帶寬,同時(shí)仍然保持跨時(shí)鐘域的可靠通信。
異步FIFO可以被視為數(shù)據(jù)容器,其中發(fā)送方以源時(shí)鐘速率將數(shù)據(jù)寫入,接收器以目標(biāo)時(shí)鐘速率彈出數(shù)據(jù)。FIFO的深度應(yīng)該足夠,以便它不能溢出或下溢數(shù)據(jù)。
異步FIFO處理跨時(shí)鐘域信號(hào)同步
時(shí)鐘異步FIFO需要用到雙端口SRAM,一個(gè)控制寫入指針(數(shù)據(jù)應(yīng)在SRAM中寫入的地址)的源代碼控制塊,一個(gè)生成讀取指針(應(yīng)在SRAM中讀取數(shù)據(jù)的地址)的目標(biāo)控制塊和二進(jìn)制到格雷碼編碼器塊以及2-FF同步器電路。指針由各自的控制塊作為循環(huán)緩沖區(qū)進(jìn)行管理。但是,要知道何時(shí)寫入(FIFO 未滿)和何時(shí)讀?。‵IFO 不為空),源時(shí)鐘、目標(biāo)時(shí)鐘控制塊需要分別具有讀取和寫入指針信號(hào)。將指針傳輸?shù)搅硪粋€(gè)時(shí)鐘域并非易事。由于指針是多位信號(hào),因此直接使用2-FF同步器不是一個(gè)好的選擇。因此,兩個(gè)指針都通過二進(jìn)制到格雷碼編碼塊傳遞。這確保了在傳輸值時(shí),只有矢量的一個(gè)位從一個(gè)時(shí)鐘更新到另一個(gè)時(shí)鐘,從而消除了在時(shí)鐘邊沿上同步多位總線的問題。
-
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2029瀏覽量
61782 -
同步器
+關(guān)注
關(guān)注
1文章
104瀏覽量
15013 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
6130 -
時(shí)鐘驅(qū)動(dòng)器
+關(guān)注
關(guān)注
0文章
51瀏覽量
13999 -
SRAM存儲(chǔ)器
+關(guān)注
關(guān)注
0文章
88瀏覽量
13560
發(fā)布評(píng)論請(qǐng)先 登錄
關(guān)于跨時(shí)鐘域信號(hào)的處理方法
三種跨時(shí)鐘域處理的方法
跨時(shí)鐘域信號(hào)的幾種同步方法研究

CDC單bit脈沖跨時(shí)鐘域的處理介紹
CDC跨時(shí)鐘域處理及相應(yīng)的時(shí)序約束
從處理單bit跨時(shí)鐘域信號(hào)同步問題來入手

如何處理跨時(shí)鐘域這些基礎(chǔ)問題

評(píng)論