新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 牛人業(yè)話 > 跨越鴻溝:同步世界中的異步信號(hào)

跨越鴻溝:同步世界中的異步信號(hào)

作者: 時(shí)間:2015-01-26 來源:網(wǎng)絡(luò) 收藏

  只有最初級(jí)的邏輯電路才使用單一的時(shí)鐘。大多數(shù)與數(shù)據(jù)傳輸相關(guān)的應(yīng)用都有與生俱來的挑戰(zhàn),即跨越多個(gè)時(shí)鐘域的數(shù)據(jù)移動(dòng),例如磁盤控制器、CDROM/DVD 控制器、調(diào)制解調(diào)器、網(wǎng)卡以及網(wǎng)絡(luò)處理器等。當(dāng)信號(hào)從一個(gè)時(shí)鐘域傳送到另一個(gè)時(shí)鐘域時(shí),出現(xiàn)在新時(shí)鐘域的信號(hào)是。

本文引用地址:http://butianyuan.cn/article/268638.htm

  在現(xiàn)代 IC、ASIC 以及 設(shè)計(jì)中,許多軟件程序可以幫助工程師建立幾百萬門的電路,但這些程序都無法解決信號(hào)同步問題。設(shè)計(jì)者需要了解可靠的設(shè)計(jì)技巧,以減少電路在跨時(shí)鐘域通信時(shí)的故障風(fēng)險(xiǎn)。

  基礎(chǔ)

  從事多時(shí)鐘設(shè)計(jì)的第一步是要理解信號(hào)穩(wěn)定性問題。當(dāng)一個(gè)信號(hào)跨越某個(gè)時(shí)鐘域時(shí),對(duì)新時(shí)鐘域的電路來說它就是一個(gè)。接收該信號(hào)的電路需要對(duì)其進(jìn)行同步。同步可以防止第一級(jí)存儲(chǔ)單元(觸發(fā)器)的亞穩(wěn)態(tài)在新的時(shí)鐘域里傳播蔓延。

  亞穩(wěn)態(tài)是指觸發(fā)器無法在某個(gè)規(guī)定時(shí)間段內(nèi)達(dá)到一個(gè)可確認(rèn)的狀態(tài)。當(dāng)一個(gè)觸發(fā)器進(jìn)入亞穩(wěn)態(tài)時(shí),既無法預(yù)測(cè)該單元的輸出電平,也無法預(yù)測(cè)何時(shí)輸出才能穩(wěn)定在某個(gè)正確的電平上。在這個(gè)穩(wěn)定期間,觸發(fā)器輸出一些中間級(jí)電平,或者可能處于振蕩狀態(tài),并且這種無用的輸出電平可以沿信號(hào)通道上的各個(gè)觸發(fā)器級(jí)聯(lián)式傳播下去。

  對(duì)任何一種觸發(fā)器,在時(shí)鐘觸發(fā)沿前后的一個(gè)小時(shí)間窗口內(nèi),輸入信號(hào)必須穩(wěn)定。這一時(shí)間窗口是多種因素的函數(shù),包括觸發(fā)器設(shè)計(jì)、實(shí)現(xiàn)技術(shù)、運(yùn)行環(huán)境以及無緩沖輸出上的負(fù)載等。輸入信號(hào)陡峭的邊沿可以將此窗口減至最小。隨著時(shí)鐘頻率的升高,會(huì)出現(xiàn)更多有問題的時(shí)間窗口,而隨著數(shù)據(jù)頻率的提升,這種窗口的命中概率則會(huì)增加。

  制造商和 IC 晶片廠用“MTBF”來標(biāo)識(shí)合格的觸發(fā)器,并且確定它們的特性。“MTBF”(平均無故障時(shí)間)用統(tǒng)計(jì)方法描述了一個(gè)觸發(fā)器的亞穩(wěn)態(tài)特性,即確定某個(gè)觸發(fā)器出現(xiàn)故障的概率。在計(jì)算 MTBF 時(shí),制造商部分基于輸入信號(hào)改變導(dǎo)致觸發(fā)器不穩(wěn)定期間的時(shí)間窗口長(zhǎng)度。另外,MTBF 的計(jì)算還使用了輸入信號(hào)的頻率以及驅(qū)動(dòng)觸發(fā)器的時(shí)鐘頻率。

  在一個(gè) ASIC 或 庫(kù)中,每種觸發(fā)器都有時(shí)序要求,以幫助你確定容易出問題的窗口。“建立時(shí)間”(Setup time)是指在時(shí)鐘沿到來之前,觸發(fā)器輸入信號(hào)必須保持穩(wěn)定的時(shí)間。“保持時(shí)間”(Hold time)則是指在時(shí)鐘沿之后,信號(hào)必須保持穩(wěn)定的時(shí)間。這些指標(biāo)通常比較保守,以應(yīng)對(duì)電源電壓、工作溫度、信號(hào)質(zhì)量以及制造工藝等各種可能的差異。如果一個(gè)設(shè)計(jì)滿足了這些時(shí)序要求,則觸發(fā)器出現(xiàn)錯(cuò)誤的可能性可以忽略不計(jì)。

  現(xiàn)代 IC 與 FPGA 設(shè)計(jì)中使用的綜合工具可以保證設(shè)計(jì)能滿足每個(gè)數(shù)字電路觸發(fā)器對(duì)建立與保持時(shí)間的要求。然而,卻給軟件提出了難題。對(duì)新的時(shí)鐘域來說,從其它時(shí)鐘域傳來的信號(hào)是異步的。大多數(shù)綜合工具在判定異步信號(hào)是否滿足觸發(fā)器時(shí)序要求時(shí)遇到了麻煩。因?yàn)樗鼈儾荒艽_定觸發(fā)器處于非穩(wěn)態(tài)的時(shí)間,所以它們也就不能確定從一個(gè)觸發(fā)器通過組合邏輯到達(dá)下一個(gè)觸發(fā)器的總延遲時(shí)間。所以,最好的辦法是使用一些電路來減輕異步信號(hào)的影響。

  信號(hào)同步

  信號(hào)同步的目的是防止新時(shí)鐘域中第一級(jí)觸發(fā)器的亞穩(wěn)態(tài)信號(hào)對(duì)下級(jí)邏輯造成影響。簡(jiǎn)單的同步器由兩個(gè)觸發(fā)器串聯(lián)而成,中間沒有其它組合電路。這種設(shè)計(jì)可以保證后面的觸發(fā)器獲得前一個(gè)觸發(fā)器輸出時(shí),前一個(gè)觸發(fā)器已退出了亞穩(wěn)態(tài),并且輸出已穩(wěn)定。設(shè)計(jì)中要注意將兩個(gè)觸發(fā)器放得盡可能近,以確保兩者間有最小的時(shí)滯(clock skew)。

  IC 制造廠提供同步單元,幫助完成信號(hào)同步工作。這些單元通常包括一個(gè)有非常高增益的觸發(fā)器,它比普通觸發(fā)器耗電更高,也比較大。這種觸發(fā)器降低了對(duì)輸入信號(hào)建立-保持時(shí)間的要求,并且當(dāng)輸入信號(hào)導(dǎo)致亞穩(wěn)態(tài)時(shí),它可以防止出現(xiàn)振蕩。另一種同步器單元包括兩個(gè)觸發(fā)器,省去了將兩個(gè)單獨(dú)觸發(fā)器靠近放置的工作,也防止設(shè)計(jì)人員誤在兩個(gè)觸發(fā)器間加入任何其它的組合邏輯。

  為了使同步工作能正常進(jìn)行,從某個(gè)時(shí)鐘域傳來的信號(hào)應(yīng)先通過原時(shí)鐘域上的一個(gè)觸發(fā)器,然后不經(jīng)過兩個(gè)時(shí)鐘域間的任何組合邏輯,直接進(jìn)入同步器的第一個(gè)觸發(fā)器中(圖 1)。這一要求非常重要,因?yàn)橥狡鞯牡谝患?jí)觸發(fā)器對(duì)組合邏輯所產(chǎn)生的毛刺非常敏感。如果一個(gè)足夠長(zhǎng)的信號(hào)毛刺正好滿足建立-保持時(shí)間的要求,則同步器的第一級(jí)觸發(fā)器會(huì)將其放行,給新時(shí)鐘域的后續(xù)邏輯送出一個(gè)虛假的信號(hào)。

  

在一個(gè)全同步器電路中

 

  圖1,在一個(gè)全同步器電路中,從某個(gè)時(shí)鐘域傳來的信號(hào)應(yīng)先通過原時(shí)鐘域上的一個(gè)觸發(fā)器,然后不經(jīng)過原觸發(fā)器和同步器的第一個(gè)觸發(fā)器兩個(gè)時(shí)鐘域間的任何組合邏輯,直接進(jìn)入同步器的第一個(gè)觸發(fā)器中。

  一個(gè)經(jīng)同步后的信號(hào)在兩個(gè)時(shí)鐘沿以后就成為新時(shí)鐘域中的有效信號(hào)。信號(hào)的延遲是新時(shí)鐘域中的一到兩個(gè)時(shí)鐘周期。一種粗略的估算方法是同步器電路在新時(shí)鐘域中造成兩個(gè)時(shí)鐘周期的延遲,設(shè)計(jì)者需要考慮同步延遲將對(duì)跨時(shí)鐘域的信號(hào)時(shí)序造成的影響。

  同步器有許多種設(shè)計(jì)方法,因?yàn)橐环N同步器不能滿足所有應(yīng)用的

  需求。同步器的類型基本上有三種:電平、邊沿檢測(cè)和脈沖(表 1)。雖然還存在著其它類型的同步器,但這三種類型的同步器可以解決設(shè)計(jì)者遇到的多數(shù)應(yīng)用問題。在電平同步器中,跨時(shí)鐘域的信號(hào)在新時(shí)鐘域中要保持高電平或低電平兩個(gè)時(shí)鐘周期以上。這種電路的要求是,在再次成為有效信號(hào)前,信號(hào)需要先變成無效狀態(tài)。每一次信號(hào)有效時(shí),接收邏輯都會(huì)把它看作一個(gè)單個(gè)事件,而不管信號(hào)的有效狀態(tài)保持了多久。這種電路是所有同步器電路的核心。

  

同步器的類型與應(yīng)用

 

  表 1

  邊沿檢測(cè)同步器在電平同步器的輸出端增加了一個(gè)觸發(fā)器(圖 2)。新增觸發(fā)器的輸出經(jīng)反相后和電平同步器的輸出進(jìn)行與操作。這一電路會(huì)檢測(cè)同步器輸入的上升沿,產(chǎn)生一個(gè)與時(shí)鐘周期等寬、高電平有效的脈沖。如果將與門的兩個(gè)輸入端交換使用,就可以構(gòu)成一個(gè)檢測(cè)輸入信號(hào)下降沿的同步器。將與門改為與非門可以構(gòu)建一個(gè)產(chǎn)生低電平有效脈沖的電路。

  

邊沿檢測(cè)同步器在電平同步器的輸出端增加了一個(gè)觸發(fā)器

 

  圖2,邊沿檢測(cè)同步器在電平同步器的輸出端增加了一個(gè)觸發(fā)器。

  當(dāng)一個(gè)脈沖進(jìn)入更快的時(shí)鐘域中時(shí),邊沿檢測(cè)同步器可以工作得很好。這一電路會(huì)產(chǎn)生一個(gè)脈沖,用來指示輸入信號(hào)上升或下降沿。這種同步器有一個(gè)限制,即輸入脈沖的寬度必須大于同步時(shí)鐘周期與第一個(gè)同步觸發(fā)器所需保

  持時(shí)間之和。最保險(xiǎn)的脈沖寬度是同步器時(shí)鐘周期的兩倍。如果輸入是一個(gè)單時(shí)鐘寬度脈沖進(jìn)入一個(gè)較慢的時(shí)鐘域,則這種同步器沒有作用,在這種情況下,就要采用脈沖同步器。

  脈沖同步器的輸入信號(hào)是一個(gè)單時(shí)鐘寬度脈沖,它觸發(fā)原時(shí)鐘域中的一個(gè)翻轉(zhuǎn)電路(圖 3)。每當(dāng)翻轉(zhuǎn)電路接收到一個(gè)脈沖時(shí),它就會(huì)在高、低電平間進(jìn)行轉(zhuǎn)換,然后通過電平同步器到達(dá)異或門的一個(gè)輸入端,而另一個(gè)信號(hào)經(jīng)一個(gè)時(shí)鐘周期的延遲進(jìn)入異或門的另一端,翻轉(zhuǎn)電路每轉(zhuǎn)換一次狀態(tài),這個(gè)同步器的輸出端就產(chǎn)生一個(gè)單時(shí)鐘寬度的脈沖。

  

脈沖同步器的輸入信號(hào)是一個(gè)單時(shí)鐘寬度脈沖

 

  圖3,脈沖同步器的輸入信號(hào)是一個(gè)單時(shí)鐘寬度脈沖,它觸發(fā)原時(shí)鐘域中的一個(gè)翻轉(zhuǎn)電路

  脈沖同步器的基本功能是從某個(gè)時(shí)鐘域取出一個(gè)單時(shí)鐘寬度脈沖,然后在新的時(shí)鐘域中建立另一個(gè)單時(shí)鐘寬度的脈沖。脈沖同步器也有一個(gè)限制,即輸入脈沖之間的最小間隔必須等于兩個(gè)同步器時(shí)鐘周期。如果輸入脈沖相互過近,則新時(shí)鐘域中的輸出脈沖也緊密相鄰,結(jié)果是輸出脈沖寬度比一個(gè)時(shí)鐘周期寬。當(dāng)輸入脈沖時(shí)鐘周期大于兩個(gè)同步器時(shí)鐘周期時(shí),這個(gè)問題更加嚴(yán)重。這種情況下,如果輸入脈沖相鄰太近,則同步器就不能檢測(cè)到每個(gè)脈沖。

模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)


電路相關(guān)文章:電路分析基礎(chǔ)


脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: FPGA 異步信號(hào) FIFO

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉