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

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

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

Clock Domain Crossing跨時鐘域檢查

冬至子 ? 來源:陌上風(fēng)騎驢看IC ? 作者:陌上風(fēng)騎驢 ? 2023-06-28 11:42 ? 次閱讀

圖片

如今典型的SOC 芯片都功能復(fù)雜、接口豐富,在眾多復(fù)雜功能中不可能所有功能都同時工作,為了能耗,大多數(shù)SOC 芯片都會切分成多個電壓域,而豐富的接口就意味著龐雜的clock 和reset. 信號跨越不同domain 時都需要特別處理,比如跨power domain 時需要插入isolation 或level shifter 或 ELS, 對power domain 的處理,需要理清power domain 的關(guān)系,定義清楚power intent, 在設(shè)計、驗證、實現(xiàn)端都需要做額外處理;相對于Power domain, 信號跨越Clock domains 給設(shè)計、驗證、實現(xiàn)帶來的挑戰(zhàn)會更大, 今天捋一捋實現(xiàn)端對跨Clock domains 的處理,主要是CDC check.

圖片

從RTL 到GDS 實現(xiàn)過程每一步都需要做CDC check, 以保證輸入正確且實現(xiàn)過程沒有犯錯。

圖片

如何確定一個時鐘域?

相位關(guān)系確定的兩個或多個時鐘稱為同步時鐘,所有被同步時鐘驅(qū)動的時序邏輯,為同一時鐘域;無確定相位關(guān)系的兩個或多個時鐘稱為異步時鐘。同步時鐘跟異步時鐘特別像夫妻關(guān)系跟情人關(guān)系,同步時鐘像夫妻關(guān)系,有固定規(guī)則保護(hù)其正常運轉(zhuǎn),出軌就是setup 或hold 沒修干凈;異步時鐘就如情人關(guān)系,沒有任何規(guī)則可以保證共同財產(chǎn)不受侵犯,沒有任何責(zé)任跟義務(wù),所以需要除了靈肉上的交流之外盡量相互隔離。一個道理:信號是可以夸時鐘域的,情人關(guān)系是可以有的,只要做好必要的隔離不影響社會規(guī)則正常運轉(zhuǎn)就成。

圖片

如果規(guī)避亞穩(wěn)態(tài)?

數(shù)字電路是個1,0分明的世界,除此之外的狀態(tài)都不是穩(wěn)定狀態(tài),被稱為亞穩(wěn)態(tài),亞穩(wěn)態(tài)會導(dǎo)致電路功能失效,本來期待一個1結(jié)果來了一個0,功能失效,只能姐妹六九天長地久了。同步電路通過setup 跟hold 來規(guī)避亞穩(wěn)態(tài)。

圖片

但是對于異步電路而言,因為時鐘相位不固定,無法保證來的一定是0或1,所以無法用靜態(tài)時序分析的辦法來規(guī)避亞穩(wěn)態(tài),辦法總比問題多,聰明的工程師們拍著地中海造出了同步電路,雖然不能徹底規(guī)避亞穩(wěn)態(tài),但是只要使其發(fā)生的概率逼近于無限小,那情人還是情人,靈肉交流就能暢通無阻。

圖片

在數(shù)字電路中用MTBF 來衡量亞穩(wěn)態(tài)造成故障的風(fēng)險,可能每家公司用于計算MTBF 的公式都不同,下面是網(wǎng)上找到的兩個,看上去比較科學(xué),根據(jù)MTBF 可以計算出在故障率可接受的范圍內(nèi)同步器所需要的寄存器級數(shù)。

圖片

圖片

常見的同步電路有哪些?

常見的同步電路有:

  • 由兩級或多級寄存器組成的同步器 :這是最常見的同步器,用于同步單根信號或一組bus, 如果是同步一組bus 則這組bus 必須用格雷碼。

圖片

圖片

  • MUX 同步電路 :如下圖將dready 信號經(jīng)過同步器送到目標(biāo)時鐘域,對于這種同步電路要在設(shè)計上保證:sready 信號必須相對于目標(biāo)時鐘保持m+1 個時鐘周期,也就是說sready 在m+1 個dclk 周期內(nèi)都不能跳變;同時在數(shù)據(jù)傳輸過程data 保持穩(wěn)定,所謂的數(shù)據(jù)傳輸過程即dready 信號在dclk 時鐘域有效期間。

圖片

  • 握手同步電路 :如下圖所示,是一個典型的握手同步電路,握手同步電路通過請求信號跟應(yīng)答信號進(jìn)行數(shù)據(jù)交流,當(dāng)有數(shù)據(jù)需要傳輸時,源時鐘域發(fā)出請求信號,同時發(fā)出數(shù)據(jù),目標(biāo)時鐘域收到請求信號后將數(shù)據(jù)鎖存,同時返回應(yīng)答信號,源時鐘域收到應(yīng)答信號后,可改變數(shù)據(jù),握手同步電路的弊端是latency 太長。對于握手同步電路,在設(shè)計上要保證:sreq 信號必須保持m+1 個dclk 時鐘周期;data 信號必須保持m 個dclk 時鐘周期;dack 信號必須保持m+1 個sclk 時鐘周期;源時鐘域在收到應(yīng)到信號之前必須保持請求信號;在上一個請求傳輸沒有結(jié)束之前不能發(fā)出新的請求。

圖片

  • **異步FIFO: **異步FIFO 應(yīng)該是大家最熟悉的同步電路了,在學(xué)習(xí)Verilog 的時候都應(yīng)該寫過異步FIFO. 異步FIFO 還是常見的筆試面試題,根據(jù)需求算FIFO 深度。

圖片

CDC check 在檢查什么?

實現(xiàn)端的CDC check 工具,在做CDC check 時,首先根據(jù)SDC 確定時鐘域,然后在設(shè)計中提取同步電路;然后再分析同步電路的各種問題,常見的檢查有:

  • Convergence in the Crossover Path : 多路跨時鐘信號通過組合邏輯進(jìn)入同步器,這會導(dǎo)致源時鐘域的glitch 傳遞到目標(biāo)時鐘域。

圖片

  • Divergence in the Crossover Path : 同一個控制信號控制多路數(shù)據(jù)傳輸,如下圖所示,用Trans_en 來同時控制數(shù)據(jù)和地址使能信號,但實際中,由于不同的同步電路『meta-stable settling 』時間不同,所以無法保證數(shù)據(jù)使能跟地址使能同時有效,從而導(dǎo)致功能錯誤。

圖片

  • Divergence of Meta-stable Signal: 不要從同步器中間拉出一根信號用作他用,也不要在同步器中間插入多級buffer 或inverter.

圖片

  • Re-convergence of Synchronized Signals : 多路跨時鐘信號經(jīng)過同步器后做邏輯運算,這跟同步一組bus 而沒用格雷碼的風(fēng)險是類似的,無法保證不同路的同步器在目標(biāo)時鐘域信號穩(wěn)定是同時的,各路同步器之間的skew 是無法確切知道的。

圖片

圖片

實現(xiàn)端做CDC check 是依賴于SDC 的,所以要確保在SDC 中 clock 關(guān)系定義正確。小編很好奇,在驗證端的CDC check 是怎么做的?是否用『斷言』更有效?

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

    關(guān)注

    31

    文章

    5254

    瀏覽量

    119283
  • SoC芯片
    +關(guān)注

    關(guān)注

    1

    文章

    587

    瀏覽量

    34764
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59534
  • 同步器
    +關(guān)注

    關(guān)注

    1

    文章

    91

    瀏覽量

    14572
  • FIFO存儲
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    5946
收藏 人收藏

    評論

    相關(guān)推薦

    處理時鐘(CDC)信號同步的最常見方法

    時鐘( **Clock Domain Crossing,CDC** )通俗地講,就是 **模
    的頭像 發(fā)表于 09-20 11:24 ?3195次閱讀
    處理<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>(CDC)信號同步的最常見方法

    怎么將信號從一個時鐘傳遞到另一個時鐘

    親愛的朋友們, 我有一個多鎖設(shè)計。時鐘為50MHz,200MHz和400Mhz。如果僅使用400MHz時鐘并使用時鐘使能產(chǎn)生200Mhz和50Mhz時鐘
    發(fā)表于 03-11 08:55

    cdc路徑方案幫您解決時鐘難題

    這一章介紹一下CDC也就是時鐘可能存在的一些問題以及基本的時鐘處理方法。
    的頭像 發(fā)表于 11-30 06:29 ?6999次閱讀
    cdc路徑方案幫您解決<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>難題

    關(guān)于FPGA中時鐘的問題分析

    時鐘問題(CDC,Clock Domain Crossing )是多
    發(fā)表于 08-19 14:52 ?3230次閱讀

    關(guān)于時鐘的詳細(xì)解答

    每一個做數(shù)字邏輯的都繞不開時鐘處理,談一談SpinalHDL里用于時鐘處理的一些手段方法
    的頭像 發(fā)表于 04-27 10:52 ?4159次閱讀
    關(guān)于<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的詳細(xì)解答

    如何調(diào)試設(shè)計中的時鐘交匯問題

    本篇博文中的分析是根據(jù)客戶真實問題撰寫的,該客戶發(fā)現(xiàn)即使時序已得到滿足的情況下,硬件功能仍出現(xiàn)錯誤。最后發(fā)現(xiàn),問題與時鐘交匯 (Clock Domain
    的頭像 發(fā)表于 08-20 09:32 ?5314次閱讀
    如何調(diào)試設(shè)計中的<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>交匯問題

    如何調(diào)試設(shè)計中的時鐘交匯問題

    本篇博文中的分析是根據(jù)客戶真實問題撰寫的,該客戶發(fā)現(xiàn)即使時序已得到滿足的情況下,硬件功能仍出現(xiàn)錯誤。最后發(fā)現(xiàn),問題與時鐘交匯 (Clock Domain
    發(fā)表于 08-02 11:44 ?312次閱讀
    如何調(diào)試設(shè)計中的<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>交匯問題

    CDC時鐘的基礎(chǔ)概念

    時鐘clock domain:以寄存器捕獲的時鐘來劃分時鐘
    的頭像 發(fā)表于 08-29 15:11 ?2362次閱讀

    CDC時鐘的基礎(chǔ)概念介紹

    時鐘clock domain:以寄存器捕獲的時鐘來劃分時鐘
    的頭像 發(fā)表于 12-26 15:21 ?1584次閱讀

    介紹使用SVA的幾個優(yōu)勢

    SVA支持多時鐘clock domain crossing (CDC))邏輯,例如異步FIFO。
    的頭像 發(fā)表于 01-13 16:00 ?776次閱讀

    時鐘電路設(shè)計總結(jié)

    時鐘操作包括同步時鐘操作和異步
    的頭像 發(fā)表于 05-18 09:18 ?628次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>電路設(shè)計總結(jié)

    FPGA時鐘處理方法(一)

    時鐘是FPGA設(shè)計中最容易出錯的設(shè)計模塊,而且一旦時鐘出現(xiàn)問題,定位排查會非常困難,因為
    的頭像 發(fā)表于 05-25 15:06 ?1759次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(一)

    FPGA時鐘處理方法(二)

    上一篇文章已經(jīng)講過了單bit時鐘的處理方法,這次解說一下多bit的時鐘方法。
    的頭像 發(fā)表于 05-25 15:07 ?858次閱讀
    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 ?1568次閱讀

    如何處理時鐘這些基礎(chǔ)問題

    對于數(shù)字設(shè)計人員來講,只要信號從一個時鐘跨越到另一個時鐘,那么就可能發(fā)生亞穩(wěn)態(tài)。我們稱為“時鐘
    發(fā)表于 01-08 09:39 ?447次閱讀
    如何處理<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>這些基礎(chǔ)問題