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

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

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

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

冬至子 ? 來源:FPGA探索者 ? 作者:FPGA探索者 ? 2023-06-21 14:59 ? 次閱讀

**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_property ASYNC_REG TRUE [get_cells [list rst_reg_0 rst_reg_1]]

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

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ū)動時(shí)鐘周期為5,如下所示,讀邏輯約束進(jìn)行相應(yīng)約束。

set_max_delay 5from [get_cells cell1]to [get_cells cell2] –datapath_only

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

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

    關(guān)注

    9

    文章

    428

    瀏覽量

    26465
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1354

    瀏覽量

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

    關(guān)注

    0

    文章

    57

    瀏覽量

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

    關(guān)注

    1

    文章

    92

    瀏覽量

    14597
  • FIFO存儲
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    5955
收藏 人收藏

    評論

    相關(guān)推薦

    vivado約束案例:時(shí)鐘路徑分析報(bào)告

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

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

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

    處理時(shí)鐘CDC)信號同步的最常見方法

    時(shí)鐘( **Clock Domain Crossing,CDC** )通俗地講,就是 **模塊之間數(shù)據(jù)交互時(shí)用的不是同一個(gè)時(shí)鐘進(jìn)行驅(qū)動*
    的頭像 發(fā)表于 09-20 11:24 ?3632次閱讀
    <b class='flag-5'>處理</b><b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>(<b class='flag-5'>CDC</b>)信號同步的最常見方法

    時(shí)鐘時(shí)鐘約束介紹

    ->Core Cock Setup:pll_c0為(Latch Clock) 這兩個(gè)是時(shí)鐘時(shí)鐘,于是根據(jù)文中總結(jié):對于
    發(fā)表于 07-03 11:59

    關(guān)于cdc時(shí)鐘處理的知識點(diǎn),不看肯定后悔

    關(guān)于cdc時(shí)鐘處理的知識點(diǎn),不看肯定后悔
    發(fā)表于 06-21 07:44

    XDC路徑的鑒別、分析和約束方法

    我們知道XDC與UCF的根本區(qū)別之一就是對時(shí)鐘路徑(CDC)的缺省認(rèn)識不同,那么碰到FPGA設(shè)計(jì)中常見的CDC路徑,到底應(yīng)該怎么
    發(fā)表于 11-18 04:04 ?6257次閱讀
    XDC路徑的鑒別、分析和<b class='flag-5'>約束</b>方法

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

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

    關(guān)于FPGA中時(shí)鐘的問題分析

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

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

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

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

    時(shí)鐘處理是FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理時(shí)
    的頭像 發(fā)表于 09-18 11:33 ?2.2w次閱讀
    介紹3種方法<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b>方法

    CDC時(shí)鐘的基礎(chǔ)概念

    時(shí)鐘clock domain:以寄存器捕獲的時(shí)鐘來劃分時(shí)鐘。 單時(shí)鐘
    的頭像 發(fā)表于 08-29 15:11 ?2451次閱讀

    XDC約束技巧之CDC

    上一篇《XDC 約束技巧之時(shí)鐘篇》介紹了 XDC 的優(yōu)勢以及基本語法,詳細(xì)說明了如何根據(jù)時(shí)鐘結(jié)構(gòu)和設(shè)計(jì)要求來創(chuàng)建合適的時(shí)鐘約束。我們知道 X
    的頭像 發(fā)表于 04-03 11:41 ?1961次閱讀

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

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

    時(shí)鐘電路設(shè)計(jì)—單比特信號傳輸

    時(shí)鐘CDC)的應(yīng)從對亞穩(wěn)定性和同步性的基本了解開始。
    的頭像 發(fā)表于 06-27 14:25 ?985次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>電路設(shè)計(jì)—單比特信號傳輸

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

    對于數(shù)字設(shè)計(jì)人員來講,只要信號從一個(gè)時(shí)鐘跨越到另一個(gè)時(shí)鐘,那么就可能發(fā)生亞穩(wěn)態(tài)。我們稱為“時(shí)鐘
    發(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ǔ)問題