0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

簡(jiǎn)述CDC當(dāng)中最典型錯(cuò)誤案例

FPGA自習(xí)室 ? 來(lái)源:FPGA自習(xí)室 ? 作者:FPGA自習(xí)室 ? 2021-04-12 16:47 ? 次閱讀

一、主要概念

同步邏輯和異步邏輯:時(shí)鐘域?yàn)橛蓡蝹€(gè)時(shí)鐘或具有固定相位關(guān)系的時(shí)鐘驅(qū)動(dòng)的設(shè)計(jì)部分。也就是說(shuō),在一個(gè)模塊中一個(gè)時(shí)鐘和他的翻轉(zhuǎn)或者分頻時(shí)鐘認(rèn)為是相同的時(shí)鐘域,其所驅(qū)動(dòng)的邏輯是同步邏輯。在一個(gè)模塊中不具有相同相位和時(shí)間關(guān)系的時(shí)鐘被視為不同的時(shí)鐘域,其所驅(qū)動(dòng)的邏輯是異步邏輯。

亞穩(wěn)態(tài):如果數(shù)據(jù)傳輸中不滿足觸發(fā)器的建立時(shí)間和保持時(shí)間,或者復(fù)位過(guò)程中復(fù)位信號(hào)的釋放相對(duì)于有效時(shí)鐘沿的恢復(fù)時(shí)間(recovery time)不滿足,就可能產(chǎn)生亞穩(wěn)態(tài)。亞穩(wěn)態(tài)就是無(wú)法避免的,亞穩(wěn)態(tài)主要發(fā)生在異步信號(hào)檢測(cè)、跨時(shí)鐘域信號(hào)傳輸以及復(fù)位電路等常用設(shè)計(jì)中。

MTBF: 平均無(wú)故障工作時(shí)間,英文全稱:Mean time between failures;利用平均故障間隔時(shí)間(MTBF)公式可以預(yù)測(cè)亞穩(wěn)態(tài)的發(fā)生,MTBF越大則說(shuō)明亞穩(wěn)態(tài)對(duì)電路產(chǎn)生的影響越小,反之亦然。

f6f4244c-957b-11eb-8b86-12bb97331649.png

其中C1和C2是常數(shù),依賴于構(gòu)建觸發(fā)器所使用的技術(shù);tMET為在不引起同步失敗的前提下亞穩(wěn)態(tài)輸出持續(xù)時(shí)間,時(shí)間越長(zhǎng)MTBF指數(shù)級(jí)增大,所以高頻電路兩級(jí)觸發(fā)器不夠可能要用三級(jí)觸發(fā)器來(lái)保證;fclk和fdata分別是同步時(shí)鐘和數(shù)據(jù)翻轉(zhuǎn)率;所以在不影響功能前提下,可以降頻工作頻率和數(shù)據(jù)的翻轉(zhuǎn)頻率,都可以有效的增大MTBF。

二、CDC典型錯(cuò)誤場(chǎng)景

在芯片設(shè)計(jì)過(guò)程中,CDC正向確認(rèn)時(shí)經(jīng)常會(huì)發(fā)現(xiàn)幾種典型的錯(cuò)誤場(chǎng)景:沒(méi)有處理直接裸跨、輸入同步器前組合邏輯輸出以及多路扇出和重新聚合場(chǎng)景等,還有一些不太常見(jiàn)情況未列出,請(qǐng)參閱文末資料。

2.1直接裸跨

f705ca62-957b-11eb-8b86-12bb97331649.png

如上圖,如果CLK B采樣DA,而DA是變化的(在CLK的上升邊緣和下降D)的邊緣,則DB將是亞穩(wěn)態(tài)的,這種就是沒(méi)有使用同步器,顯然是不合理的。

2.2毛刺(Glitch)

異步路徑時(shí)序工具不會(huì)進(jìn)行時(shí)序分析,這條道路上的任何邏輯都必須謹(jǐn)慎精心設(shè)計(jì)并驗(yàn)證,因?yàn)檫壿嬁赡軐?dǎo)致故障并在下游產(chǎn)生功能錯(cuò)誤。如下圖所示,盡管兩個(gè)源觸發(fā)器同時(shí)給出脈沖,但由于布局布線以及環(huán)境原因而引起的傳播延遲(Td)不同,導(dǎo)致DA1和DA2信號(hào)不能同時(shí)到達(dá),因此在CLKA時(shí)鐘域下A&B會(huì)產(chǎn)生毛刺,而在CLKB時(shí)鐘域下產(chǎn)生一個(gè)假脈沖,導(dǎo)致后繼電路異常。正確的做法是將A&B在CLKA時(shí)鐘域下打一拍寄存器輸出。

f721daa4-957b-11eb-8b86-12bb97331649.png

此外,還有另外一種情況出現(xiàn)漏采,如下圖所示,DB1在CLKB時(shí)鐘域下應(yīng)有的高電平信號(hào),由于DA1和DA2的傳輸延時(shí)不同,導(dǎo)致在CLKB下沒(méi)有傳遞出去。

f7703a64-957b-11eb-8b86-12bb97331649.png

2.3多路扇出

單個(gè)信號(hào)扇出輸入到多個(gè)同步器時(shí),由于輸入信號(hào)到達(dá)的同步器的時(shí)間不同(傳輸延時(shí)Td不同),同步可能需要一拍或者兩拍完成同步,此時(shí)同步后的各個(gè)信號(hào)之間可能存在錯(cuò)拍問(wèn)題。如下圖所示,DA1和DA2信號(hào)同步后分別是Fsm1_en 和 Fsm2_en信號(hào),設(shè)計(jì)時(shí)如果仍認(rèn)為它們是相同的信號(hào),就會(huì)導(dǎo)致邏輯功能錯(cuò)誤。

f78adcc0-957b-11eb-8b86-12bb97331649.png

2.4重新聚合(RECONVERGENCE)

在多bit跨時(shí)鐘傳輸過(guò)程中,如果各個(gè)bit之間分別使用單bit同步器進(jìn)行跨時(shí)鐘處理,在目的時(shí)鐘域又重新聚合起來(lái)。如下圖所示,DA1和DA2由于傳輸delay不同,在 CLKB上升沿采樣時(shí),就會(huì)有2’10不期望值的出現(xiàn),這樣DB1和DB2進(jìn)行邏輯處理(聚合)時(shí),也會(huì)得到不期望的值,這也是總線不能采用單bit同步器進(jìn)行跨時(shí)鐘處理的原因。此外,格雷碼是可以使用單bit同步器進(jìn)行處理的,AFIFO就是其典型設(shè)計(jì)。

f7a40916-957b-11eb-8b86-12bb97331649.png

擴(kuò)展:上述指的兩個(gè)兩級(jí)觸發(fā)器的單bit同步器,可以擴(kuò)展為兩個(gè)AFIFO總線跨時(shí)鐘,如果設(shè)計(jì)不當(dāng),只使用其中一個(gè)AFIFO的empty作為兩個(gè)AFIFO讀判斷,由于格雷碼同步的不確定性,導(dǎo)致兩個(gè)AFIFO的empty信號(hào)不一致,當(dāng)出口兩組總線聚合時(shí),就會(huì)發(fā)生錯(cuò)拍問(wèn)題,從而導(dǎo)致功能異常。解決辦法是兩個(gè)AFIFO的讀條件應(yīng)該關(guān)聯(lián)或者使用一個(gè)大的AFIFO.

Referencecadencecdc(1)

Reference Spyglass cdc(2)

編輯:jq

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

    關(guān)注

    0

    文章

    57

    瀏覽量

    18147
  • 復(fù)位電路
    +關(guān)注

    關(guān)注

    13

    文章

    325

    瀏覽量

    45138

原文標(biāo)題:CDC(四) CDC典型錯(cuò)誤案例

文章出處:【微信號(hào):FPGA_Study,微信公眾號(hào):FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何用AN75779實(shí)現(xiàn)CDC通信?

    我想通過(guò)設(shè)計(jì)應(yīng)用代碼 AN75779 實(shí)現(xiàn) CDC 通信,需要一些應(yīng)用說(shuō)明或任何參考資料。 此外,我還想知道我需要對(duì) AN75779 的工作設(shè)計(jì)進(jìn)行哪些修改,對(duì)于 CDC,我需要使用哪種應(yīng)用程序進(jìn)行通信。 如果能對(duì)該主題進(jìn)行詳細(xì)描述,將會(huì)有所幫助。
    發(fā)表于 05-19 07:11

    求助,關(guān)于IMXRT1062主機(jī)CDC USB問(wèn)題求解

    我正在使用帶有 USB cdc 主機(jī)的 IMXRT1062。我用了一個(gè)例子,但我不明白它是如何工作的。 此示例從終端獲取數(shù)據(jù)并將其發(fā)送到 USB 上,反之亦然。我想通過(guò)我的代碼發(fā)送和接收數(shù)據(jù)。我
    發(fā)表于 04-08 06:49

    多板 PCB 組裝中最常見(jiàn)的邏輯錯(cuò)誤

    許多電子系統(tǒng)和產(chǎn)品并不只使用1個(gè)PCB,而是可能包含多個(gè)電路板、單個(gè)電路板和多個(gè)外部模塊,或者通過(guò)電纜與外部設(shè)備連接。在多板系統(tǒng)中,兩個(gè)電路板之間可能會(huì)出現(xiàn)邏輯錯(cuò)誤,但如果沒(méi)有全面審查設(shè)計(jì),可能
    的頭像 發(fā)表于 03-14 18:15 ?356次閱讀
    多板 PCB 組裝<b class='flag-5'>中最</b>常見(jiàn)的邏輯<b class='flag-5'>錯(cuò)誤</b>

    STM32 HID和CDC組合設(shè)備無(wú)法枚舉成功是哪里出了問(wèn)題?

    想用STM32F103C8T6最小系統(tǒng)板試驗(yàn)HID和CDC組合設(shè)備,單獨(dú)的HID和CDC都能枚舉成功,但是參考網(wǎng)上多篇大佬的組合設(shè)備的教程,應(yīng)該是一步步照做了,但插到電腦后問(wèn)題彈出無(wú)法識(shí)別的USB
    發(fā)表于 03-10 07:27

    cdc減振器控制原理是什么

    CDC(Continuous Damping Control,連續(xù)阻尼控制)是一種先進(jìn)的車(chē)輛懸掛系統(tǒng)技術(shù),它能夠根據(jù)車(chē)輛的行駛條件實(shí)時(shí)調(diào)整懸掛的阻尼力,以提供最佳的乘坐舒適性和操控穩(wěn)定性。CDC系統(tǒng)
    的頭像 發(fā)表于 09-18 15:16 ?1699次閱讀

    CDC318A高性能時(shí)鐘緩沖器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDC318A高性能時(shí)鐘緩沖器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 11:12 ?0次下載
    <b class='flag-5'>CDC</b>318A高性能時(shí)鐘緩沖器數(shù)據(jù)表

    CDC2351高性能時(shí)鐘驅(qū)動(dòng)器電路數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDC2351高性能時(shí)鐘驅(qū)動(dòng)器電路數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 10:45 ?0次下載
    <b class='flag-5'>CDC</b>2351高性能時(shí)鐘驅(qū)動(dòng)器電路數(shù)據(jù)表

    CDC2510C鎖相環(huán)時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDC2510C鎖相環(huán)時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 10:40 ?0次下載
    <b class='flag-5'>CDC</b>2510C鎖相環(huán)時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表

    CDC341時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDC341時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 12:29 ?0次下載
    <b class='flag-5'>CDC</b>341時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表

    CDC328A1時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDC328A1時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-21 10:33 ?0次下載
    <b class='flag-5'>CDC</b>328A1時(shí)鐘驅(qū)動(dòng)器數(shù)據(jù)表

    關(guān)鍵指南針-NXP USB CDC_VCOM虛擬串口例程

    最近有小伙伴反應(yīng)USB中的 usb_examples/usb_device_cdc_vcom 例程(USB虛擬串口VCOM)中的一些使用問(wèn)題,今天集中來(lái)說(shuō)說(shuō)使用example的必知要點(diǎn)~ 實(shí)驗(yàn)平臺(tái)
    的頭像 發(fā)表于 07-25 09:17 ?2730次閱讀
    關(guān)鍵指南針-NXP USB <b class='flag-5'>CDC</b>_VCOM虛擬串口例程

    USB復(fù)合設(shè)備MSC+CDC,MSC異常影響CDC收發(fā)怎么解決?

    MSC讀寫(xiě)物理存儲(chǔ)設(shè)備的時(shí)候,如果返回一次錯(cuò)誤錯(cuò)誤碼:-1),不知道為什么會(huì)觸發(fā)一個(gè)枚舉中斷(USB_OTG_GINTSTS_ENUMDNE0),會(huì)調(diào)用到reset_callback,也會(huì)把CDC也會(huì)reset,導(dǎo)致
    發(fā)表于 07-23 06:23

    請(qǐng)問(wèn)如何安裝Espressif CDC Device驅(qū)動(dòng)?

    S3的開(kāi)發(fā)板,用usb連接電腦后提示安裝Espressif CDC Device驅(qū)動(dòng),Windows7系統(tǒng),請(qǐng)問(wèn)要如何安裝該驅(qū)動(dòng)?
    發(fā)表于 07-01 08:01

    esp32-s2-usb-host-cdc示例程序接收錯(cuò)誤怎么處理?

    在運(yùn)行示例程序 esp32-s2-usb-host-cdc 時(shí),當(dāng)與設(shè)備通訊有段時(shí)間之后,串口打印錯(cuò)誤信息: [0;33mW (1922332) : BULK IN, dir: 1, err
    發(fā)表于 06-28 06:24

    ESP32-S2-WROOM使用USB CDC虛擬串口打印log,模組在跑一段時(shí)間后會(huì)報(bào)一下錯(cuò)誤,為什么?

    環(huán)境相關(guān) 模組:ESP32-S2-WROOM IDF:V4.3 關(guān)于開(kāi)發(fā)環(huán)境: windows11 IDE:vscode 問(wèn)題描述 使用USB CDC虛擬串口打印log,模組在跑一段時(shí)間后會(huì)報(bào)一下錯(cuò)誤,然后就重啟了
    發(fā)表于 06-19 06:22

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品