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

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

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

芯片跨時鐘域設計案例簡析(一)

全棧芯片工程師 ? 來源:全棧芯片工程師 ? 2024-01-18 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

(一)單bit信號同步器

最經(jīng)典的2DFF 1-bit同步器如下,下圖結(jié)構(gòu)通常用于單bit控制信號的異步處理:

3a796b5a-b54a-11ee-8b88-92fbcf53809c.png

絕大數(shù)情況下,當?shù)谝粋€寄存器R1進入亞穩(wěn)態(tài)后,在第二級寄存器R2采樣R1的輸出前,R1的輸出已經(jīng)能穩(wěn)定在0或1。

注意:

cdc_s信號必須做到glitch free,也就是我們通常說的寄存輸出;

int_s信號鏈路禁止組合邏輯,其本質(zhì)也是杜絕glitch的出現(xiàn)。

偏執(zhí)狂的IC designer肯定會問,第一級寄存器R1的行為到底是啥樣子的?由于cdc_s信號是Tx clock Domain,而R1寄存器的采用時鐘是Rx clock Domain,當Rx clock采樣時,若cdc_s正好跳變(不滿足setup/hold),那么就會出現(xiàn)如下兩種情況,而前仿真是無法仿真出下圖2種行為的(具體見芯片設計之CDC異步電路(一)一文)。

3a8b93a2-b54a-11ee-8b88-92fbcf53809c.png

(二DMUX同步器 兩級寄存器(先進工藝要求三級)的同步器通常用于控制信號的異步處理,但是data bus的異步處理呢?我們可以采用DMUX結(jié)構(gòu)。

3a9e4b8c-b54a-11ee-8b88-92fbcf53809c.png

注意:

tx_sel、rx_sel有效時,cdc_d數(shù)據(jù)總線必須保持穩(wěn)定;

(三握手處理

源時鐘域先將數(shù)據(jù)發(fā)送到總線上,并給出一個valid信號,而目標時鐘域同步valid信號后,若valid信號為高電平則采樣總線數(shù)據(jù),并返回一個ready信號給源時鐘域。源時鐘域再次同步該ready信號,若ready信號為高,則代表一次握手成功,數(shù)據(jù)傳輸完畢,開始進行下一次數(shù)據(jù)傳輸。

采用握手機制可以保證異步multi-bit數(shù)據(jù)傳輸不出現(xiàn)錯誤,但由于需要等待握手的完成再傳輸數(shù)據(jù),因此傳輸效率較低。

3aae9bb8-b54a-11ee-8b88-92fbcf53809c.png

(四)異步FIFO

老生常談的異步FIFO,其本質(zhì)是采用格雷碼,在地址連續(xù)的情況下,其對應格雷碼每個周期只變化1bit,因此可以直接異步采樣。

3ac449fe-b54a-11ee-8b88-92fbcf53809c.png

注意:

FIFO的overflow、underflow問題;

tx_addr是連續(xù)的,即地址hamming distance是1;

FIFO深度須2^n;

經(jīng)典的FIFO結(jié)構(gòu)如下:

3adb6062-b54a-11ee-8b88-92fbcf53809c.png

核心電路:是將FIFO讀寫地址指針的二進制碼轉(zhuǎn)成格雷碼,方便同步器打兩拍傳遞到對向時鐘域去做空滿判斷。

3ae5ce9e-b54a-11ee-8b88-92fbcf53809c.png

空滿判斷:為了區(qū)別空滿,我們增加1bit的地址(MSB),我習慣直接用Gray碼比較讀寫指針判定空滿:

當Gray碼讀寫指針完全相等時,F(xiàn)IFO空;

當Gray碼讀寫指針最高2bit相反,其余bit相同時,F(xiàn)IFO滿; 通常二進制碼比較空滿是:最高bit不同,其余bit相同,則FIFO滿,而格雷碼則不同哈。

3af20dda-b54a-11ee-8b88-92fbcf53809c.png








審核編輯:劉清

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

    關注

    31

    文章

    5432

    瀏覽量

    124180
  • CDC
    CDC
    +關注

    關注

    0

    文章

    57

    瀏覽量

    18190
  • 同步器
    +關注

    關注

    1

    文章

    109

    瀏覽量

    15151
  • FIFO存儲
    +關注

    關注

    0

    文章

    103

    瀏覽量

    6178
  • 異步處理
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6627

原文標題:芯片跨時鐘域設計(一)

文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    vivado約束案例:時鐘路徑分析報告

    時鐘路徑分析報告分析從時鐘(源時鐘)跨越到
    的頭像 發(fā)表于 11-27 11:11 ?6220次閱讀
    vivado約束案例:<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>路徑分析報告

    時鐘控制信號傳輸設計方案

    1、時鐘與亞穩(wěn)態(tài) 時鐘通俗地講,就是模塊之間有數(shù)據(jù)交互,但是模塊用的不是同
    發(fā)表于 10-16 15:47 ?1278次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>控制信號傳輸設計方案

    關于時鐘信號的處理方法

    我在知乎看到了多bit信號時鐘的問題,于是整理了下自己對于時鐘信號的處理方法。
    的頭像 發(fā)表于 10-09 10:44 ?7098次閱讀

    如何處理好FPGA設計中時鐘問題?

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

    兩級DFF同步器時鐘處理

    異步bus交互()— 兩級DFF同步器時鐘處理 & 亞穩(wěn)態(tài)處理1.問題產(chǎn)生現(xiàn)在的芯片(比如SOC,片上系統(tǒng))集成度和復雜度越來越高,通
    發(fā)表于 02-17 06:34

    FPGA時鐘處理簡介

    (10)FPGA時鐘處理1.1 目錄1)目錄2)FPGA簡介3)Verilog HDL簡介4)FPGA時鐘
    發(fā)表于 02-23 07:47

    cdc路徑方案幫您解決時鐘難題

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

    如何利用FPGA設計時鐘的同步策略?

    基于FPGA的數(shù)字系統(tǒng)設計中大都推薦采用同步時序的設計,也就是單時鐘系統(tǒng)。但是實際的工程中,純粹單時鐘系統(tǒng)設計的情況很少,特別是設計模塊與外圍芯片的通信中,
    的頭像 發(fā)表于 09-01 08:29 ?5756次閱讀
    如何利用FPGA設計<b class='flag-5'>一</b>個<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的同步策略?

    關于FPGA中時鐘的問題分析

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

    關于時鐘的詳細解答

    個做數(shù)字邏輯的都繞不開時鐘處理,談談SpinalHDL里用于
    的頭像 發(fā)表于 04-27 10:52 ?4608次閱讀
    關于<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的詳細解答

    時鐘電路設計總結(jié)

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

    FPGA時鐘處理方法()

    時鐘是FPGA設計中最容易出錯的設計模塊,而且時鐘
    的頭像 發(fā)表于 05-25 15:06 ?2496次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(<b class='flag-5'>一</b>)

    FPGA時鐘處理方法(二)

    篇文章已經(jīng)講過了單bit時鐘的處理方法,這次解說下多bit的
    的頭像 發(fā)表于 05-25 15:07 ?1309次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(二)

    fpga時鐘通信時,慢時鐘如何讀取快時鐘發(fā)送過來的數(shù)據(jù)?

    fpga時鐘通信時,慢時鐘如何讀取快時鐘發(fā)送過來的數(shù)據(jù)? 在FPGA設計中,通常需要
    的頭像 發(fā)表于 10-18 15:23 ?1438次閱讀

    如何處理時鐘這些基礎問題

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

    電子發(fā)燒友

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

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品