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

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

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

CDC跨時(shí)鐘域分單bit和多bit傳輸介紹

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

多bit跨時(shí)鐘

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

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

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

C. 對(duì)于連續(xù)變化的信號(hào),發(fā)送方轉(zhuǎn)為格雷碼發(fā)送,接收方收到后再轉(zhuǎn)為二進(jìn)制;

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

答案:A

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

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

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

其中:

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


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

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

set_propertyASYNC_REGTRUE[get_cells[listrst_reg_0rst_reg_1]]

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

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

(1)使用異步FIFO的IP

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

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

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

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

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

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

寫邏輯從cell1到cell2的約束中,cell2的驅(qū)動(dòng)時(shí)鐘周期為5,如下所示,讀邏輯約束進(jìn)行相應(yīng)約束。


poYBAGMML2WABtvqAAA8WO7wAAI530.jpg

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

set_propertyASYNC_REGTRUE[get_cells[listrst_reg_0rst_reg_1]]




審核編輯:劉清

聲明:本文內(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)投訴
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1352

    瀏覽量

    114386
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    386

    瀏覽量

    43469
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1704

    瀏覽量

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

    關(guān)注

    0

    文章

    56

    瀏覽量

    17743

原文標(biāo)題:CDC跨時(shí)鐘域處理及相應(yīng)的時(shí)序約束【set_clock_groups】【set_max_delay】

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于時(shí)鐘信號(hào)的處理方法

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

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

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

    三種時(shí)鐘處理的方法

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

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

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

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

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

    CDCbit脈沖時(shí)鐘的處理介紹

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

    如何解決bitbit時(shí)鐘處理問題?

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

    介紹3種方法時(shí)鐘處理方法

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

    Verilog電路設(shè)計(jì)之bit時(shí)鐘同步和異步FIFO

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

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

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

    bit信號(hào)的時(shí)鐘傳輸可以使用兩級(jí)同步但后果呢?

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

    FPGA時(shí)鐘處理方法(二)

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

    FPGAbit時(shí)鐘之格雷碼(一)

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

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

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

    從處理bit時(shí)鐘信號(hào)同步問題來入手

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