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

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

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

跨時(shí)鐘域處理的亞穩(wěn)態(tài)與同步器

FPGA之家 ? 來(lái)源:FPGA開發(fā)之路 ? 作者:FPGA開發(fā)之路 ? 2022-12-12 14:27 ? 次閱讀

數(shù)字電路設(shè)計(jì)中遇到跨時(shí)鐘域(Clock Domain Crossing, CDC)的電路時(shí)一般都需要特別的處理,例如同步器,異步FIFO等。那么為什么CDC需要特別的處理,如果不做處理又會(huì)導(dǎo)致什么問題。

亞穩(wěn)態(tài)

我們都知道數(shù)字電路中有兩個(gè)最重要的概念,建立時(shí)間和保持時(shí)間。通過(guò)滿足建立時(shí)間和保持時(shí)間,我們可以確保信號(hào)被正確的采樣,即1采到便是1,0采到便是0。但是如果不滿足建立時(shí)間和保持時(shí)間,采到的信號(hào)會(huì)進(jìn)入一個(gè)不穩(wěn)定的狀態(tài),無(wú)法確定是1還是0,我們稱之為亞穩(wěn)態(tài)。這個(gè)亞穩(wěn)態(tài)的信號(hào)會(huì)在一段時(shí)間內(nèi)處于震蕩狀態(tài),直到穩(wěn)定,而穩(wěn)定后的狀態(tài)值與被采樣值無(wú)關(guān),可能是0也可能是1。

a70ce8ae-7947-11ed-8abf-dac502259ad0.jpg

圖1【1】所示的是異步時(shí)鐘采樣失敗的情況。當(dāng)數(shù)據(jù)(adat)的變化離采樣時(shí)鐘(bclk)的變化沿很近時(shí),由于不滿足建立時(shí)間,導(dǎo)致采樣到的信號(hào)(bdat1)進(jìn)入亞穩(wěn)態(tài)。

異步時(shí)鐘由于時(shí)鐘相位不同,圖1的情況往往難以避免,這也是跨時(shí)鐘域時(shí)容易發(fā)生亞穩(wěn)態(tài)的原因。

亞穩(wěn)態(tài)會(huì)導(dǎo)致什么問題

由于亞穩(wěn)態(tài)的信號(hào)會(huì)在一段時(shí)間內(nèi)處于震蕩狀態(tài),后續(xù)不同的邏輯可能會(huì)將該信號(hào)識(shí)別為不同的狀態(tài)值,甚至是后續(xù)邏輯也出現(xiàn)亞穩(wěn)態(tài)的情況,導(dǎo)致邏輯的錯(cuò)誤和混亂,比如狀態(tài)機(jī)出現(xiàn)錯(cuò)誤的跳轉(zhuǎn)從而鎖死在某個(gè)狀態(tài)。

同步器

最常用的同步器是兩級(jí)觸發(fā)器,如圖2【1】:

a7247f8c-7947-11ed-8abf-dac502259ad0.jpg

第一級(jí)觸發(fā)器采樣后出現(xiàn)亞穩(wěn)態(tài),第二級(jí)觸發(fā)器在經(jīng)過(guò)一個(gè)時(shí)鐘周期的等待之后采樣到一個(gè)穩(wěn)定狀態(tài)的信號(hào),達(dá)到消除不定態(tài)的目的。不過(guò)要注意,這樣的同步器只是減小了亞穩(wěn)態(tài)發(fā)生的概率,并不能完全消除亞穩(wěn)態(tài)的發(fā)生。而亞穩(wěn)態(tài)發(fā)生的概率的大小一般可以用MTBF(Mean Time Between Faliure)來(lái)表示。MTBF的值越小表示亞穩(wěn)態(tài)發(fā)生的頻率越高。

a739ef66-7947-11ed-8abf-dac502259ad0.png

圖3【2】表示了MTBF的影響因子,可以看到,當(dāng)時(shí)鐘頻率越高,數(shù)據(jù)發(fā)生變化的頻率越高,MTBF越小,即亞穩(wěn)態(tài)發(fā)生的頻率也越高。

對(duì)于一些高頻電路設(shè)計(jì),兩級(jí)觸發(fā)器所構(gòu)成的同步器MTBF仍然很小,這時(shí)候可以考慮再添加一級(jí)觸發(fā)器,即使用三級(jí)觸發(fā)器。另外,我們也希望當(dāng)數(shù)據(jù)被異步時(shí)鐘采樣時(shí)數(shù)據(jù)的變化頻率也盡可能小,因此一般數(shù)據(jù)在跨時(shí)鐘域之前最好可以用寄存器打一拍,減少數(shù)據(jù)的變化,從而減小亞穩(wěn)態(tài)發(fā)生的概率。

值得注意的是,同步器的使用只是消除了不定態(tài),但是同步器的輸出仍然可能是錯(cuò)誤的,可能被采樣的信號(hào)是1,但是同步器輸出的確是0。這樣的錯(cuò)誤是否是電路可以接受的要依據(jù)不同的設(shè)計(jì)來(lái)看,這便涉及到另外一個(gè)話題,如何使系統(tǒng)對(duì)產(chǎn)生的錯(cuò)誤不敏感,本文暫不討論。

審核編輯:郭婷

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

    關(guān)注

    3

    文章

    386

    瀏覽量

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

    關(guān)注

    14

    文章

    1995

    瀏覽量

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

    關(guān)注

    1

    文章

    92

    瀏覽量

    14597

原文標(biāo)題:跨時(shí)鐘域處理-亞穩(wěn)態(tài)與同步器

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA中亞穩(wěn)態(tài)——讓你無(wú)處可逃

    產(chǎn)生,我們就要對(duì)亞穩(wěn)態(tài)進(jìn)行消除,常用對(duì)亞穩(wěn)態(tài)消除有三種方式:(1) 對(duì)異步信號(hào)進(jìn)行同步處理;(2) 采用FIFO對(duì)
    發(fā)表于 04-25 15:29

    Virtex-5亞穩(wěn)態(tài)保護(hù)是什么

    大家好,我正在研究包括3個(gè)不同時(shí)鐘的設(shè)計(jì)。我已經(jīng)閱讀了這個(gè)帖子,我發(fā)現(xiàn)與virtex-II和virtex-4相比,virtex-5在MTBF中是最差的。對(duì)于較低和實(shí)用的MTBF,我沒有在同步器
    發(fā)表于 06-12 09:27

    如何處理好FPGA設(shè)計(jì)中時(shí)鐘問題?

    第二級(jí)寄存的延拍,所以意義是不大的。02方法二:異步雙口 RAM處理多 bit 數(shù)據(jù)的時(shí)鐘,一般采用異步雙口?RAM。假設(shè)我們現(xiàn)在有一
    發(fā)表于 09-22 10:24

    兩級(jí)DFF同步器時(shí)鐘處理簡(jiǎn)析

    異步bus交互(一)— 兩級(jí)DFF同步器時(shí)鐘處理 & 亞穩(wěn)態(tài)
    發(fā)表于 02-17 06:34

    IC設(shè)計(jì)中多時(shí)鐘處理的常用方法相關(guān)資料推薦

    組來(lái)定義策略。在多個(gè)時(shí)鐘之間傳遞控制信號(hào)時(shí),嘗試使用同步器的策略。嘗試使用FIFO和緩存的數(shù)據(jù)路徑同步器來(lái)提高數(shù)據(jù)完整性?,F(xiàn)在討論重要的
    發(fā)表于 06-24 16:54

    關(guān)于FPGA設(shè)計(jì)的同步信號(hào)和亞穩(wěn)態(tài)的分析

    數(shù)據(jù)損壞。還需要注意recombination,這是兩個(gè)或多個(gè)靜態(tài)信號(hào)跨越時(shí)鐘并在邏輯功能中重組的地方。由于亞穩(wěn)態(tài)恢復(fù),同步器中的延遲會(huì)導(dǎo)致下游邏輯受到影響。盡管我們?cè)谠O(shè)計(jì)中盡最大努
    發(fā)表于 10-18 14:29

    同步亞穩(wěn)態(tài)相關(guān)問題探討

    在本文的第一章對(duì)時(shí)鐘下的同步問題和亞穩(wěn)態(tài)問題做了概述。 在第二章中對(duì)時(shí)鐘
    發(fā)表于 09-06 15:24 ?42次下載
    <b class='flag-5'>同步</b>與<b class='flag-5'>亞穩(wěn)態(tài)</b>相關(guān)問題探討

    如何利用FPGA設(shè)計(jì)一個(gè)時(shí)鐘同步策略?

    帶來(lái)的亞穩(wěn)態(tài)、采樣丟失、潛在邏輯錯(cuò)誤等等一系列問題處理不當(dāng),將導(dǎo)致系統(tǒng)無(wú)法運(yùn)行。本文總結(jié)出了幾種同步策略來(lái)解決時(shí)鐘
    的頭像 發(fā)表于 09-01 08:29 ?5521次閱讀
    如何利用FPGA設(shè)計(jì)一個(gè)<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>的<b class='flag-5'>同步</b>策略?

    如何解決異步FIFO時(shí)鐘亞穩(wěn)態(tài)問題?

    時(shí)鐘的問題:前一篇已經(jīng)提到要通過(guò)比較讀寫指針來(lái)判斷產(chǎn)生讀空和寫滿信號(hào),但是讀指針是屬于讀時(shí)鐘的,寫指針是屬于寫
    的頭像 發(fā)表于 09-05 14:29 ?5991次閱讀

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

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

    總線半握手時(shí)鐘處理

    總線半握手時(shí)鐘處理 簡(jiǎn)要概述: 在上一篇講了單bit脈沖同步器
    的頭像 發(fā)表于 04-04 12:32 ?2786次閱讀
    總線半握手<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b>

    時(shí)序問題常見的時(shí)鐘亞穩(wěn)態(tài)問題

    今天寫一下時(shí)序問題常見的時(shí)鐘亞穩(wěn)態(tài)問題。 先說(shuō)明一下亞穩(wěn)態(tài)問題: D觸發(fā)有個(gè)明顯的特征就
    的頭像 發(fā)表于 06-18 15:28 ?2977次閱讀

    數(shù)字電路設(shè)計(jì)中時(shí)鐘處理亞穩(wěn)態(tài)

    數(shù)字電路設(shè)計(jì)中遇到時(shí)鐘(Clock Domain Crossing, CDC)的電路時(shí)一般都需要特別的處理,例如同步器,異步FIFO等。
    的頭像 發(fā)表于 08-25 11:46 ?2397次閱讀

    FPGA同步轉(zhuǎn)換FPGA對(duì)輸入信號(hào)的處理

    的verilog異步fifo設(shè)計(jì),仿真(代碼供參考)異步fifo適合處理不同時(shí)鐘之間傳輸?shù)臄?shù)據(jù)組,但有時(shí)不同時(shí)鐘之間僅僅傳遞脈沖,異步f
    的頭像 發(fā)表于 02-17 11:10 ?862次閱讀

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

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