国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Chips】跨時(shí)鐘域的亞穩(wěn)態(tài)處理、為什么要打兩拍不是打一拍、為什么打兩拍能有效?

這篇具有很好參考價(jià)值的文章主要介紹了【Chips】跨時(shí)鐘域的亞穩(wěn)態(tài)處理、為什么要打兩拍不是打一拍、為什么打兩拍能有效?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Title: 跨時(shí)鐘域的亞穩(wěn)態(tài)處理、為什么要打兩拍不是打一拍、為什么打兩拍能有效?

  • 前言

    個(gè)人顏色習(xí)慣:

    黑色加粗:突出顯示;

    紅色:重要;

    洋紅色:產(chǎn)生的疑問(wèn) question;

    藍(lán)色:個(gè)人思考 或 針對(duì)問(wèn)題的Solution

1 個(gè)人疑惑

在學(xué)習(xí) “跨時(shí)鐘域的亞穩(wěn)態(tài)的應(yīng)對(duì)措施” 時(shí),常會(huì)看到有三種解決方案:

  1. 單bit信號(hào),用:打兩拍
  2. 多bit信號(hào),用:異步FIFO
  3. 多bit信號(hào),用:格雷碼
  4. 多bit信號(hào),用:握手

記是記住了,但我有好幾個(gè)疑惑一直沒(méi)理解,網(wǎng)上沖浪卻搜不到答案、還是非常困惑…
以下是我的疑惑:

  1. 為什么用“打兩拍”來(lái)應(yīng)對(duì)跨時(shí)鐘域的亞穩(wěn)態(tài),“打一拍” 不行嗎?

  2. 為什么說(shuō),用“打兩拍”只是降低了亞穩(wěn)態(tài)的概率,但也有可能導(dǎo)致亞穩(wěn)態(tài)的傳遞呢?

    若后接了個(gè)FF,隨著posedge clk的出現(xiàn),觸發(fā)器不應(yīng)該直接就采到0或1了嗎,為啥亞穩(wěn)態(tài)還有一定概率傳遞呢?

  3. 假設(shè)是DFF(D觸發(fā)器),其亞穩(wěn)態(tài)穩(wěn)定后的值,會(huì)恢復(fù)為正確的預(yù)期輸出值嗎? 還是就算穩(wěn)定了也是無(wú)效輸出?

  4. 即使 “打兩拍”能阻止“亞穩(wěn)態(tài)的傳遞”,但亞穩(wěn)態(tài)導(dǎo)致后續(xù)FF sample到的值依然不一定是符合預(yù)期的值,那 “錯(cuò)誤的值” 難道不依然會(huì)向后傳遞,從而造成錯(cuò)誤的后果嗎?

  5. 多bit的跨時(shí)鐘域情況用 異步FIFO處理,好理解;格雷碼有啥用嘞?
    格雷碼可以讓相鄰二進(jìn)制數(shù)變化只改變1位,但在多bit的data傳輸過(guò)程中,data value不都是隨機(jī)變化么,格雷碼有啥用嘞?

主要是前面關(guān)于打兩拍的疑惑,網(wǎng)上沖浪找不到解答的帖子。
網(wǎng)上只有兩個(gè)核心的回答,但對(duì)我這樣的數(shù)電小白,完全是沒(méi)有回答到我個(gè)人解惑的點(diǎn)子上,但解惑后再看,會(huì)有新的收獲

  1. 打兩拍的目的第一拍是異步信號(hào)轉(zhuǎn)同步,第二拍是防止亞穩(wěn)態(tài)的傳遞。

    我聽(tīng)了還是很迷。( ̄▽ ̄)"

  2. 打一拍和打兩拍和打三拍的區(qū)別用觸發(fā)器進(jìn)入亞穩(wěn)態(tài)的平均故障時(shí)間間隔MTBF進(jìn)行計(jì)算,證明打拍數(shù)增加,產(chǎn)生亞穩(wěn)態(tài)的可能性遞減:打一拍直接用,很可能出現(xiàn)亞穩(wěn)態(tài)輸出;打兩拍再直接用,出現(xiàn)亞穩(wěn)態(tài)的概率是109年出現(xiàn)一次(具體計(jì)算參數(shù)見(jiàn)reference);打三拍再直接俄用,出現(xiàn)的概率更低,但是除非超高頻率不然沒(méi)必要。

    可見(jiàn)reference:跨時(shí)鐘域同步,為什么兩級(jí)寄存器結(jié)構(gòu)能夠降低亞穩(wěn)態(tài)? —— 知乎 龔黎明

那我個(gè)人疑惑呢,最后在外網(wǎng) stack exchange 上解答了——這個(gè)老哥居然和我的疑問(wèn)一毛一樣! 實(shí)在是欣慰,久旱逢甘霖…( ̄▽ ̄)"

Stack Exchange上的回答:How does 2-ff synchronizer ensure proper synchonization?
(不知為什么用firefox不顯示問(wèn)題圖片,用chrome才顯示圖片…)

于是,我打算用自己的話,記錄一下它的問(wèn)題與回答,也回答我個(gè)人的疑惑~

2 概念補(bǔ)充

什么是亞穩(wěn)態(tài) metastable state?

首先要闡述一下亞穩(wěn)態(tài)的概念。
元器件在現(xiàn)實(shí)運(yùn)行時(shí),觸發(fā)器輸出的邏輯0/1需要時(shí)間跳變,而不是瞬發(fā)的。因此,若未滿足此cell的建立時(shí)間、保持時(shí)間,其輸出值則為中間態(tài),那在logic上可能算成0也可能算成1很難講(波形顯示上可能是毛刺、振蕩、固定值等),這就是亞穩(wěn)態(tài)。

一般波形圖像上,1是高電平,0是低電平;但微觀的亞穩(wěn)態(tài)波形如下:

跨時(shí)鐘域?yàn)槭裁创騼膳?數(shù)字IC與芯片,fpga開(kāi)發(fā),亞穩(wěn)態(tài),數(shù)字IC設(shè)計(jì),數(shù)字集成電路,跨時(shí)鐘域處理
如圖所示:亞穩(wěn)態(tài)的輸出波形會(huì)卡在中間,過(guò)一段時(shí)間后,可能穩(wěn)定成1,也可能穩(wěn)定成0,但都和原預(yù)期值沒(méi)啥關(guān)系了,是無(wú)效的!

單bit信號(hào),應(yīng)用“打兩拍”的電路結(jié)構(gòu)圖

跨時(shí)鐘域?yàn)槭裁创騼膳?數(shù)字IC與芯片,fpga開(kāi)發(fā),亞穩(wěn)態(tài),數(shù)字IC設(shè)計(jì),數(shù)字集成電路,跨時(shí)鐘域處理

這張圖,給出了兩個(gè)點(diǎn):

  1. “打兩拍”后可以直接接組合邏輯電路。

    我之前以為后面必接時(shí)序電路,相當(dāng)于后面的電路也是觸發(fā)器,于是產(chǎn)生了:“把打兩拍改成打一拍,算上后面的時(shí)序電路,不也是相當(dāng)于打兩拍嗎” 這樣的愚蠢困惑…( ̄▽ ̄)"

  2. 下方的波形給了“打兩拍能大概率防止亞穩(wěn)態(tài)傳遞”的圖示

    由于異步data變的太突然,第一拍sample后出現(xiàn)亞穩(wěn)態(tài),第三拍sample后把亞穩(wěn)態(tài)堵住了,得到正常電平(但值不一定和原預(yù)期相同)。

3 解惑環(huán)節(jié)

綜上,可以解答我之前的3個(gè)疑惑了:

  1. 為什么用“打兩拍”來(lái)應(yīng)對(duì)跨時(shí)鐘域的亞穩(wěn)態(tài),“打一拍” 不行嗎?

    如打兩拍的電路結(jié)構(gòu)圖所示:打一拍的話,若第一拍sample到亞穩(wěn)態(tài),則后續(xù)組合邏輯電路的輸入直接就是亞穩(wěn)態(tài)波形,肯定會(huì)把亞穩(wěn)態(tài)傳遞下去,就完?duì)僮恿恕?/font>

  2. 為什么說(shuō),用“打兩拍”只是降低了亞穩(wěn)態(tài)的概率,但也有可能導(dǎo)致亞穩(wěn)態(tài)的傳遞呢

    如前面的兩張亞穩(wěn)態(tài)的波形所示,亞穩(wěn)態(tài)如果在1T內(nèi)穩(wěn)定成高電平或低電平了(概率80%),那第2拍就sample到正常的0或1;若亞穩(wěn)態(tài)1T最后還是中間態(tài),那第2拍還是可能出現(xiàn)亞穩(wěn)態(tài)的,但概率低。

    亞穩(wěn)態(tài)穩(wěn)定需要多久,具體時(shí)間由工藝決定。

  3. 假設(shè)是DFF(D觸發(fā)器),其亞穩(wěn)態(tài)穩(wěn)定后的值,會(huì)恢復(fù)為正確的預(yù)期輸出值嗎? 還是就算穩(wěn)定了也是無(wú)效輸出?

    如前面的亞穩(wěn)態(tài)微觀波形所說(shuō):即使亞穩(wěn)態(tài)穩(wěn)定了,值也無(wú)效。

剩下倆疑惑,大頭講。見(jiàn)下文。

打兩拍的sample到錯(cuò)誤數(shù)據(jù)怎么辦

  • sample亞穩(wěn)態(tài),結(jié)果可能多樣

    sample亞穩(wěn)態(tài),得到的結(jié)果可能取決于亞穩(wěn)態(tài)最后穩(wěn)定于什么狀態(tài),如下圖表示出各種sample的可能:

跨時(shí)鐘域?yàn)槭裁创騼膳?數(shù)字IC與芯片,fpga開(kāi)發(fā),亞穩(wěn)態(tài),數(shù)字IC設(shè)計(jì),數(shù)字集成電路,跨時(shí)鐘域處理

如圖所示,adat是實(shí)際的異步data、bq1_dat是兩級(jí)觸發(fā)器中的第一個(gè)寄存器sample的數(shù)據(jù)、bq2_dat是第二個(gè)寄存器sanple到的數(shù)據(jù),bclk是同步時(shí)鐘。
則:

a)中,異步data持續(xù)2T;FF1 sample到亞穩(wěn)態(tài)時(shí),F(xiàn)F2在下一cycle 對(duì)亞穩(wěn)態(tài)的sample是0;但最終sample到了正確的data值。

b)中,異步data持續(xù)2T;FF1 sample到亞穩(wěn)態(tài)時(shí),F(xiàn)F2在下一cycle 對(duì)亞穩(wěn)態(tài)的sample是1;但最終sample到了正確的data值。

c)中,異步data馬上結(jié)束,等價(jià)于只持續(xù)1T(相當(dāng)于沒(méi)sample到就錯(cuò)過(guò)了);FF1 sample到亞穩(wěn)態(tài)時(shí),F(xiàn)F2在下一cycle 對(duì)亞穩(wěn)態(tài)的sample是1;運(yùn)氣好,最終sample到了正確的data值。

d)中,異步data馬上結(jié)束,等價(jià)于只持續(xù)1T;FF1 sample到亞穩(wěn)態(tài)時(shí),F(xiàn)F2在下一cycle 對(duì)亞穩(wěn)態(tài)的sample是0;相當(dāng)于最終錯(cuò)過(guò)了data值,沒(méi)sample到…

那咋辦,豈不是說(shuō)明“打兩拍”的方法不行???

  • 答案:

    因?yàn)?“打兩拍” 的目的,是為了在單bit傳輸時(shí),盡可能的防止亞穩(wěn)態(tài)的傳遞,至于這個(gè)sample的正確性,本來(lái)就不是重點(diǎn)。這種“sample的正確性如何保證”得根據(jù)信號(hào)的具體類型、目的、應(yīng)用場(chǎng)景,來(lái)進(jìn)行具體的討論。

    1. Trigger Signals:一個(gè)脈沖信號(hào),用來(lái)開(kāi)機(jī)、啟動(dòng)什么的。它沒(méi)什么數(shù)據(jù)信息量,早一個(gè)clk、晚一個(gè)clk都o(jì)k,反正能起作用就行。那上面這個(gè)問(wèn)題就無(wú)所謂了。唯一要保證的是,原始異步脈沖信號(hào)至少保持2T!(保證打兩拍后,能sample到有效信號(hào))
    2. Control Buses:因?yàn)橛卸郻it數(shù)據(jù)需要進(jìn)行同步,關(guān)系比較復(fù)雜。那就不能用 “打兩拍” 的方法,得用 “握手機(jī)制“。
    3. Data Buses:這種情況,非常在乎上面提到的正確性問(wèn)題。所以就 更不應(yīng)該用 ”打兩拍“方法,得用 異步FIFO的好吧… 在異步FIFO中的指針使用格雷碼,可以降低指針在跳變時(shí)出現(xiàn)的亞穩(wěn)態(tài)風(fēng)險(xiǎn)、冒險(xiǎn)現(xiàn)象。也就說(shuō),格雷碼和異步FIFO是結(jié)合使用的… ( ̄▽ ̄)"
  • 總結(jié):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-816978.html

    1. 當(dāng)你在乎跨時(shí)鐘域 “用打兩拍解決亞穩(wěn)態(tài),導(dǎo)致后續(xù)sample可能未sample到正確結(jié)果” 的case,那就不該用 “打兩拍” 的方案,可以考慮異步FIFO和握手機(jī)制!而格雷碼,和異步FIFO是聯(lián)合使用的。
    2. “打兩拍”的方法,若應(yīng)用于“從快速時(shí)鐘域同步到慢速時(shí)鐘域”,數(shù)據(jù)得多保持幾T,不然會(huì)漏采數(shù)據(jù)。

到了這里,關(guān)于【Chips】跨時(shí)鐘域的亞穩(wěn)態(tài)處理、為什么要打兩拍不是打一拍、為什么打兩拍能有效?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 理解FPGA中的亞穩(wěn)態(tài)

    理解FPGA中的亞穩(wěn)態(tài)

    ? ? ? ? 大家應(yīng)該經(jīng)常能聽(tīng)說(shuō)到亞穩(wěn)態(tài)這個(gè)詞,亞穩(wěn)態(tài)主要是指觸發(fā)器的輸出在一段時(shí)間內(nèi)不能達(dá)到一個(gè)確定的狀態(tài),過(guò)了這段時(shí)間觸發(fā)器的輸出隨機(jī)選擇輸出0/1,這是我們?cè)谠O(shè)計(jì)時(shí)需要避免的。本文主要講述了FPGA中的亞穩(wěn)態(tài)問(wèn)題,可以幫助大家更好地理解亞穩(wěn)態(tài)。本文來(lái)源

    2024年02月09日
    瀏覽(16)
  • 數(shù)字設(shè)計(jì)小思 - D觸發(fā)器與死纏爛打的亞穩(wěn)態(tài)

    數(shù)字設(shè)計(jì)小思 - D觸發(fā)器與死纏爛打的亞穩(wěn)態(tài)

    本系列整理數(shù)字系統(tǒng)設(shè)計(jì)的相關(guān)知識(shí)體系架構(gòu),為了方便后續(xù)自己查閱與求職準(zhǔn)備。在FPGA和ASIC設(shè)計(jì)中,D觸發(fā)器是最常用的器件,也可以說(shuō)是時(shí)序邏輯的核心,本文根據(jù)個(gè)人的思考?xì)v程結(jié)合相關(guān)書(shū)籍內(nèi)容和網(wǎng)上文章,聊一聊D觸發(fā)器與亞穩(wěn)態(tài)的那些事。 由傳輸門(mén)和兩個(gè)反相器

    2024年02月03日
    瀏覽(22)
  • FPGA中亞穩(wěn)態(tài)、異步信號(hào)處理、建立和保持時(shí)間違例及題目合集

    FPGA中亞穩(wěn)態(tài)、異步信號(hào)處理、建立和保持時(shí)間違例及題目合集

    亞穩(wěn)態(tài):輸入信號(hào)的變化發(fā)生在時(shí)鐘有效沿的建立時(shí)間和保持時(shí)間之間,導(dǎo)致其不滿足觸發(fā)器建立保持時(shí)間的時(shí)序要求,使得輸出有一段時(shí)間的不確定狀態(tài),這就是亞穩(wěn)態(tài)。

    2023年04月09日
    瀏覽(23)
  • 為什么CPU需要時(shí)鐘

    為什么CPU需要時(shí)鐘

    為什么CPU需要時(shí)鐘這樣一個(gè)概念? 什么是時(shí)鐘脈沖,CPU為什么需要時(shí)鐘,時(shí)鐘信號(hào)是怎么產(chǎn)生的? 上面這個(gè)圖的方波就是一個(gè)脈沖,類比于人類的脈搏跳動(dòng)。一個(gè)脈沖稱之為CPU的一個(gè) 時(shí)鐘信號(hào) ,或者 時(shí)鐘脈沖 。一個(gè)脈沖周期就叫CPU時(shí)鐘周期,一個(gè)時(shí)鐘周期內(nèi)時(shí)鐘信號(hào)震蕩一

    2023年04月11日
    瀏覽(21)
  • 基于反序位域的大端協(xié)議處理方法

    基于反序位域的大端協(xié)議處理方法

    本文主要描述如何在C/C++軟件中以一種簡(jiǎn)便的方法處理通信協(xié)議中的大小端轉(zhuǎn)換方法;由于資源限制,目前在僅在windows平臺(tái)的部分編譯器與cpu中進(jìn)行驗(yàn)證。 數(shù)據(jù)在內(nèi)存中存儲(chǔ)的基礎(chǔ)單元是字節(jié)(Byte),最小的存儲(chǔ)單元是位(bit);在常用的ARM架構(gòu)中,按照字節(jié)處理數(shù)據(jù)時(shí),

    2024年02月19日
    瀏覽(15)
  • Angular material Chips Autocomplete

    Chips Autocomplete 官網(wǎng)的例子我沒(méi)法正常使用,無(wú)法實(shí)現(xiàn)搜索 我的select是個(gè)通用組件,現(xiàn)在貼代碼: component.ts ? 頁(yè)面.html ?

    2024年02月04日
    瀏覽(23)
  • 【CDC跨時(shí)鐘域信號(hào)處理】單bit_快時(shí)鐘域到慢時(shí)鐘域

    【CDC跨時(shí)鐘域信號(hào)處理】單bit_快時(shí)鐘域到慢時(shí)鐘域

    快時(shí)鐘域到慢時(shí)鐘域分兩種情況: 1、允許采樣丟失:直接采用同步器即可。 2、不允許采樣丟失:原理是保證快時(shí)鐘域的信號(hào)寬度滿足一定的條件,使得慢時(shí)鐘域有足夠的時(shí)間采樣到。 對(duì)于情況2有兩種方法解決:①信號(hào)展寬+邊沿檢測(cè)②握手,且①比②要優(yōu)先被選擇。因?yàn)槲?/p>

    2024年02月07日
    瀏覽(16)
  • 跨時(shí)鐘域處理(三)---握手

    跨時(shí)鐘域處理(三)---握手

    在跨時(shí)鐘域(一)中,我們介紹了 打兩拍 的方法,盡管這個(gè)方法可以有效處理單bit跨時(shí)鐘域信號(hào)的亞穩(wěn)態(tài)問(wèn)題,但是當(dāng)發(fā)送方的時(shí)鐘比接收方的時(shí)鐘快時(shí),有可能出現(xiàn)信號(hào)有效時(shí)間過(guò)段,接收方采樣不到的情況。 握手 就是解決這一問(wèn)題的有效方法,同時(shí), 握手 還可以解決多

    2024年02月12日
    瀏覽(14)
  • 跨時(shí)鐘域處理方法(一)——打拍

    跨時(shí)鐘域處理方法(一)——打拍

    ????????處理跨時(shí)鐘域的數(shù)據(jù)可以分為單bit數(shù)據(jù)和多bit數(shù)據(jù),而打拍的方法主要常見(jiàn)于處理單bit數(shù)據(jù)的跨時(shí)鐘域問(wèn)題。 ? ? ? ? 打拍的本質(zhì)是通過(guò)添加寄存器,對(duì)輸入的數(shù)據(jù)進(jìn)行延拍。其主要目標(biāo)是消除亞穩(wěn)態(tài)的影響。常見(jiàn)的是打2拍,也就是添加2級(jí)寄存器。 ? ? ? ? 現(xiàn)

    2024年02月16日
    瀏覽(15)
  • FPGA面試題(4)(跨時(shí)鐘域處理)

    FPGA面試題(4)(跨時(shí)鐘域處理)

    慢-快 快-慢 單bit 在快時(shí)鐘域同步打拍,將信號(hào)同步到快時(shí)鐘域 展寬后同步打拍 多bit 異步FIFO 異步FIFO+握手信號(hào) 適用于單bit跨時(shí)鐘域處理 所謂的打兩拍就是定義兩級(jí)寄存器實(shí)現(xiàn)延時(shí) 那為什么是打兩拍,不是打一拍,打三拍? 打拍的作用:第一拍是異步信號(hào)轉(zhuǎn)同步信號(hào),第二

    2024年04月09日
    瀏覽(14)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包