0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多時(shí)鐘域的同步時(shí)序設(shè)計(jì)和幾種處理異步時(shí)鐘域接口的方法

牽手一起夢 ? 來源:電子設(shè)計(jì)應(yīng)用 ? 作者:張渠,李平 ? 2020-07-24 09:52 ? 次閱讀

引言

數(shù)字電路設(shè)計(jì)中,大部分設(shè)計(jì)都是同步時(shí)序設(shè)計(jì),所有的觸發(fā)器都是在同一個(gè)時(shí)鐘節(jié)拍下進(jìn)行翻轉(zhuǎn)。這樣就簡化了整個(gè)設(shè)計(jì),后端綜合、布局布線的時(shí)序約束也不用非常嚴(yán)格。但是在設(shè)計(jì)與外部設(shè)備的接口部分時(shí),大部分外部輸入的信號(hào)與本地時(shí)鐘是異步的。在SoC設(shè)計(jì)中,可能同時(shí)存在幾個(gè)時(shí)鐘域,信號(hào)的輸出驅(qū)動(dòng)和輸入采樣在不同的時(shí)鐘節(jié)拍下進(jìn)行,可能會(huì)出現(xiàn)一些不穩(wěn)定的現(xiàn)象。本文分析了在跨時(shí)鐘域信號(hào)傳遞時(shí)可能會(huì)遇見的問題,并介紹了幾種處理異步時(shí)鐘域接口的方法。

圖1 多時(shí)鐘域的信號(hào)傳遞

圖2 異步信號(hào)傳輸通過不同路徑

圖3 同步器的構(gòu)建和使用

圖4 兩級(jí)采樣的同步器

圖5 一級(jí)采樣的同步器故障

圖6 兩級(jí)采樣的同步器

亞穩(wěn)態(tài)

當(dāng)觸發(fā)器的建立時(shí)間和保持時(shí)間要求沒有得到滿足時(shí),觸發(fā)器就會(huì)進(jìn)入一個(gè)界于邏輯1和邏輯0之間的第三種狀態(tài),即亞穩(wěn)態(tài)。

理想的觸發(fā)器是在時(shí)鐘邊沿到達(dá)的那個(gè)時(shí)刻采樣數(shù)據(jù)。但是在實(shí)際電路中,時(shí)鐘的跳變具有一定的斜率,電路采樣、保存、傳遞數(shù)據(jù)也需要一定的時(shí)間。如果在數(shù)據(jù)還未穩(wěn)定時(shí)進(jìn)行采樣,就可能會(huì)導(dǎo)致亞穩(wěn)態(tài)的發(fā)生。

平均無故障時(shí)間MTBF(Mean time between failures)是指任意兩次故障出現(xiàn)的間隔時(shí)間的期望值。一個(gè)系統(tǒng)亞穩(wěn)態(tài)的MTBF是和系統(tǒng)頻率、器件速度相關(guān)的指數(shù)函數(shù):

公式中的tr是有效的亞穩(wěn)態(tài)最大分辨時(shí)間,是指觸發(fā)器能夠保持亞穩(wěn)態(tài)輸出,并不會(huì)引起故障的時(shí)間。f是觸發(fā)器的時(shí)鐘頻率。是異步輸入每秒變化的次數(shù)。To和是由觸發(fā)器的電氣特性決定的參數(shù),可用于表征觸發(fā)器翻轉(zhuǎn)速度的快慢。增加tr,或者減小To、或f都可以加大MTBF,即使兩次故障出現(xiàn)的時(shí)間間隔加大。但在一般情況下,系統(tǒng)中的tr和f是固定的,故只能通過減小To、t或a來改善系統(tǒng)。降低輸入信號(hào)的變化頻率a可以滿足建立時(shí)間和保持時(shí)間的要求。而To、t是器件的固有性質(zhì),只有用速度更快的器件才能減小它們。

多時(shí)鐘域下同步器的設(shè)計(jì)與分析

當(dāng)在某個(gè)時(shí)鐘邊沿采樣一個(gè)變化的數(shù)據(jù)信號(hào)時(shí),時(shí)鐘邊沿和數(shù)據(jù)變化這兩個(gè)事件出現(xiàn)的先后順序?qū)Q定結(jié)果。這兩個(gè)事件出現(xiàn)先后的差異越小,判斷哪個(gè)事件先到來所花的時(shí)間就越多。當(dāng)兩個(gè)事件到來太接近時(shí),就會(huì)使判決所花的時(shí)間超過規(guī)定的分辨時(shí)間,從而導(dǎo)致故障發(fā)生。

異步信號(hào)傳輸?shù)膯栴}分析

如果信號(hào)跨越不同的時(shí)鐘域,就有可能會(huì)出現(xiàn)不滿足建立時(shí)間和保持時(shí)間的情況。如圖1所示,信號(hào)A經(jīng)過組合邏輯傳遞到模塊B中的觸發(fā)器,若信號(hào)A到達(dá)時(shí)間與模塊B的時(shí)鐘邊沿非常接近,模塊B中的觸發(fā)器就會(huì)工作在不確定的亞穩(wěn)態(tài)。如果這個(gè)亞穩(wěn)態(tài)持續(xù)了一個(gè)周期,就會(huì)影響到下一級(jí)的觸發(fā)器,最終產(chǎn)生連鎖反應(yīng),使整個(gè)芯片的功能發(fā)生混亂。

另外一種可能出現(xiàn)的現(xiàn)象如圖2所示,由于在實(shí)際電路中存在延時(shí),圖中采樣同一個(gè)異步信號(hào)的兩個(gè)D觸發(fā)器無法按理想狀況接收到時(shí)鐘信號(hào)和輸入信號(hào)。因此,當(dāng)異步輸入在時(shí)鐘邊沿發(fā)生變化時(shí),會(huì)出現(xiàn)在一段時(shí)間內(nèi),兩個(gè)觸發(fā)器的輸出值SYN1和SYN2不一致的情況。這種不一致將會(huì)導(dǎo)致系統(tǒng)出現(xiàn)不正確的操作。

另外,圖2中組合邏輯電路中的不同通路不可避免的具有不同的延時(shí),因此,產(chǎn)生不一致結(jié)果的可能性就更大,這種情況在有異步信號(hào)輸入的狀態(tài)機(jī)里特別普遍。例如,某個(gè)VME總線接口芯片,用于完成VME總線時(shí)序到MC6000系列CPU時(shí)序的轉(zhuǎn)換。CPU時(shí)鐘是50MHz,VME總線系統(tǒng)的時(shí)鐘是64MHz。VME總線是異步總線,存在很多跨越時(shí)域的握手信號(hào),如果不使用同步器對與狀態(tài)機(jī)的狀態(tài)變量相關(guān)的信號(hào)進(jìn)行同步化處理,就會(huì)出現(xiàn)故障。

同步器在多時(shí)鐘域設(shè)計(jì)中的應(yīng)用

同步器的功能是采樣異步輸入信號(hào),并使產(chǎn)生的輸出信號(hào)滿足同步系統(tǒng)的建立時(shí)間和保持時(shí)間的要求。簡單的同步器一般采用D觸發(fā)器來構(gòu)成。圖3中,D觸發(fā)器的每一個(gè)時(shí)鐘觸發(fā)沿采樣異步輸入信號(hào),并產(chǎn)生一個(gè)同步后的輸出信號(hào)。要構(gòu)建更好的同步器可以采用更快速的觸發(fā)器,減小采樣保持時(shí)間,使器件能夠更快地采樣到信號(hào);或者增加MTBF方程中的tr值,等信號(hào)穩(wěn)定后再采樣,這可以通過延時(shí)采樣來實(shí)現(xiàn)。

圖4為最常用的一種同步器,與一級(jí)同步相比,兩級(jí)同步能夠更可靠地避免亞穩(wěn)態(tài)的出現(xiàn),而三級(jí)以上同步器的效果并不能提高多少。

同步器故障分析

如果同步器的建立時(shí)間和保持時(shí)間得不到滿足,那么觸發(fā)器同樣會(huì)進(jìn)入亞穩(wěn)態(tài)。這個(gè)亞穩(wěn)態(tài)通過不同的延時(shí)傳到組合邏輯中,一部分電路把這個(gè)信號(hào)識(shí)別為邏輯1,一部分又將其識(shí)別為邏輯0,也會(huì)導(dǎo)致系統(tǒng)邏輯的混亂。

下面將比較一下一級(jí)同步器和兩級(jí)采樣同步器的差異。

一級(jí)同步器如圖5所示,aclk時(shí)鐘域產(chǎn)生的信號(hào)adat的變化與bclk時(shí)鐘域時(shí)鐘的邊沿采樣太接近,未滿足采樣保持時(shí)間。同步器故障導(dǎo)致輸出出現(xiàn)亞穩(wěn)態(tài),且在下一個(gè)時(shí)鐘邊沿到來之前,不會(huì)變成穩(wěn)態(tài)。此輸出傳遞到后面的組合邏輯中,導(dǎo)致系統(tǒng)混亂。

兩級(jí)同步器如圖6所示,當(dāng)?shù)谝患?jí)觸發(fā)器采樣異步輸入之后,允許輸出出現(xiàn)的亞穩(wěn)態(tài)可以長達(dá)一個(gè)周期,在這個(gè)周期內(nèi),亞穩(wěn)態(tài)特性減弱。在第二個(gè)時(shí)鐘沿到來時(shí),第二級(jí)同步器采樣,之后才把該信號(hào)傳遞到內(nèi)部邏輯中去。第二級(jí)輸出是穩(wěn)定且已被同步了的。如果在第二級(jí)采樣時(shí)第一級(jí)的輸出仍然處于很強(qiáng)的亞穩(wěn)態(tài),將會(huì)導(dǎo)致第二級(jí)同步器也進(jìn)入亞穩(wěn)態(tài),但這種故障出現(xiàn)的概率比較小。

兩級(jí)同步器總體的故障概率是一級(jí)同步器故障概率的平方。例如,對74LS74系列器件來說, TO=0.4s,t=1.5ns,建立時(shí)間ts=20ns。設(shè)時(shí)鐘頻率為10MHz,則同步器分辨時(shí)間tr=80ns。若異步信號(hào)變化頻率a=100kHz,則一級(jí)同步器的平均無故障時(shí)間為:

兩級(jí)同步器的MTBF為[MTBF(80ns)]2=1.296×1023s。在大部分的同步化設(shè)計(jì)中,兩級(jí)同步器足以消除所有可能的亞穩(wěn)態(tài)了。

結(jié)語

在異步設(shè)計(jì)時(shí),同步化和亞穩(wěn)態(tài)的問題是難以避免的。本文對該類問題做了較為詳細(xì)的分析。文中介紹的同步器解決亞穩(wěn)態(tài)和同步化的方案簡單、可行性較高,能夠滿足絕大部分的邏輯設(shè)計(jì)。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 布線
    +關(guān)注

    關(guān)注

    9

    文章

    762

    瀏覽量

    84272
  • 布局
    +關(guān)注

    關(guān)注

    5

    文章

    265

    瀏覽量

    24970
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1995

    瀏覽量

    61012
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA設(shè)計(jì)中有多個(gè)時(shí)鐘時(shí)如何處理?

    FPGA設(shè)計(jì)中有多個(gè)時(shí)鐘時(shí)如何處理?跨時(shí)鐘的基本設(shè)計(jì)方法是:(1)對于單個(gè)信號(hào),使用雙D觸發(fā)
    發(fā)表于 02-24 15:47

    關(guān)于異步時(shí)鐘的理解問題:

    關(guān)于異步時(shí)鐘的理解的問題: 這里面的count[25]、和count[14]和count[1]算是多時(shí)鐘吧?大俠幫解決下我的心結(jié)呀,我
    發(fā)表于 02-27 15:50

    多時(shí)鐘的設(shè)計(jì)和綜合技巧系列

    1、純粹的單時(shí)鐘同步設(shè)計(jì)純粹的單時(shí)鐘同步設(shè)計(jì)是一種奢望。大部分的ASIC設(shè)計(jì)都由多個(gè)異步時(shí)鐘驅(qū)動(dòng)
    發(fā)表于 04-11 17:06

    IC設(shè)計(jì)中多時(shí)鐘處理的常用方法相關(guān)資料推薦

    1、IC設(shè)計(jì)中的多時(shí)鐘處理方法簡析我們在ASIC或FPGA系統(tǒng)設(shè)計(jì)中,常常會(huì)遇到需要在多個(gè)時(shí)鐘
    發(fā)表于 06-24 16:54

    討論一下在FPGA設(shè)計(jì)中多時(shí)鐘異步信號(hào)處理有關(guān)的問題和解決方案

    。雖然這樣可以簡化時(shí)序分析以及減少很多與多時(shí)鐘有關(guān)的問題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。FPGA時(shí)常需要在兩個(gè)不同時(shí)
    發(fā)表于 10-14 15:43

    高級(jí)FPGA設(shè)計(jì)技巧!多時(shí)鐘異步信號(hào)處理解決方案

    減少很多與多時(shí)鐘有關(guān)的問題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。FPGA時(shí)常需要在兩個(gè)不同時(shí)鐘頻率系統(tǒng)之間交換數(shù)據(jù),在系統(tǒng)之間通過多I/O
    發(fā)表于 06-02 14:26

    基于多時(shí)鐘異步FIFO設(shè)計(jì)

    在大規(guī)模集成電路設(shè)計(jì)中,一個(gè)系統(tǒng)包含了很多不相關(guān)的時(shí)鐘信號(hào),當(dāng)其目標(biāo)時(shí)鐘與源時(shí)鐘不同時(shí),如何在這些不同
    發(fā)表于 12-14 10:19 ?14次下載

    時(shí)鐘信號(hào)的幾種同步方法研究

    時(shí)鐘信號(hào)的同步方法應(yīng)根據(jù)源時(shí)鐘與目標(biāo)時(shí)鐘的相位關(guān)系、該信號(hào)的時(shí)間寬度和多個(gè)跨
    發(fā)表于 05-09 15:21 ?63次下載
    跨<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>信號(hào)的<b class='flag-5'>幾種</b><b class='flag-5'>同步</b><b class='flag-5'>方法</b>研究

    如何解決異步FIFO跨時(shí)鐘亞穩(wěn)態(tài)問題?

    時(shí)鐘的問題:前一篇已經(jīng)提到要通過比較讀寫指針來判斷產(chǎn)生讀空和寫滿信號(hào),但是讀指針是屬于讀時(shí)鐘的,寫指針是屬于寫時(shí)鐘
    的頭像 發(fā)表于 09-05 14:29 ?5991次閱讀

    如何將一種異步時(shí)鐘轉(zhuǎn)換成同步時(shí)鐘

     本發(fā)明提供了一種將異步時(shí)鐘轉(zhuǎn)換成同步時(shí)鐘方法
    發(fā)表于 12-21 17:10 ?5次下載
    如何將一種<b class='flag-5'>異步</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>轉(zhuǎn)換成<b class='flag-5'>同步</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>

    解析多時(shí)鐘異步信號(hào)處理解決方案

    減少很多與多時(shí)鐘有關(guān)的問題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。 FPGA時(shí)常需要在兩個(gè)不同時(shí)鐘頻率系統(tǒng)之間交換數(shù)據(jù),在系統(tǒng)之間通過多I/O
    的頭像 發(fā)表于 05-10 16:51 ?3931次閱讀
    解析<b class='flag-5'>多時(shí)鐘</b><b class='flag-5'>域</b>和<b class='flag-5'>異步</b>信號(hào)<b class='flag-5'>處理</b>解決方案

    FPGA中多時(shí)鐘異步信號(hào)處理的問題

    減少很多與多時(shí)鐘有關(guān)的問題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。FPGA時(shí)常需要在兩個(gè)不同時(shí)鐘頻率系統(tǒng)之間交換數(shù)據(jù),在系統(tǒng)之間通過多I/O
    的頭像 發(fā)表于 09-23 16:39 ?3031次閱讀

    時(shí)鐘處理方法(一)

    理論上講,快時(shí)鐘的信號(hào)總會(huì)采集到慢時(shí)鐘傳輸來的信號(hào),如果存在異步可能會(huì)導(dǎo)致出現(xiàn)時(shí)序問題,所以
    的頭像 發(fā)表于 03-28 13:50 ?2091次閱讀
    跨<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>(一)

    關(guān)于FPGA設(shè)計(jì)中多時(shí)鐘異步信號(hào)處理有關(guān)的問題

    減少很多與多時(shí)鐘有關(guān)的問題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。FPGA時(shí)常需要在兩個(gè)不同時(shí)鐘頻率系統(tǒng)之間交換數(shù)據(jù),在系統(tǒng)之間通過多I/O
    的頭像 發(fā)表于 08-23 16:10 ?590次閱讀

    為什么異步fifo中讀地址同步在寫時(shí)鐘時(shí)序分析不通過?

    為什么異步fifo中讀地址同步在寫時(shí)鐘時(shí)序分析不通過? 異步FIFO中讀地址
    的頭像 發(fā)表于 10-18 15:23 ?659次閱讀