同步異步復(fù)位與亞穩(wěn)態(tài)可靠性設(shè)計(jì)
1. 亞穩(wěn)態(tài)與設(shè)計(jì)可靠性
設(shè)計(jì)數(shù)字電路時(shí)大家都知道同步是非常重要的,特別當(dāng)要輸入一個(gè)信號(hào)到一個(gè)同步電路中,但是該信號(hào)由另一個(gè)時(shí)鐘驅(qū)動(dòng)時(shí),這是要在接口處采取一些措施,使輸入的異步信號(hào)同步化,否則電路將無(wú)法正常工作,因?yàn)檩斎攵撕芸赡艹霈F(xiàn)亞穩(wěn)態(tài)(Metastability),導(dǎo)致采樣錯(cuò)誤。這里我們對(duì)亞穩(wěn)態(tài)的起因、危害、對(duì)可靠性的影響和消除仿真做一些介紹。
2. 亞穩(wěn)態(tài)發(fā)生的原因
在同步系統(tǒng)中,如果觸發(fā)器的 setup time / hold time 不滿足,就可能產(chǎn)生亞穩(wěn)態(tài),此時(shí)觸發(fā)器輸出端 Q 在有效時(shí)鐘沿之后比較長(zhǎng)的一段時(shí)間處于不確定的狀態(tài),在這段時(shí)間里 Q 端會(huì)出現(xiàn)毛刺、振蕩、或固定在某一電壓值,而不一定等于數(shù)據(jù)輸入端 D 的值。這段之間稱為決斷時(shí)間(resolution time)。經(jīng)過(guò) resolution time 之后 Q端將穩(wěn)定到 0 或1上,但是究竟是0 還是 1,這是隨機(jī)的,與輸入沒(méi)有必然的關(guān)系。亞穩(wěn)態(tài)實(shí)質(zhì)是介于”0””1”電平之間的一個(gè)狀態(tài)。亞穩(wěn)態(tài)是 FF的一個(gè)固有特性。正常采樣也會(huì)有一個(gè)亞穩(wěn)態(tài)時(shí)間。當(dāng)建立保持時(shí)間滿足時(shí),F(xiàn)F 在經(jīng)歷采樣、亞穩(wěn)態(tài)后,進(jìn)入一個(gè)正確的狀態(tài)。如果建立保持時(shí)間不滿足,那么FF會(huì)有一個(gè)相當(dāng)長(zhǎng)的亞穩(wěn)態(tài)時(shí)間,最后隨機(jī)進(jìn)入一個(gè)固定態(tài)。
3. 亞穩(wěn)態(tài)的危害
由于輸出在穩(wěn)定下來(lái)之前可能是毛刺、振蕩、固定的某一電壓值,因此亞穩(wěn)態(tài)除了導(dǎo)致邏輯誤判之外,輸出 0~1 之間的中間電壓值還會(huì)使下一級(jí)產(chǎn)生亞穩(wěn)態(tài),即導(dǎo)致 meta. stability的傳播。邏輯誤判(由于組合邏輯的 race,導(dǎo)致總線狀態(tài)的不穩(wěn)定)有可能通過(guò)電路的特殊設(shè)計(jì)減輕危害(如異步 FIFO中 Gray碼計(jì)數(shù)器的作用,一次只變化一位),而亞穩(wěn)態(tài)的傳播則擴(kuò)大了故障面,難以處理。
4. 亞穩(wěn)態(tài)的簡(jiǎn)單解決辦法
只要系統(tǒng)中有異步元件,亞穩(wěn)態(tài)就是無(wú)法避免的,因此設(shè)計(jì)的電路首先要減少亞穩(wěn)態(tài)導(dǎo)致錯(cuò)誤的發(fā)生,其次要使系統(tǒng)對(duì)產(chǎn)生的錯(cuò)誤不敏感。前者要靠同步來(lái)實(shí)現(xiàn),而后者根據(jù)不同的設(shè)計(jì)應(yīng)用有不同的處理辦法。用同步來(lái)減少亞穩(wěn)態(tài)發(fā)生機(jī)會(huì)的典型電路如圖 1 所示。
圖 1 兩級(jí)同步化電路
在圖 1 中,左邊為異步輸入端,經(jīng)過(guò)兩級(jí)觸發(fā)器同步,在右邊的輸出將是同步的,而且該輸出基本不存在亞穩(wěn)態(tài)。其原理是即使第一個(gè)觸發(fā)器的輸出端存在亞穩(wěn)態(tài),經(jīng)過(guò)一個(gè) CLK 周期后,第二個(gè)觸發(fā)器 D 端的電平仍未穩(wěn)定的概率非常小,因此第二個(gè)觸發(fā)器 Q 端基本不會(huì)產(chǎn)生亞穩(wěn)態(tài)。
注意,這里說(shuō)的是“基本”,也就是無(wú)法“根除”,那么如果第二個(gè)觸發(fā)器 Q出現(xiàn)了亞穩(wěn)態(tài)會(huì)有什么后果呢?后果的嚴(yán)重程度是由你的設(shè)計(jì)決定的,如果系統(tǒng)對(duì)產(chǎn)生的錯(cuò)誤不敏感,那么系統(tǒng)可能正常工作,或者經(jīng)過(guò)短暫的異常之后可以恢復(fù)正常工作,例如設(shè)計(jì)異步 FIFO時(shí)使用格雷碼計(jì)數(shù)器當(dāng)讀寫地址的指針就是處于這方面的考慮。如果設(shè)計(jì)上沒(méi)有考慮如何降低系統(tǒng)對(duì)亞穩(wěn)態(tài)的敏感程度,那么一旦出現(xiàn)亞穩(wěn)態(tài),系統(tǒng)可能就崩潰了。
5. 亞穩(wěn)態(tài)與系統(tǒng)可靠性
評(píng)論