跨時(shí)鐘域?qū)е碌臄?shù)據(jù)丟失問(wèn)題
掃描二維碼
隨時(shí)隨地手機(jī)看文章
由于亞穩(wěn)態(tài)的存在,數(shù)據(jù)可能不會(huì)在目標(biāo)時(shí)鐘的第一個(gè)周期中被目標(biāo)時(shí)鐘域捕獲。為了確保數(shù)據(jù)不會(huì)丟失,源時(shí)鐘域數(shù)據(jù)應(yīng)在最短的時(shí)間內(nèi)保持穩(wěn)定,以便滿足目標(biāo)時(shí)鐘域的至少一個(gè)有效時(shí)鐘邊沿的setup和hold時(shí)間要求。

如果C1和C2的有效時(shí)鐘邊沿比較近,則C2的第一個(gè)時(shí)鐘邊沿,無(wú)法采樣到A的變化。數(shù)據(jù)最終被時(shí)鐘C2的第二個(gè)邊沿捕獲。
然而,如果數(shù)據(jù)A的轉(zhuǎn)換和時(shí)鐘C2的有效邊沿之間有足夠的時(shí)間,數(shù)據(jù)將在C2的第一個(gè)周期中被捕獲。
?

假設(shè)源時(shí)鐘C1的速度是目標(biāo)時(shí)鐘C2的兩倍,并且兩個(gè)時(shí)鐘之間沒(méi)有相位差。進(jìn)一步假設(shè)在時(shí)鐘C1的上升沿上生成的輸入數(shù)據(jù)序列“A”是“00110011”。在時(shí)鐘C2的上升邊沿上捕獲的數(shù)據(jù)B將是“0101”。在這里,由于信號(hào)A上的所有轉(zhuǎn)換都被B捕獲,因此信息其實(shí)沒(méi)有丟失。
?
然而,如果輸入序列為“00101111”,那么目標(biāo)時(shí)鐘域中的輸出將是“0011”。在這里,輸入序列中的第三個(gè)數(shù)據(jù)值“1”丟失。

?
解決方案。為了防止數(shù)據(jù)丟失,數(shù)據(jù)應(yīng)在源時(shí)鐘域中保持恒定足夠長(zhǎng)的時(shí)間,以便在目標(biāo)時(shí)鐘域中正確捕獲。換句話說(shuō),在每次源時(shí)鐘域數(shù)據(jù)翻轉(zhuǎn)后,至少一個(gè)目標(biāo)時(shí)鐘邊沿應(yīng)該到達(dá),而且建立或保持時(shí)序違例,以便源數(shù)據(jù)在目標(biāo)時(shí)鐘域中正確捕獲。





