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

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

3天內不再提示

CDC跨時鐘域分單bit和多bit傳輸介紹

FPGA之家 ? 來源:FPGA探索者 ? 作者:FPGA探索者 ? 2022-08-29 11:13 ? 次閱讀

多bit跨時鐘

大疆2020數(shù)字芯片)下列關于多bit數(shù)據(jù)跨時鐘域的處理思路,錯誤的有()

A. 發(fā)送方給出數(shù)據(jù),接收方用本地時鐘同步兩拍再使用;

B. 發(fā)送方把數(shù)據(jù)寫到異步fifo,接收方從異步fifo里讀出;

C. 對于連續(xù)變化的信號,發(fā)送方轉為格雷碼發(fā)送,接收方收到后再轉為二進制;

D. 發(fā)送方給出數(shù)據(jù),發(fā)送方給出握手請求,接收方收到后回復,發(fā)送方撤銷數(shù)據(jù)。

答案:A

解析:多bit跨時鐘域不能簡單使用打兩拍,打拍后可能數(shù)據(jù)錯亂;

CDC(Clock Domain Conversion)跨時鐘域分單bit和多bit傳輸,其中:

1. 單bit(慢時鐘域到快時鐘域):用快時鐘打兩拍,直接采一拍大概率也是沒問題的,兩拍的主要目的是消除亞穩(wěn)態(tài);

其中:

(1)為了更長的平均無故障時間 MTBF( Mean Time Between Failures),需要配合一個 ASYNC_REG 的約束,把用作簡單同步器的多個寄存器放入同一個 SLICE,以降低走線延時的不一致和不確定性。


(* ASYNC_REG = "TRUE" *) reg rst_reg_0;
(* ASYNC_REG = "TRUE" *) reg rst_reg_1;

(2)或者:直接在約束文件里進行約束

set_propertyASYNC_REGTRUE[get_cells[listrst_reg_0rst_reg_1]]

2. 單bit(快時鐘域到慢時鐘域):握手(脈沖展寬)、異步FIFO、異步雙口RAM;快時鐘域的信號脈寬較窄,慢時鐘域不一定能采到,可以通過握手機制讓窄脈沖展寬,慢時鐘域采集到信號后再“告訴”快時鐘域已經采集到信號,確保能采集到;

3. 多bit跨時鐘域異步FIFO、異步雙口RAM、握手、格雷碼;

(1)使用異步FIFO的IP

實際上是用 FPGA 內部的 BRAM 來搭建,所有的控制邏輯都在 BRAM 內部,是推薦的 FIFO 實現(xiàn)方式。

時序約束簡單,進行時序例外約束,只需要 set_clock_groups 將讀寫時鐘約束為異步時鐘組即可,簡單高效。

set_property -asynchronous -group [get_clocks write_clock] \ -group [get_clocks read_clock]

(2)自己寫外部控制邏輯的FIFO

格雷碼做異步 FIFO 的跨時鐘域處理,計數(shù)器和讀寫控制邏輯在 BRAM 或者 RAM 的外部,除了代碼的合理設計以外,還需要進行額外的時序例外約束,不能簡單使用 set_clock_groups 約束異步時鐘組,還需要考慮外部的讀寫邏輯的約束。

Xilinx建議這里設置set_max_delay來約束跨時鐘域路徑,約束的原則是:最大路徑延時等于或者略小于目的時鐘的一個周期。

寫邏輯從cell1到cell2的約束中,cell2的驅動時鐘周期為5,如下所示,讀邏輯約束進行相應約束。


poYBAGMML2WABtvqAAA8WO7wAAI530.jpg

多bit中,強烈推薦使用異步FIFO的IP來實現(xiàn),我在實際工程中使用多次,簡單方便。

set_propertyASYNC_REGTRUE[get_cells[listrst_reg_0rst_reg_1]]




審核編輯:劉清

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

    關注

    8

    文章

    1344

    瀏覽量

    114214
  • fifo
    +關注

    關注

    3

    文章

    382

    瀏覽量

    43401
  • 時鐘
    +關注

    關注

    10

    文章

    1673

    瀏覽量

    130955
  • CDC
    CDC
    +關注

    關注

    0

    文章

    56

    瀏覽量

    17718

原文標題:CDC跨時鐘域處理及相應的時序約束【set_clock_groups】【set_max_delay】

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于時鐘信號的處理方法

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

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

    以手到擒來。這里介紹的三種方法時鐘處理方法如下:打兩拍;異步雙口 RAM;格雷碼轉換。01方法一:打兩拍大家很清楚,處理
    發(fā)表于 09-22 10:24

    三種時鐘處理的方法

    時鐘處理的方法,這三種方法可以說是FPGA界最常用也最實用的方法,這三種方法包含了bitbit
    發(fā)表于 01-08 16:55

    如何處理好FPGA設計中時鐘間的數(shù)據(jù)

    介紹3種時鐘處理的方法,這3種方法可以說是FPGA界最常用也最實用的方法,這三種方法包含了bit
    發(fā)表于 07-29 06:19

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

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

    CDCbit脈沖時鐘的處理介紹

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

    如何解決bitbit時鐘處理問題?

    一、簡要概述: 在芯片設計過程中,一個系統(tǒng)通常是同步電路和異步電路并存,這里經常會遇到CDC也就是時鐘處理的問題,常見的處理方法,可能大家也已經比較熟悉了,主要有
    的頭像 發(fā)表于 03-22 10:28 ?6610次閱讀

    介紹3種方法時鐘處理方法

    介紹3種時鐘處理的方法,這3種方法可以說是FPGA界最常用也最實用的方法,這三種方法包含了bit
    的頭像 發(fā)表于 09-18 11:33 ?2.2w次閱讀
    <b class='flag-5'>介紹</b>3種方法<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法

    Verilog電路設計之bit時鐘同步和異步FIFO

    FIFO用于為匹配讀寫速度而設置的數(shù)據(jù)緩沖buffer,當讀寫時鐘異步時,就是異步FIFO。bit的數(shù)據(jù)信號,并不是直接從寫時鐘同步到讀
    發(fā)表于 01-01 16:48 ?1202次閱讀

    單位寬信號如何時鐘

    單位寬(Single bit)信號即該信號的位寬為1,通??刂菩盘柧佣?。對于此類信號,如需時鐘可直接使用xpm_cdc_single
    的頭像 發(fā)表于 04-13 09:11 ?1193次閱讀

    bit信號的時鐘傳輸可以使用兩級同步但后果呢?

    看的東西多了,發(fā)現(xiàn)有些并未領會到位。bit信號的時鐘傳輸,可以使用兩級同步,但后果呢?
    的頭像 發(fā)表于 05-10 10:08 ?720次閱讀
    <b class='flag-5'>單</b><b class='flag-5'>bit</b>信號的<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b><b class='flag-5'>傳輸</b>可以使用兩級同步但后果呢?

    FPGA時鐘處理方法(二)

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

    FPGAbit時鐘之格雷碼(一)

    FPGAbit時鐘適合將計數(shù)器信號轉換為格雷碼。
    的頭像 發(fā)表于 05-25 15:21 ?2406次閱讀
    FPGA<b class='flag-5'>多</b><b class='flag-5'>bit</b><b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>之格雷碼(一)

    CDC時鐘處理及相應的時序約束

    CDC(Clock Domain Conversion)時鐘
    的頭像 發(fā)表于 06-21 14:59 ?1548次閱讀

    從處理bit時鐘信號同步問題來入手

    在數(shù)字電路中,時鐘處理是個很龐大的問題,因此將會作為一個專題來陸續(xù)分享。今天先來從處理bit
    發(fā)表于 06-27 11:25 ?1390次閱讀
    從處理<b class='flag-5'>單</b><b class='flag-5'>bit</b><b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>信號同步問題來入手