IC設(shè)計(jì)常見的異步電路處理故障
0.引言
大四保研到實(shí)驗(yàn)室正好碰到師兄師姐們找工作,聽到的一些面試常問的內(nèi)容就是“跨時(shí)鐘域”、”異步處理“、”異步FIFO“等。然而我看的一些經(jīng)典的書籍都是這樣說的”異步電路很難設(shè)計(jì),最好全部使用同步技術(shù)進(jìn)行設(shè)計(jì),所有寄存器器使用一個(gè)全局時(shí)鐘驅(qū)動(dòng)“??稍趯?shí)際項(xiàng)目中,我又發(fā)現(xiàn)現(xiàn)代芯片設(shè)計(jì)中很難只使用一個(gè)時(shí)鐘,時(shí)鐘分頻邏輯、時(shí)鐘選擇多路器,除了多時(shí)鐘,有時(shí)還必須在兩個(gè)不同的時(shí)鐘間傳遞數(shù)據(jù)。也就是異步電路處理問題(兩個(gè)沒有特定關(guān)系的時(shí)鐘傳遞數(shù)據(jù)被認(rèn)為是異步的)。”異步電路很復(fù)雜“會(huì)有很多設(shè)計(jì)的不確定性。
1.亞穩(wěn)態(tài)
時(shí)序邏輯中大量使用D觸發(fā)器,D觸發(fā)器的一般結(jié)構(gòu)是:兩個(gè)串聯(lián)的反相器加兩個(gè)傳輸門構(gòu)成鎖存器,兩個(gè)鎖存器串聯(lián)構(gòu)成D觸發(fā)器。D觸發(fā)器是一種雙穩(wěn)態(tài)電路,兩個(gè)穩(wěn)定狀態(tài)”1“、”0“。兩個(gè)反向器構(gòu)成的反饋回路可能會(huì)產(chǎn)生亞穩(wěn)態(tài)。
圖 1-1 兩個(gè)反向器反饋回路輸出特性
IC設(shè)計(jì)常見的異步電路處理故障
如圖1-1所示,當(dāng)電壓處于兩個(gè)曲線的交叉點(diǎn)時(shí),在沒有任意外部干擾的情況下,電路將保持此狀態(tài)不變,也就是進(jìn)入了亞穩(wěn)態(tài)。實(shí)際電路不可能完全沒有外部干擾,在外部干擾下,電路可能會(huì)重新趨于一個(gè)穩(wěn)定狀態(tài)。(ps:從特性曲線看,如果上升和下降斜率越大,電路能越快從亞穩(wěn)態(tài)電路中恢復(fù)過來。)圖 1-2 雙穩(wěn)態(tài)圖示
建立時(shí)間保持時(shí)間
建立時(shí)間:為了保證觸發(fā)器可靠的接受輸入數(shù)據(jù),數(shù)據(jù)需要在時(shí)鐘上升沿到來之前保持穩(wěn)定的最小時(shí)間。
保持時(shí)間:時(shí)鐘有效沿后,數(shù)據(jù)還需要保持的最小時(shí)間。
圖 1-3 建立保持時(shí)間與亞穩(wěn)時(shí)間窗
建立時(shí)間保持時(shí)間方程
Tco+Tcomp+Tsu<=T+Tskew;
Tco+Tcomp>=Thd+Tskew;
亞穩(wěn)態(tài)
如果不能滿足最小建立時(shí)間或最小保持時(shí)間,DFF輸出將是不定狀態(tài),或在高低電平之間震蕩,幾進(jìn)入亞穩(wěn)態(tài)。
亞穩(wěn)態(tài):指觸發(fā)器無法在某個(gè)規(guī)定的時(shí)間段內(nèi)達(dá)到一個(gè)可確認(rèn)的狀態(tài)。但觸發(fā)器進(jìn)入亞穩(wěn)態(tài)時(shí),既無法預(yù)測(cè)改單元輸出電平,也無法預(yù)測(cè)何時(shí)才能穩(wěn)定在某個(gè)正確電平上。
圖 1-4 亞穩(wěn)態(tài)時(shí)間窗
如圖所示,當(dāng)在輸入數(shù)據(jù)在亞穩(wěn)時(shí)間窗變化時(shí),Tco增大,在Tco_max之后還沒有穩(wěn)定的情況就是亞穩(wěn)態(tài)。[!--empirenews.page--]
2.異步數(shù)據(jù)傳輸
異步數(shù)據(jù)傳輸可能導(dǎo)致亞穩(wěn)態(tài),如圖2-1所示
圖 2-1 異步數(shù)據(jù)傳輸
兩個(gè)時(shí)鐘CLK1和CLK2沒有相關(guān)性,無法保證DFF1的輸出在DFF2上能滿足建立保持時(shí)間。CLK1的數(shù)據(jù)傳輸?shù)紺LK2上可能發(fā)生以下情況:
1)滿足建立保持時(shí)間,數(shù)據(jù)正確接收
2)實(shí)際的建立時(shí)間小于臨界時(shí)間點(diǎn),數(shù)據(jù)無法接收3)數(shù)據(jù)實(shí)際建立時(shí)間不滿足建立時(shí)間,但大于臨界時(shí)間點(diǎn),數(shù)據(jù)Tco增大。
4)數(shù)據(jù)越接近臨界時(shí)間點(diǎn)變化,延時(shí)時(shí)間越大,相差很小時(shí),輸出無法預(yù)測(cè),噪聲可使結(jié)果出現(xiàn)隨機(jī)性。
圖 2-2 異步傳輸亞穩(wěn)態(tài)時(shí)序
在CLK1和CLK2沒有任何關(guān)系的情況下,Q1可能在CLK2上升沿的任何時(shí)候跳變,DFF2輸出必定有一定的概率進(jìn)入亞穩(wěn)態(tài),一旦DFF2進(jìn)入亞穩(wěn)態(tài),Tco增大,當(dāng)Tco增大到大于T+Tskew-Tcomb-Tsu時(shí),DFF2到DFF3會(huì)產(chǎn)生建立時(shí)間違例,從而產(chǎn)生亞穩(wěn)態(tài)傳播。
圖 2-3 亞穩(wěn)態(tài)測(cè)量電路
通過改變時(shí)鐘周期,可測(cè)得一系列不同Tco的MTBF值。
3.異步處理電路
針對(duì)不同的異步數(shù)據(jù)可以采用不同的同步處理方式。
1)電平信號(hào):多級(jí)串聯(lián)的DFF(2級(jí)以上)。
2)脈沖信號(hào):
①在慢時(shí)鐘到快時(shí)鐘域傳遞,且連個(gè)時(shí)鐘相差比較大時(shí),慢時(shí)鐘的脈沖可以被快時(shí)鐘當(dāng)做電平,使用電平同步技術(shù)同步后,在采用邊沿檢測(cè)電路即可得到相應(yīng)的脈沖信號(hào)。
②快時(shí)鐘到慢時(shí)鐘,使用脈沖同步器,下圖給出了兩個(gè)電路,不歸0翻轉(zhuǎn)電路,反饋清0電路IC設(shè)計(jì)常見的異步電路處理故障
3)多bit數(shù)據(jù):使用握手協(xié)議或者異步FIFO。在握手協(xié)議中,異步的REQ/ACK需要使用上述同步技術(shù)進(jìn)行同步處理,異步FIFO也是如此。關(guān)于FIFO涉及的內(nèi)容比較多,后續(xù)專門講解。