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

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

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

單bit信號跨時鐘域如何傳輸?

冬至子 ? 來源:小何的芯像石頭 ? 作者:五線譜是偶然來的 ? 2023-06-27 09:54 ? 次閱讀

同步電路

即電路中的所有受時鐘控制的單元,全部由一個統(tǒng)一的全局時鐘控制:

  • 觸發(fā)器(Flip Flop)
  • 寄存器(Register)

圖片

同步電路優(yōu)點(diǎn):

  • 在同步設(shè)計中,EDA工具可以保證電路系統(tǒng)的時序收斂,有效避免了電路設(shè)計中競爭冒險現(xiàn)象。
  • 由于觸發(fā)器只有在時鐘邊緣才改變?nèi)≈?,很大限度地減少了整個電路受毛刺和噪聲影響的可能。

缺點(diǎn):

電路里面所有的觸發(fā)器都由同一個時鐘驅(qū)動,所以必須構(gòu)建時鐘樹、時鐘網(wǎng)絡(luò),因此時鐘到達(dá)哥哥觸發(fā)器的時間不一樣,則會引入時鐘偏斜和時鐘抖動問題:

  • 時鐘偏斜( Clock Skew )
  • 時鐘抖動(Clock Jitter )
  • 時鐘樹綜合,需要加入大量的延遲單元,使得電路的面積和功耗大大增加

圖片

全局異步電路

全局異步設(shè)計跟同步設(shè)計最大的不同就是它的電路中的數(shù)據(jù)傳輸可以在任何時候發(fā)生,電路中沒有一個全局的或局部的控制時鐘。

圖片

異步電路優(yōu)點(diǎn):

  • 模塊化特性突出
  • 信號的延遲不敏感
  • 沒有時鐘偏斜問題
  • 有潛在的高性能特性
  • 好的電磁兼容
  • 具有低功耗的特性

異步電路缺點(diǎn):

  • 設(shè)計復(fù)雜
  • 缺少相應(yīng)的EDA工具的支持
  • 在大規(guī)模集成電路設(shè)計中應(yīng)避免采用異步電路設(shè)計

同步異步時鐘,指時鐘源是不是同一個,假設(shè)是同一個PLL出來的,就能看成是同步時鐘,不同PLL下即使是同頻也是異步時鐘

在一個性想的全局時鐘控制下,只要電路的各個功能壞節(jié)都買現(xiàn)了時序收斂,整個電路就可以可靠工作了。由于 EDA 工具的廣泛支持,采用同步電路設(shè)計的方法是目前ASIC 和 SoC 設(shè)計的基本要求。但是常大規(guī)模 ASIC 和 SoC 芯片中都采用了全局異步、局部同步的方法。因此,在設(shè)計中必須要注意 異步信號與同步電路的交互問題

在不同時鐘域間,如何安全傳遞信號

跨時鐘域電路主要分為以下幾種:

圖片

亞穩(wěn)態(tài)相關(guān)概念和原理

圖片

  • 亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內(nèi)達(dá)到一個可確認(rèn)的狀態(tài)。
  • 亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內(nèi)達(dá)到一個可確認(rèn)的狀態(tài)。當(dāng)一個觸發(fā)器進(jìn)入亞穩(wěn)態(tài)時,既無法預(yù)測該單元的輸出電平,也無法預(yù)測何時輸出才能穩(wěn)定在某個正確的電平上。
  • 在這個期間,觸發(fā)器輸出一些中間級電平,或者可能處于振蕩狀態(tài),并且這種無用的輸出電平可以沿信號通道上的各個觸發(fā)器級聯(lián)式傳播下去。
  • 亞穩(wěn)態(tài)不能從根本上消除,但可以通過采取一定的措施使其對電路造成的影響降低。

亞穩(wěn)態(tài)影響衡量指標(biāo)MTBF(Mean Time Between Failure),MTBF越大,亞穩(wěn)態(tài)影響越小:

1.jpg

雙鎖存器電平同步器

雖然說的是鎖存器,但實(shí)際上是兩個觸發(fā)器:

  • 一個信號在過渡到另一個時鐘域時,如果僅僅用一個觸發(fā)器將其鎖存,那么用b_clk進(jìn)行采樣的結(jié)果將可能是亞穩(wěn)態(tài)。這也是信號在跨時鐘域時應(yīng)該注意的問題。

圖片

為了避免上節(jié)所述的亞穩(wěn)態(tài)問題,就應(yīng)當(dāng)使參數(shù) MTBF 盡可能的大,通常采用的方法是雙鎖存器法,即在一個信號進(jìn)入另一個時鐘域之前,將該信號用兩個鎖存器連續(xù)鎖存兩次,最后得到的采樣結(jié)果就可以消除亞穩(wěn)態(tài)問題。

圖片

雙鎖存器法,優(yōu)點(diǎn):

  • 結(jié)構(gòu)簡單、易實(shí)現(xiàn),面積消耗很小。

缺點(diǎn):

  • 增加了兩級觸發(fā)器延時;
  • 高性能計算中,兩個時鐘周期消耗對系統(tǒng)性能有消極的影響。
  • 當(dāng)快時鐘域轉(zhuǎn)到慢時鐘域時,易造成慢時鐘采樣丟失(還未來得及采樣,數(shù)據(jù)就變化了)。

使用條件:

  • 常用于慢時鐘域轉(zhuǎn)到快時鐘域
  • {(Clk_slow的周期)} > {(Clk_fast的周期) + (路徑延時)} ,確保信號可以被Clk_fast采樣到(假設(shè)Clk_fast和Clk_slow起始時刻相同求得)
  • {(data數(shù)據(jù)變化間隔)}>{(Clk_slow的周期)+2*(CIk_fast的周期) +(路徑延時)},確保所有的數(shù)據(jù)變化均能采集到。

結(jié)論:

  • 對于典型的0.25gm 工藝 ASIC 庫中的一個觸發(fā)器,則 MTBF=2.01(day ) ,即觸發(fā)器每兩天便可能出現(xiàn)一次亞穩(wěn)態(tài)。如果將采樣時間和異步事件觸發(fā)頻率都提高,亞穩(wěn)態(tài)出現(xiàn)還要頻繁。
  • 對于同樣的參數(shù),雙鎖存器法可將MTBF提升為9.57* 年,這個數(shù)值足夠保證電子系統(tǒng)穩(wěn)定地運(yùn)行。
  • 兩級觸發(fā)器已經(jīng)將MTBF變得足夠大
  • 三級或者更多級雖然能將亞穩(wěn)態(tài)出現(xiàn)概率 降得更低 ,但是影響電路效率

增加寄存器進(jìn)行同步的方法,只是不斷降低亞穩(wěn)態(tài)出現(xiàn)概率

單bit信號跨時鐘域如何傳輸

慢時鐘到快時鐘的信號傳輸

采用邊沿檢測同步器電路。這種方法通常應(yīng)用在慢速向快速時鐘傳遞過程中,可以檢測輸入信號的上升沿,也可以檢測它的下降沿。輸出的的與門間相差一個快時鐘的延遲:

圖片

其時序圖為:

圖片

適用條件:

  • 輸入數(shù)據(jù)的寬度必須比—個接受時鐘周期加上一個同步觸發(fā)器的hold時間要長,最安全的就是兩個同步周期寬度。
  • 保證: 慢時鐘域的脈沖足夠保持到被快時鐘的同步器拿到

快時鐘到慢時鐘的信號傳輸

對于快時鐘域到慢時鐘域,通常采用脈沖同步器進(jìn)行同步。這個電路結(jié)構(gòu)中,最左邊是快時鐘域下的一個翻轉(zhuǎn)電路。中間是慢時鐘域的兩級同步器,最后是慢時鐘域一級觸發(fā)器+一個邏輯門。

圖片

基本功能是從快時鐘域取出一個單時鐘寬度脈沖,然后在慢時鐘域中建立另一個單時鐘寬度的脈沖。對電路結(jié)構(gòu)的功能分析:

圖片

限制如下:

  • 輸入脈沖之間的最小間隔必須等于兩個同步器時鐘周期。
  • 如果輸入脈沖相互過近,則新時鐘域中的輸出脈沖也緊密相鄰,結(jié)果是輸出脈沖寬度比一個時鐘周期寬。
  • 當(dāng)輸入脈沖時鐘周期大于兩個同步器時鐘周期時,這個問題更加嚴(yán)重。
  • 這種情況下,如果輸入脈沖相鄰太近,則同步器就不能檢測到每個脈沖。

對單bit同步器總結(jié):

圖片

三種同步器總結(jié)

  • 電平同步器,輸入信號必須保持兩個接受時鐘周期寬度,每一次同步之后,輸入信號必須恢復(fù)到無效狀態(tài)。
  • 邊沿檢測同步器,適用于低頻時鐘域向高頻時鐘域傳輸,輸入信號必須保持兩個接受時鐘周期寬度。
  • 脈沖檢測同步器,適用于高頻時鐘域向低頻時鐘域傳輸,輸入的脈沖時間的距離必須保持兩個接收時鐘周 期以上。

采用結(jié)繩法 進(jìn)行單bit信號傳輸

  • 信號從快時鐘域到慢時鐘域過渡時 ,慢時鐘將可能無法對變化太快的信號實(shí)現(xiàn)正確采樣;
  • 上述同步器法對兩個時鐘之間的關(guān)系要求很嚴(yán)格,而“結(jié)繩法”適合任何時鐘域的過渡。

“結(jié)繩法1”

原理:

  • 將快時鐘信號的脈沖周期延長,等到慢時鐘同步采樣后再“解繩”,還原為原來的脈沖周期寬度。
  • 利用數(shù)據(jù)的邊沿作時鐘(圖中上升沿)。(可以將脈沖無限延長,直到可以采集到數(shù)據(jù),然后復(fù)位,要考慮產(chǎn)生數(shù)據(jù)的頻率)。

圖片

  • 這種結(jié)繩法的原理是,數(shù)據(jù)作為Din_clkA ,即當(dāng)數(shù)據(jù)有上升沿(0->1)時,寄存器1的輸出將會穩(wěn)定在高電平,此時等待CIkB采樣;當(dāng)CIkB完成采樣后,寄存器4會輸出高電平,若此時Din_clkA為低電平,那么即可完成復(fù)位,開始下一次采樣等待。
  • 這里需要注意的是當(dāng)數(shù)據(jù)來臨(上升沿)時,ClkB域需要等待3個ClkB才會在寄存器4輸出并完成輸入端的復(fù)位,所以Din_CIkA如果變化較快,即持續(xù)時間短于3個CIkB,也就是Din_ClkA頻率大于CIkB的1/3,那么這時Din_ClkA的變化將無法被采樣到,因為CIkB域需要3個CIkB才能完成采樣,并且此時Din_CIkA必須是低電平才能復(fù)位,采用異步復(fù)位。
  • 在慢時鐘采樣快時鐘的時候,結(jié)繩法適合采樣數(shù)據(jù)較少(即脈沖間隔較大的控制信號。即脈沖間隔Ta>3Tb;即等待3個clkB時鐘后,完成復(fù)位,才允許下一個輸入脈沖。

結(jié)繩法2:

  • 利用數(shù)據(jù)作為異步復(fù)位,置位信號:

圖片

結(jié)繩法3:

  • 利用握手協(xié)議:

圖片

電路功能為:

圖片

結(jié)繩法總結(jié)

  • 結(jié)繩就是將單脈沖延長,以方便采集到數(shù)據(jù)。

結(jié)繩的方法歸結(jié)為2類:

  • 利用脈沖的邊沿做時鐘;
  • 利用脈沖的電平(部分場合要求最小脈沖寬度)做選擇器或者異步復(fù)位,置位。
  • 另外的關(guān)鍵點(diǎn)就是什么時候結(jié)繩結(jié)束(采集到了數(shù)據(jù)就要讓對方回到初始狀態(tài))

這里的操作也有2種方法:

  • 利用采集到的脈沖做異步復(fù)位,置位。
  • 利用采集到的脈沖再次結(jié)繩采集做握手響應(yīng)信號。

總結(jié):

  • 結(jié)繩法可以解決快時鐘域向慢時鐘域過渡的問題,且其適用的范圍很廣。
  • 結(jié)繩法實(shí)現(xiàn)較為復(fù)雜,特別是其效率不高,在對設(shè)計性能要求較高的場合應(yīng)該慎用。

傳輸兩個同時需要的信號(b_load 和b_en)

多個控制信號跨時鐘域僅僅通過簡單的同步器同步有可能是不安全的

當(dāng)兩個信號中出現(xiàn)一點(diǎn)skew時,跨時鐘域不一定能夠正確在同一個時刻被采樣到:

圖片

b_load和b_en同步至a_clk時鐘域,如果這兩個信號有一個小的ske導(dǎo)致在a_clk時鐘域中兩個信號并不是在同一時刻起作用,與在b_clk中的邏輯關(guān)系不同。

解決方法(合并信號)

將b_load和b_en信號在b_clk時鐘域中合并成一個信號b_lden,然后同步至a_clk中。

圖片

對不能合并的情況

如果遇到不能合并的情況,如譯碼信號。如果Bdec[0]、bdec[1]間存在skew將導(dǎo)致同步至a_clk中后譯碼錯誤,出現(xiàn)誤碼。

圖片

在這種情況下,建議加入另一個控制信號,確保bdec[0]、bec[1]穩(wěn)定時采。例如在bdec[0]、bec[1]穩(wěn)定輸出后一到兩個周期b_clk域輸出一個en信號,通知a_clk域此時可以采bdec[O]、bec[1]信號。這樣可確保正確采樣。

小結(jié)

采樣中“快到慢”與“慢到快”在考慮問題時有什么區(qū)別?

慢到快:

  • 只需要考慮亞穩(wěn)態(tài)問題

快到慢:

  • 亞穩(wěn)態(tài)問題
  • 考慮慢時鐘的采樣速率問題。因為根據(jù)采樣定理,采樣頻率低于信號最高頻率2倍的時候,是無法完整采樣的。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電磁兼容
    +關(guān)注

    關(guān)注

    54

    文章

    1832

    瀏覽量

    97747
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5275

    瀏覽量

    119678
  • EDA工具
    +關(guān)注

    關(guān)注

    4

    文章

    264

    瀏覽量

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

    關(guān)注

    14

    文章

    1992

    瀏覽量

    60983
  • 同步電路
    +關(guān)注

    關(guān)注

    1

    文章

    60

    瀏覽量

    13269
收藏 人收藏

    評論

    相關(guān)推薦

    時鐘控制信號傳輸設(shè)計方案

    clk2的時鐘。當(dāng)clk1比clk2的頻率高時,則稱模塊1(相對于模塊2)為快時鐘,而模塊2位為慢時鐘
    發(fā)表于 10-16 15:47 ?1120次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>控制<b class='flag-5'>信號</b><b class='flag-5'>傳輸</b>設(shè)計方案

    CDC時鐘bit和多bit傳輸介紹

    bit(慢時鐘到快時鐘):用快時鐘打兩拍,直接
    的頭像 發(fā)表于 08-29 11:13 ?3836次閱讀
    CDC<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>分<b class='flag-5'>單</b><b class='flag-5'>bit</b>和多<b class='flag-5'>bit</b><b class='flag-5'>傳輸</b>介紹

    關(guān)于時鐘信號的處理方法

    我在知乎看到了多bit信號時鐘的問題,于是整理了一下自己對于時鐘
    的頭像 發(fā)表于 10-09 10:44 ?5835次閱讀

    3.2.1]--1.bit信號時鐘傳輸電路;2.FIFO導(dǎo)言

    硬件加速
    學(xué)習(xí)電子知識
    發(fā)布于 :2022年11月26日 21:08:35

    CDCbit脈沖時鐘的處理介紹

    ,基本原理就是把脈沖信號進(jìn)行展寬。 脈沖同步器應(yīng)用場景: 適用bit脈沖信號時鐘
    的頭像 發(fā)表于 03-22 09:54 ?3414次閱讀

    如何解決bit和多bit時鐘處理問題?

    一、簡要概述: 在芯片設(shè)計過程中,一個系統(tǒng)通常是同步電路和異步電路并存,這里經(jīng)常會遇到CDC也就是時鐘處理的問題,常見的處理方法,可能大家也已經(jīng)比較熟悉了,主要有
    的頭像 發(fā)表于 03-22 10:28 ?6697次閱讀

    總線半握手時鐘處理

    總線半握手時鐘處理 簡要概述: 在上一篇講了bit脈沖同步器
    的頭像 發(fā)表于 04-04 12:32 ?2716次閱讀
    總線半握手<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理

    時鐘處理方法(二)

    時鐘采集從快時鐘傳輸來的信號時,需要根據(jù)信號
    的頭像 發(fā)表于 03-28 13:52 ?818次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(二)

    單位寬信號如何時鐘

    單位寬(Single bit信號即該信號的位寬為1,通??刂?b class='flag-5'>信號居多。對于此類信號,如需
    的頭像 發(fā)表于 04-13 09:11 ?1239次閱讀

    bit信號時鐘傳輸可以使用兩級同步但后果呢?

    看的東西多了,發(fā)現(xiàn)有些并未領(lǐng)會到位。bit信號時鐘
    的頭像 發(fā)表于 05-10 10:08 ?775次閱讀
    <b class='flag-5'>單</b><b class='flag-5'>bit</b><b class='flag-5'>信號</b>的<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b><b class='flag-5'>傳輸</b>可以使用兩級同步但后果呢?

    簡述兩級同步的副作用

    看的東西多了,發(fā)現(xiàn)有些并未領(lǐng)會到位。bit信號時鐘
    的頭像 發(fā)表于 05-11 16:24 ?649次閱讀
    簡述兩級同步的副作用

    FPGA時鐘處理方法(二)

    上一篇文章已經(jīng)講過了bit時鐘的處理方法,這次解說一下多bit
    的頭像 發(fā)表于 05-25 15:07 ?926次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(二)

    CDC時鐘處理及相應(yīng)的時序約束

    CDC(Clock Domain Conversion)時鐘bit和多bit
    的頭像 發(fā)表于 06-21 14:59 ?1680次閱讀

    從處理bit時鐘信號同步問題來入手

    在數(shù)字電路中,時鐘處理是個很龐大的問題,因此將會作為一個專題來陸續(xù)分享。今天先來從處理bit
    發(fā)表于 06-27 11:25 ?1501次閱讀
    從處理<b class='flag-5'>單</b><b class='flag-5'>bit</b><b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b><b class='flag-5'>信號</b>同步問題來入手

    時鐘電路設(shè)計:單位寬信號如何時鐘

    單位寬(Single bit信號即該信號的位寬為1,通??刂?b class='flag-5'>信號居多。對于此類信號,如需
    的頭像 發(fā)表于 08-16 09:53 ?1145次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>電路設(shè)計:單位寬<b class='flag-5'>信號</b>如何<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>