99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

跨時(shí)鐘域CDC之全面解析

ruikundianzi ? 來源:知芯情報(bào)局 ? 2023-03-15 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

時(shí)鐘域(Clock Domain Crossing,CDC)作為數(shù)字芯片設(shè)計(jì)中的經(jīng)典問題,也歷來是各面試官常問的問題。今天我們來分析一下跨時(shí)鐘域的相關(guān)問題,希望對(duì)你有所啟發(fā)。

一、什么是時(shí)鐘域?

在一些較為簡單的數(shù)字電路中,只有一個(gè)時(shí)鐘,即所有的觸發(fā)器都使用同一個(gè)時(shí)鐘,那么我們說這個(gè)電路中只有一個(gè)時(shí)鐘域。對(duì)于功能較為復(fù)雜的芯片,如下圖所示,電路中往往存在多個(gè)時(shí)鐘,不同的模塊使用不同的時(shí)鐘,那么我們說這個(gè)設(shè)計(jì)中有多個(gè)時(shí)鐘域。當(dāng)信號(hào)在不同時(shí)鐘域之間傳輸時(shí),就被稱為跨時(shí)鐘域。

d55605d2-c2f4-11ed-bfe3-dac502259ad0.jpg

二、什么是亞穩(wěn)態(tài)?

當(dāng)數(shù)字信號(hào)跨時(shí)鐘域傳輸時(shí),就會(huì)產(chǎn)生亞穩(wěn)態(tài)問題。亞穩(wěn)態(tài)是指觸發(fā)器無法在某個(gè)規(guī)定時(shí)間段內(nèi)達(dá)到一個(gè)可確認(rèn)的狀態(tài)。每一個(gè)觸發(fā)器都有其規(guī)定的建立(setup)和保持(hold)時(shí)間參數(shù), 在這個(gè)時(shí)間窗口內(nèi), 輸入信號(hào)在時(shí)鐘的上升沿是不允許發(fā)生改變的。如果觸發(fā)器的數(shù)據(jù)輸入端口上數(shù)據(jù)在這個(gè)時(shí)間窗口內(nèi)發(fā)生變化(或者數(shù)據(jù)更新),那么就會(huì)產(chǎn)生時(shí)序違規(guī),觸發(fā)器的輸出將徘徊在不可預(yù)知的電平狀態(tài),即亞穩(wěn)態(tài)。

如下圖所示,在CLK2的上升沿到來的時(shí)候,觸發(fā)器Din的數(shù)據(jù)在發(fā)生變化,那么Dout的數(shù)據(jù)將會(huì)徘徊在一個(gè)中間電平狀態(tài)(這個(gè)中間電平可能正確值,也可能是錯(cuò)誤值)。也就是說,電路處于中間態(tài)的時(shí)間變長,使得電路“反應(yīng)”遲鈍,這就是“亞穩(wěn)態(tài)”。亞穩(wěn)態(tài)信號(hào)的穩(wěn)定時(shí)間通常比一個(gè)時(shí)鐘周期要短的多。

一般情況下不會(huì)超過一個(gè)或者兩個(gè)周期,取決于觸發(fā)器的性能。如果亞穩(wěn)態(tài)超過一個(gè)或者兩個(gè)周期,那么就會(huì)被下一個(gè)觸發(fā)器采樣到,這樣就會(huì)造成亞穩(wěn)態(tài)的傳播。但是需要強(qiáng)調(diào)的是,如果產(chǎn)生亞穩(wěn)態(tài),亞穩(wěn)態(tài)恢復(fù)穩(wěn)定后的電平不一定是正確的電平,如果穩(wěn)定后的電平是錯(cuò)誤的,那么就很有可能引起后面的邏輯的錯(cuò)誤。

d5781a14-c2f4-11ed-bfe3-dac502259ad0.png

再深入一點(diǎn),觸發(fā)器進(jìn)入亞穩(wěn)態(tài)的時(shí)間可以用參數(shù) MTBF(mean time between failures)來描述, MTBF即觸發(fā)器采樣失敗的時(shí)間間隔,其公式描述如下:

d58b0980-c2f4-11ed-bfe3-dac502259ad0.png

其中:

t:在不引起synchronizer failure的前提下,亞穩(wěn)態(tài)持續(xù)的最長時(shí)間

τ和T0:觸發(fā)器工藝相關(guān)的參數(shù)

F1:輸入的異步信號(hào)頻率

F2:起同步作用的的觸發(fā)器時(shí)鐘頻率

通常,MTBF越大說明系統(tǒng)采樣失敗的可能越小。從上面公式可以很明顯的看出,對(duì)于高速數(shù)字電路,MTBF發(fā)生的概率更大。此外,對(duì)于不同的系統(tǒng)和應(yīng)用場景,MTBF的要求也不同。比如對(duì)于一些消費(fèi)級(jí)的產(chǎn)品,比如手機(jī),智能手表等,MTBF的要求要遠(yuǎn)遠(yuǎn)低于軍工級(jí)和航天級(jí)別的產(chǎn)品,比如衛(wèi)星,導(dǎo)彈等。

三、怎么降低亞穩(wěn)態(tài)?

首先,亞穩(wěn)態(tài)是不可避免的,是器件的固有屬性。通過適當(dāng)?shù)姆椒ǎ梢詫喎€(wěn)態(tài)帶來的消極影響將至最低。一般來講,主要有下面幾種方案:

使用兩級(jí)寄存器同步

也就是俗稱的“打兩拍”。兩級(jí)寄存是一級(jí)寄存的平方,兩級(jí)并不能完全消除亞穩(wěn)態(tài)危害,但是大大降低了亞穩(wěn)態(tài)的發(fā)生概率。a_dat是時(shí)鐘域a_clk的數(shù)據(jù),需要傳輸?shù)綍r(shí)鐘域b_clk。假設(shè)在b_clk的上升沿正好采到a_dat的跳變沿(從0變1的上升沿,實(shí)際上的數(shù)據(jù)跳變不可能是瞬時(shí)的,所以有短暫的跳變時(shí)間),那么此時(shí)a_dat為一個(gè)不確定的電平狀態(tài)。所以b_dat1的值也不能確定.但至少可以保證,在b_clk的下一個(gè)上升沿,b_dat1基本上已經(jīng)穩(wěn)定,可以滿足下一級(jí)觸發(fā)器的setup/hold要求,出現(xiàn)亞穩(wěn)態(tài)的概率得到了很大的改善。

如果再加上第三級(jí)寄存器,由于第二級(jí)寄存器對(duì)于亞穩(wěn)態(tài)的處理已經(jīng)起到了很大的改善作用,第三級(jí)寄存器在很大程度上可以說只是對(duì)于第二級(jí)寄存器的延拍,所以意義是不大的。

異步雙口RAM

在處理多bit數(shù)據(jù)的跨時(shí)鐘域時(shí),采用較多的是異步雙口RAM。假設(shè)我們現(xiàn)在有一個(gè)信號(hào)采集平臺(tái),ADC芯片提供源同步時(shí)鐘20MHz,ADC芯片輸出的數(shù)據(jù)在20MHz的時(shí)鐘上升沿變化,而FPGA內(nèi)部需要使用100MHz的時(shí)鐘來處理ADC采集到的數(shù)據(jù)(多bit)。

在這種類似的場景中,我們便可以使用異步雙口RAM來做跨時(shí)鐘域處理。先利用ADC芯片提供的20MHz時(shí)鐘將ADC輸出的數(shù)據(jù)寫入異步雙口RAM,然后使用100MHz的時(shí)鐘從RAM中讀出。在能使用異步雙口RAM來處理跨時(shí)鐘域的場景中,也可以使用異步FIFO來達(dá)到同樣的目的。

d5a243d4-c2f4-11ed-bfe3-dac502259ad0.png

格雷碼

在上面的第二種方案中,master要等RAM中有ADC的數(shù)據(jù)之后才去讀RAM。這就需要100MHz的時(shí)鐘對(duì)RAM的寫地址進(jìn)行判斷,當(dāng)寫地址大于某個(gè)值之后再去讀取RAM。程序員們使用直接用100MHz的時(shí)鐘于RAM的寫地址進(jìn)行打兩拍的方式,但RAM的寫地址屬于多bit,如果單純只是打兩拍,那不一定能確保寫地址數(shù)據(jù)的每一個(gè)bit在100MHz的時(shí)鐘域變化都是同步的,肯定有一個(gè)先后順序。如果在低速的環(huán)境中不一定會(huì)出錯(cuò),在高速的環(huán)境下就不一定能保證了。所以更為妥當(dāng)?shù)囊环N處理方法就是使用格雷碼轉(zhuǎn)換。

首先什么是格雷碼?在一組數(shù)的編碼中,若任意兩個(gè)相鄰的代碼只有一位二進(jìn)制數(shù)不同,則稱這種編碼為格雷碼(Gray Code),另外由于最大數(shù)與最小數(shù)之間也僅一位數(shù)不同,即“首尾相連”,因此又稱循環(huán)碼或反射碼。在數(shù)字系統(tǒng)中,常要求代碼按一定順序變化。例如,按自然數(shù)遞增計(jì)數(shù),若采用8421碼,則數(shù)0111變到1000時(shí)四位均要變化,而在實(shí)際電路中,4位的變化不可能絕對(duì)同時(shí)發(fā)生,則計(jì)數(shù)中可能出現(xiàn)短暫的其它代碼(1100、1111等)。在特定情況下可能導(dǎo)致電路狀態(tài)錯(cuò)誤或輸入錯(cuò)誤。

使用格雷碼可以避免這種錯(cuò)誤。格雷碼有多種編碼形式。格雷碼(Gray Code)又稱Grey Code、葛萊碼、格萊碼、戈萊碼、循環(huán)碼、反射二進(jìn)制碼、最小差錯(cuò)碼等。如下圖所示,若不作特別說明,格雷碼就是指典型格雷碼,它可從自然二進(jìn)制碼轉(zhuǎn)換而來。二進(jìn)制格雷碼的生成方法有很多,具體可自行搜索。

十進(jìn)制數(shù)字 自然二進(jìn)制碼 典型格雷碼 十進(jìn)制余三格雷碼 十進(jìn)制空六格雷碼 步進(jìn)碼
0 0000 0000 0010 0000 00000
1 0001 0001 0110 0001 00001
2 0010 0011 0111 0011 00011

對(duì)于格雷碼,相鄰的兩個(gè)數(shù)間只有一個(gè)bit是不一樣的,如果先將RAM的寫地址轉(zhuǎn)為格雷碼,然后再將寫地址的格雷碼進(jìn)行打兩拍,之后再在RAM的讀時(shí)鐘域?qū)⒏窭状a恢復(fù)成10進(jìn)制。這種處理就相當(dāng)于對(duì)單bit數(shù)據(jù)的跨時(shí)鐘域處理了。






審核編輯:劉清

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

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124577
  • MTBF
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    13842
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1639

    瀏覽量

    81937
  • CDC
    CDC
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

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

    關(guān)注

    14

    文章

    2039

    瀏覽量

    62152

原文標(biāo)題:干貨 | 跨時(shí)鐘域(CDC)之全面解析

文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    多位寬數(shù)據(jù)通過握手方式時(shí)鐘

    對(duì)于多位寬數(shù)據(jù),我們可以采用握手方式實(shí)現(xiàn)時(shí)鐘操作。該方式可直接使用xpm_cdc_handshake實(shí)現(xiàn),如下圖所示。
    的頭像 發(fā)表于 05-06 09:22 ?1609次閱讀
    多位寬數(shù)據(jù)通過握手方式<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>

    處理時(shí)鐘CDC)信號(hào)同步的最常見方法

    時(shí)鐘( **Clock Domain Crossing,CDC** )通俗地講,就是 **模塊之間數(shù)據(jù)交互時(shí)用的不是同一個(gè)時(shí)鐘進(jìn)行驅(qū)動(dòng)*
    的頭像 發(fā)表于 09-20 11:24 ?5340次閱讀
    處理<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>(<b class='flag-5'>CDC</b>)信號(hào)同步的最常見方法

    關(guān)于cdc時(shí)鐘處理的知識(shí)點(diǎn),不看肯定后悔

    關(guān)于cdc時(shí)鐘處理的知識(shí)點(diǎn),不看肯定后悔
    發(fā)表于 06-21 07:44

    cdc路徑方案幫您解決時(shí)鐘難題

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

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

    時(shí)鐘問題(CDC,Clock Domain Crossing )是多時(shí)鐘設(shè)計(jì)中的常見現(xiàn)象。在FPGA領(lǐng)域,互動(dòng)的異步
    發(fā)表于 08-19 14:52 ?3670次閱讀

    CDC單bit脈沖時(shí)鐘的處理介紹

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

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

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

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

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

    單位寬信號(hào)如何時(shí)鐘

    單位寬(Single bit)信號(hào)即該信號(hào)的位寬為1,通??刂菩盘?hào)居多。對(duì)于此類信號(hào),如需時(shí)鐘可直接使用xpm_cdc_single
    的頭像 發(fā)表于 04-13 09:11 ?1621次閱讀

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

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

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

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

    時(shí)鐘電路設(shè)計(jì)—單比特信號(hào)傳輸

    時(shí)鐘CDC)的應(yīng)從對(duì)亞穩(wěn)定性和同步性的基本了解開始。
    的頭像 發(fā)表于 06-27 14:25 ?1498次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>電路設(shè)計(jì)—單比特信號(hào)傳輸

    時(shí)鐘電路設(shè)計(jì):單位寬信號(hào)如何時(shí)鐘

    單位寬(Single bit)信號(hào)即該信號(hào)的位寬為1,通??刂菩盘?hào)居多。對(duì)于此類信號(hào),如需時(shí)鐘可直接使用xpm_cdc_single,如下圖代碼所示。參數(shù)DEST_SYNC_FF決
    的頭像 發(fā)表于 08-16 09:53 ?1762次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>電路設(shè)計(jì):單位寬信號(hào)如何<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>

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

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

    一文解析時(shí)鐘傳輸

    一、單比特CDC傳輸1.1 慢到快 快時(shí)鐘相比慢時(shí)鐘采樣速度更快,也就是說從慢時(shí)鐘
    的頭像 發(fā)表于 11-16 11:55 ?1291次閱讀
    一文<b class='flag-5'>解析</b><b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>傳輸