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

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

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

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

冬至子 ? 來源:IC設(shè)計er ? 作者:Fantasy ? 2023-09-20 11:24 ? 次閱讀

時鐘域( Clock Domain Crossing,CDC )通俗地講,就是 模塊之間數(shù)據(jù)交互時用的不是同一個時鐘進行驅(qū)動 ,如下圖所示:左邊的模塊FA由C1驅(qū)動,屬于C1時鐘域;右邊的模塊FB由C2驅(qū)動,屬于C2時鐘域。

圖片

跨時鐘域信號處理問題,首先要考慮的就是亞穩(wěn)態(tài)問題。

為了使觸發(fā)器正常工作,輸入信號和時鐘必須滿足觸發(fā)器的建立和保持時間要求。在上面的圖2中,信號A與目標時鐘域C2是異步的,因為C1和C2屬于不同時鐘域。一旦遇到異步信號進入時鐘域,就不太可能滿足建立和保持時序約束,因此觸發(fā)器可能以進入亞穩(wěn)態(tài)。在下圖中,F(xiàn)A的輸出信號A變化非常接近C2的時鐘邊緣,因此違反了FB的建立時間要求, 它可能導(dǎo)致目標觸發(fā)器FB違反setup或hold時間。輸出信號B可能會振蕩不確定時長。因此輸出是不穩(wěn)定的,也可能會在C2的下一個時鐘邊緣到達之前穩(wěn)定到某個值,這種現(xiàn)象被稱為亞穩(wěn)態(tài)。

圖片

如果輸入信號A變化非常接近時鐘C2的上升沿,那么目標觸發(fā)器的輸出是亞穩(wěn)態(tài)的。因此,可能最終穩(wěn)定到信號B1和B2所描述的1或0。

處理跨時鐘域**(CDC)信號同步**的最常見方法之一是使用同步器電路。同步器電路的目的是通過最小化亞穩(wěn)態(tài)的可能性和增加MTBF來保護下游邏輯。其中一個基本的同步器電路是 兩級觸發(fā)器同步器 (也稱為2-FF同步器)。

圖片

2-** FF同步器處理跨時鐘域信號同步**

兩級觸發(fā)器同步器是一種電路,其中兩個觸發(fā)器在目標時鐘域中背靠背連接。如果第一個觸發(fā)器由于建立/保持沖突而進入亞穩(wěn)態(tài),則第二個觸發(fā)器會提供足夠的時間讓第一個觸發(fā)器脫離亞穩(wěn)態(tài)。從理論上講,當(dāng)?shù)诙€FF對值進行采樣時,第一個FF可能仍處于亞穩(wěn)態(tài),因此可以對不正確的值進行采樣,使用超過2級FF作為同步器(3或4級FF),可以增加MTBF。

2-FF同步器電路非常適合單比特控制信號的同步 ,其中輸入切換速率小于目標時鐘頻率,換句話說,如果目標時鐘頻率超過源時鐘頻率的1.5倍,則不會丟失數(shù)據(jù) 。但是,如果源和目標時鐘頻率幾乎相同或目標時鐘頻率較慢,則源必須保持其值穩(wěn)定,以便目標捕獲它,然后再更改為下一個值。這可以通過 握手時鐘域交叉 (CDC)技術(shù)來處理。

圖片

手機制處理跨時鐘域信號同步

在握手技術(shù)中,源時鐘域?qū)?*“請求”信號**發(fā)送到使用 2-FF同步器的目標域。一旦目標域收到請求,它就會向源域發(fā)送“ack”信號,該源域使用 2-FF 同步器進行同步。ack 信號向源時鐘域指示目標已收到該值,源時鐘域可以更新其值。握手機制有許多實現(xiàn)版本,但原理保持不變: 同步request和ack信號request信號將在總線上指示一個新值即將發(fā)送,ack信號將指示可以更新數(shù)據(jù)總線。

上述機制在接口的帶寬使用方面確實有一個缺點。對于握手機制,數(shù)據(jù)總線在接收ack信號時無法更新,存在瓶頸,可以使用雙時鐘異步FIFO來解決這個問題。正確設(shè)計的FIFO可以增加整個接口的帶寬,同時仍然保持跨時鐘域的可靠通信。

異步FIFO可以被視為數(shù)據(jù)容器,其中發(fā)送方以源時鐘速率將數(shù)據(jù)寫入,接收器以目標時鐘速率彈出數(shù)據(jù)。FIFO的深度應(yīng)該足夠,以便它不能溢出或下溢數(shù)據(jù)。

圖片

異步FIFO處理跨時鐘域信號同步

時鐘異步FIFO需要用到雙端口SRAM,一個控制寫入指針(數(shù)據(jù)應(yīng)在SRAM中寫入的地址)的源代碼控制塊,一個生成讀取指針(應(yīng)在SRAM中讀取數(shù)據(jù)的地址)的目標控制塊和二進制到格雷碼編碼器塊以及2-FF同步器電路。指針由各自的控制塊作為循環(huán)緩沖區(qū)進行管理。但是,要知道何時寫入(FIFO 未滿)和何時讀取(FIFO 不為空),源時鐘、目標時鐘控制塊需要分別具有讀取和寫入指針信號。將指針傳輸?shù)搅硪粋€時鐘域并非易事。由于指針是多位信號,因此直接使用2-FF同步器不是一個好的選擇。因此,兩個指針都通過二進制到格雷碼編碼塊傳遞。這確保了在傳輸值時,只有矢量的一個位從一個時鐘更新到另一個時鐘,從而消除了在時鐘邊沿上同步多位總線的問題。

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

    關(guān)注

    14

    文章

    1992

    瀏覽量

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

    關(guān)注

    1

    文章

    91

    瀏覽量

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

    關(guān)注

    0

    文章

    103

    瀏覽量

    5953
  • 時鐘驅(qū)動器
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    13804
  • SRAM存儲器
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    13254
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    三種時鐘處理方法

    ,所以意義是不大的?! ?b class='flag-5'>方法二:異步雙口RAM  處理多bit數(shù)據(jù)的時鐘,一般采用異步雙口RAM。假設(shè)我們現(xiàn)在有一個
    發(fā)表于 01-08 16:55

    三種FPGA界最常用的時鐘處理法式

    處理方法,這三種方法可以說是FPGA界最常用也最實用的方法,這三種方法包含了單bit和多bit
    發(fā)表于 02-21 07:00

    如何處理好FPGA設(shè)計中時鐘間的數(shù)據(jù)

    介紹3種時鐘處理方法,這3種方法可以說是FPGA界最常
    發(fā)表于 07-29 06:19

    時鐘信號的幾種同步方法研究

    時鐘信號同步方法應(yīng)根據(jù)源時鐘與目標
    發(fā)表于 05-09 15:21 ?63次下載
    <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><b class='flag-5'>方法</b>研究

    FPGA界最常用也最實用的3種時鐘處理方法

    介紹3種時鐘處理方法,這3種方法可以說是FPGA界最常
    發(fā)表于 11-15 20:08 ?1.4w次閱讀

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

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

    揭秘FPGA時鐘處理的三大方法

    時鐘處理方法,這三種方法可以說是 FPGA 界最常
    的頭像 發(fā)表于 12-05 16:41 ?1570次閱讀

    CDC單bit脈沖時鐘處理介紹

    單bit 脈沖時鐘處理 簡要概述: 在上一篇講了總線全握手時鐘
    的頭像 發(fā)表于 03-22 09:54 ?3394次閱讀

    介紹3種方法時鐘處理方法

    介紹3種時鐘處理方法,這3種方法可以說是FPGA界最常
    的頭像 發(fā)表于 09-18 11:33 ?2.2w次閱讀
    介紹3種<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><b class='flag-5'>方法</b>

    FPGA時鐘處理方法(二)

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

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

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

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

    在數(shù)字電路中,時鐘處理是個很龐大的問題,因此將會作為一個專題來陸續(xù)分享。今天先來從處理單bit
    發(fā)表于 06-27 11:25 ?1484次閱讀
    從<b class='flag-5'>處理</b>單bit<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)的應(yīng)從對亞穩(wěn)定性和同步性的基本了解開始。
    的頭像 發(fā)表于 06-27 14:25 ?948次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>電路設(shè)計—單比特<b class='flag-5'>信號</b>傳輸

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

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