色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

為什么CDC是問題?常用的CDC設計思路

冬至子 ? 來源:數字邏輯電路小站 ? 作者:孟祥志 ? 2023-06-27 16:41 ? 次閱讀

CDC(Clock Domain Crossing,時鐘穿越)有很多的論文都討論過這個主題。本文主要從原理上分析一下為什么CDC是問題、常用的CDC設計思路。不能算權威總結,只是對工作幾年CDC設計的經驗的一個總結。

源起:建立時間和保持時間

集成電路設計專業的同學期末考試肯定考過“setup time"或者”hold time"的定義,這個也是應屆畢業生面試數字集成電路設計崗位的“明牌”必面題目。

先回顧一下setup time(建立時間)和hold time (保持時間)的定義:

建立時間(t su ) 是在時鐘翻轉(對于正沿觸發寄存器為0→1的翻轉)之前數據輸入(D)必須有效的時間。

維持時間(t hold )是在時鐘邊沿之后數據輸入必須仍然有效的時間。

對于單一時鐘的電路進行 時序分析 ,最主要是為了滿足這些條件。

比如,說你的設計時序“很緊張”,往往是兩級寄存器之間的組合邏輯很多,延時很長。從上一級的數據傳到下一級時,無法滿足下一級的建立時間。我們這個時候需要做時序修復(timing fix)。

單時鐘這個問題比較好考慮,因為數據什么時候開始發送是明確的——上一個時鐘沿——我們能夠有很多辦法去修復時序。(比如前文推送的“模板”)

但對于多時鐘設計(異步電路),從一個時鐘域向另一個時鐘域送數據,時鐘(周期)不同,在一個時鐘域隨時隨刻都可能收到另外時鐘域的數據,這自然是不能滿足建立時間的。

不滿足建立時間,那么數據的傳輸就會失敗。何謂“失敗”?就是我想傳一個數據1過去,我可能成功的傳了個1,也可能傳了個0,也可能我不知道傳了什么值。

不滿足建立時間,簡單的理解就是:目標時鐘域(dest. clock) 的時鐘沿和發起時鐘域的數據(src. clock)來的時間 很接近 ,而時鐘沿和數據的誰先誰后錯開一點,傳輸到下一級的數據就是完全不一樣,這種不同這是不可接受的。

因為不滿足建立時間,我的數據是不的、不可預知的、不精確的。對于單個寄存器而言,我們叫做 亞穩態 (Metastability)。

總結一下: 在數據從一個時鐘域向另一個時鐘域傳輸時,無法滿足建立時間,數據在被目標時鐘域寄存器采值時,會進入亞穩態,無法準確傳輸數據

我們用 時鐘穿越 (CDC,Clock Domain Crossing)來描述我們現在處理的這種情況。把所有的這種問題都叫做 時鐘穿越問題 (CDC issue)。

隨著工藝技術的迭代,很多的公司的集成電路項目出現錯誤,都是出現在CDC的解決方法有問題,或者驗證不夠充分上。

本章節先討論1比特的情況。

那如何解決“1bit的時鐘穿越”問題呢?

既然根子上是亞穩態的問題,那我就破掉亞穩態

破掉亞穩態有很多種方法,方法都是讓數據來到目標時鐘域的時鐘沿之前穩定住。

延長源信號的方法(不推薦):

我要傳輸1,那我就在源時鐘域對信號1持續上拉;我要傳輸0,那我就在源時鐘域對信號0持續下拉。換句話說,就是讓想傳的數據1和0都維持“ 足夠長 ”的時間——長到我這個時鐘沿采不到,下個時鐘沿肯定能采到。

這就是我們看很多年前"老代碼"中很普遍的方法:延長源信號長度。比如對源信號連續打多少拍,然后“或”起來組成一個信號使用。

或者干脆不做任何處理直接穿越,前提是能夠證明雖然這個信號是一個CDC信號,但是不會輕易改變(比如寄存器初始化之后的一個控制信號,只會在初始化階段改變)。

延長源信號方法總結:

  1. 很多老的設計是直接CDC使用,或者打多拍然后進行傳輸。

  2. 優點:簡單,邏輯比較少

  3. 缺點:

    3.1.如果源信號的 前提假設發生變化 ,容易出現bug。如第二代設計的時鐘頻率比變化,或者一個不輕易改變的配置信號(control signal)“與”上了一個經常變的控制信號。不經過仔細驗證,維持原有設計,很容易出“大“問題。

    3.2.邏輯雖然簡單,但是設計不具有通用性。比如你需要對不同時鐘頻率比例的進行不同的打拍。

  4. 所有可以用“延長源信號”方法的地方,都可以加上同步器(syncer)邏輯 ,這更加保險。

  5. 總結:除非維護不好修改的歷史代碼,新代碼不推薦。

同步器(synchronizer, syncer)

那破掉亞穩態還有什么辦法呢?

方法很簡單,就是在目標時鐘域 加速穩定過程

D觸發器是一個簡單的加速穩定的簡單結構。雖然1級D觸發器,可能不滿足建立時間,但是后面再跟一個D觸發器,就會 使不穩態要么迅速變化為傳輸0,要么迅速變化為傳輸1

兩級D觸發器的串聯,就是一個簡單的同步器(synchronizer, 或者syncer,或者Sync2D)。

A synchronizer is a device that samples an asynchronous signal and outputs a version of the signal that has transitions synchronized to a local or sample clock."

這種穩定是概率性的,與工藝相關的。穩定下來而不是處于亞穩態的時間,有數學上的MTBF(平均失敗時間)公式進行計算。在日常的設計中,一般工藝廠會告知你的一個參數公式(或者是一個查找表),輸入你的輸入輸出頻率,就能查找到在當前工藝下的MTBF,然后比對MTBF的要求決定是不是選擇SYNC2D(打兩拍的同步器)。

如果SYNC2D不滿足MTBF的要求,那么就再接一級D觸發器,組成SYNC3D(打三拍的同步器)。SYNC3D的MTBF比SYNC2D會長許多數量級。(我在前東家做一個設計,同樣的時鐘頻率,查MTBF表SYCN2D的MTBF是10天,SYNC3D的平均失敗時間是50年……)

我在過去做14nm工藝下的設計,項目主管就要求所有的SYNC2D替換為SYNC3D。

我們這里暫時用SYNC2D作為例子(SYNC3D同理)。

圖片

同步器有什么好處?

能夠安全的排除亞穩態。

同步器有什么壞處或者局限?

目的時鐘域會晚幾個周期。

這個不算是個問題,既然是跨時鐘域的,晚兩三個周期沒什么問題。

** 數據傳過來,對SYNC2D而言,會delay2個周期或者3個周期。** 也就是說你不能確定是2個周期后還是3個周期后能傳過目標數據來。對于單比特沒有問題,對于多比特存在對齊的問題。 同步器 只能保證數據沒有亞穩態,不能保證是正確數據

怎么理解呢?就是說,你給我同步器什么數據,我都能給你住。但是 你若給我的是錯誤的值,這不能怨我

例如,在這個周期給同步器輸入端一個信號1,同步器在能給你穩到0或者1,你只要在發送端的下個周期還給同步器1就好了。經過同步器一走,給個干凈的1給你。

1.jpg

同步器的正確前提是,信號必須穩定足夠長的時間(能夠持續上拉,或者下拉)。

那么多長算長呢?前人理論已經有了研究結論了。在同步器設計理論中,叫做”1.5x規則“或者”三沿規則“: 輸入端的信號長度,至少是1.5倍接收時鐘周期的長度,或者三個接收時鐘沿的長度

滿足了這個規則,因為是三個邊沿,那么肯定會有一個安全的上升沿可以采到。

這是非常重要的一個規則。只要滿足了這一規則,同步器就是安全的。

使用同步器本身,可能會漏采或者多采。

其實這只是上一個要點的延伸。同步器是一個穩定單元,只能做到”穩“,你需要“穩+準”,這超出了同步器的能力范圍,需要加上一些配合電路才能工作。但幾乎所有的CDC電路在時鐘穿越的核心邏輯,同步器都包含其中。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    120985
  • D觸發器
    +關注

    關注

    3

    文章

    164

    瀏覽量

    47985
  • CDC
    CDC
    +關注

    關注

    0

    文章

    57

    瀏覽量

    17838
  • 同步器
    +關注

    關注

    1

    文章

    98

    瀏覽量

    14678
  • 時鐘電路
    +關注

    關注

    10

    文章

    239

    瀏覽量

    50769
收藏 人收藏

    評論

    相關推薦

    FPGA User Guide之report_cdc

    report_cdc 可以報告設計中所有的 cdc 路徑并將其分類(前提是時鐘被約束好),我們可以基于該報告來檢查設計中是否有不安全的 cdc 路徑。
    發表于 11-28 10:53 ?1238次閱讀

    cdc_acm類設備與主機建立通信問題

    USB設備定義成cdc_acm類并與linux主機枚舉成功后,在未進行數據傳輸時出現此信息:cdc_acm:failed to set dtr/rts有知道這是什么引起的嗎?求思路,拜謝大家了
    發表于 12-20 08:45

    infosphere CDC性能調優的文檔

    infosphere CDC性能調優的文檔
    發表于 09-07 09:30 ?7次下載
    infosphere <b class='flag-5'>CDC</b>性能調優的文檔

    08 CDC設備

    08 CDC設備
    發表于 10-11 09:17 ?9次下載
    08 <b class='flag-5'>CDC</b>設備

    火幣為什么要停止CDC交易

    一石激起千層浪,火幣公告發出之后迅速引發連鎖反應,先是ZB交易所緊隨其后關閉CDC交易,緊接著CDC項目負責人楊寧迅速接受媒體采訪,倒苦水撇清關系。更多媒體開始深挖,CDC更多內幕也被披露出來。廣大群眾這才知道,原來
    發表于 11-08 11:33 ?6456次閱讀

    如何使用report_cdc命令分析、調試和修復CDC問題

    了解如何使用命令report_cdc分析,調試和修復設計中的CDC問題。 命令report_cdc是一個僅限TCL的命令,用于分析您的設計并識別設計中潛在的CDC結構問題并將其標記為
    的頭像 發表于 11-21 06:05 ?4784次閱讀

    ic設計——CDC的基本概念

    一個系統中往往會存在多個時鐘,這些時鐘之間有可能是同步的,也有可能是異步的。如果一個系統中,異步時鐘之間存在信號通道,則就會存在CDC(clock domain crossing)問題。在下面的文章里,我們將會討論CDC的一些技術細節。
    發表于 01-04 16:59 ?1.5w次閱讀
    ic設計——<b class='flag-5'>CDC</b>的基本概念

    CapTIvate技術中CDC設計平臺的介紹(1)

    CapTIvate Technology軟件設計快速指南(二) - CapTIvate軟件設計中心(CDC)介紹1
    的頭像 發表于 04-16 06:33 ?3396次閱讀
    CapTIvate技術中<b class='flag-5'>CDC</b>設計平臺的介紹(1)

    CDC設備枚舉過程解析

    本篇筆記將詳述 CDC設備枚舉過程,讓大家對整體的枚舉過程有個概念。
    的頭像 發表于 10-09 11:43 ?2822次閱讀
    <b class='flag-5'>CDC</b>設備枚舉過程解析

    vc++-CDC常用函數總結

    vc++-CDC常用函數總結(電源技術論壇)-該文檔為vc++-CDC常用函數總結講解文檔,是一份還算不錯的參考文檔,感興趣的可以下載看看,,,,,,,,,,,,,,,,,
    發表于 09-27 15:40 ?2次下載
    vc++-<b class='flag-5'>CDC</b><b class='flag-5'>常用</b>函數總結

    STM32 USB如何配置多個CDC設備—5個CDC設備

    title: STM32 USB如何配置多個CDC設備—5個CDC設備,date: 2021/1/18 20:10:25 +8,STM32 USB如何配置多個CDC設備—5個CDC設備
    發表于 12-28 19:43 ?31次下載
    STM32 USB如何配置多個<b class='flag-5'>CDC</b>設備—5個<b class='flag-5'>CDC</b>設備

    各種類型CDC路徑中的毛刺問題

    CDC 驗證不僅在 RTL 有必要,在門級也必不可少。在 RTL,重點是通過識別 CDC 結構和方案來確定時鐘域和 CDC 路徑。
    的頭像 發表于 03-30 11:03 ?1215次閱讀

    HD74CDC2509B 數據表

    HD74CDC2509B 數據表
    發表于 06-27 18:49 ?0次下載
    HD74<b class='flag-5'>CDC</b>2509B 數據表

    HD74CDC2510B 數據表

    HD74CDC2510B 數據表
    發表于 06-27 18:49 ?0次下載
    HD74<b class='flag-5'>CDC</b>2510B 數據表

    cdc減振器控制原理是什么

    CDC(Continuous Damping Control,連續阻尼控制)是一種先進的車輛懸掛系統技術,它能夠根據車輛的行駛條件實時調整懸掛的阻尼力,以提供最佳的乘坐舒適性和操控穩定性。CDC系統
    的頭像 發表于 09-18 15:16 ?926次閱讀
    主站蜘蛛池模板: 免费看黄色一级 | 伸到同桌奶罩里捏她胸h | 暖暖直播免费观看韩国 | 无码137片内射在线影院 | 三级中国免费的 | 最近中文字幕在线看免费完整版 | 白丝制服被啪到喷水很黄很暴力 | 边做边爱免费视频播放 | 伦理片92伦理午夜 | 美女被C污黄网站免费观看 美女白虎穴 | 中文字幕乱码亚洲无线三区 | 欧美精品专区免费观看 | 我的漂亮朋友在线观看全集免费 | 和尚轮流澡到高潮H | 人人澡人人擦人人免费 | 国产 日韩 欧美 综合 激情 | 中文字幕在线不卡精品视频99 | 久久成人无码国产免费播放 | 亚洲在线成色综合网站 | 欧美性情一线免费http | 国产精品高清视亚洲一区二区 | 欧美精品久久久久性色AV苍井 | 伊人国产在线播放 | 一区在线观看在线 | 自拍视频亚洲综合在线精品 | 美女拉开腿让男生桶到爽 | 亚洲一区二区三区乱码在线欧洲 | 国产精品久久久久久熟妇吹潮软件 | 熟妇无码乱子成人精品 | 空姐厕所啪啪啪 | 久久婷婷五月综合色丁香 | 国产成人高清精品免费5388密 | 偷拍 自怕 亚洲 在线 | 午夜性伦鲁啊鲁免费视频 | 秋霞电影网午夜一级鲁丝片 | 囯产精品久久久久久久久蜜桃 | 草神被爆漫画羞羞漫画 | 暖暖日本手机免费完整版在线观看 | 十分钟免费视频大全在线观看 | 久久一本综合 | 亚洲视频中文字幕在线 |