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

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

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

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





