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

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

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

異步復(fù)位同步釋放有多個時鐘域時如何處理 異步復(fù)位同步釋放的策略

FPGA技術(shù)驛站 ? 來源:FPGA技術(shù)驛站 ? 2023-07-20 09:04 ? 次閱讀

對于從FPGA外部進(jìn)來的信號,我們通常采用“異步復(fù)位同步釋放的策略”,具體電路如下圖所示。圖中src_arst是輸入異步復(fù)位信號,dest_arst是同步釋放的異步復(fù)位信號,其后負(fù)載為需要異步復(fù)位的觸發(fā)器。

02cb3c08-2691-11ee-962d-dac502259ad0.png

從時序關(guān)系的角度來看,結(jié)合如下仿真波形,異步復(fù)位信號在藍(lán)色標(biāo)記的時鐘上升沿被釋放,所有觸發(fā)器將在紅色邊沿開始輸出D端口數(shù)據(jù)。

問題是如果后續(xù)觸發(fā)器公眾在不同的時鐘頻率下,這種方式是否仍能確保所有觸發(fā)器的異步復(fù)位信號在同一個時鐘上升沿被釋放?為便于說明,我們假定設(shè)計(jì)中有兩個時鐘,分別為100MHz和200MHz,均有同一個MMCM/PLL生成,即二者是同步時鐘(同相不同頻)。

03030c50-2691-11ee-962d-dac502259ad0.png

第一種情況:同步器工作在100MHz時鐘的上升沿

在這種情況下,假定異步復(fù)位在標(biāo)記(1)被釋放,那么200M時鐘域下的觸發(fā)器將在標(biāo)記(3)開始輸出D端數(shù)據(jù),而100M時鐘域下的觸發(fā)器則要在標(biāo)記(5)開始輸出D端數(shù)據(jù),顯然,兩者并沒有在同一個時鐘沿下開始工作。

03187d38-2691-11ee-962d-dac502259ad0.png

第二種情況:同步器工作在200MHz時鐘的上升沿

在這種情況下,如果異步復(fù)位是在標(biāo)記(3)釋放,那么100M時鐘域下的觸發(fā)器和200M時鐘域下的觸發(fā)器都將在標(biāo)記(5)結(jié)束復(fù)位,開始輸出D端口數(shù)據(jù)。

0349a30e-2691-11ee-962d-dac502259ad0.png

但是,如果復(fù)位是在標(biāo)記(1)釋放,如下圖所示,100M時鐘域下的觸發(fā)器將在標(biāo)記(5)輸出D端口數(shù)據(jù),而200M時鐘域下的觸發(fā)器將在標(biāo)記(3)輸出D端口數(shù)據(jù)。

035c3af0-2691-11ee-962d-dac502259ad0.png

第三種情況:同步器工作在100MHz時鐘的下降沿

在這種情況下,同步器工作在100MHz時鐘的下降沿,但后續(xù)觸發(fā)器仍工作在時鐘的上升沿。如下圖所示。異步復(fù)位在標(biāo)記(3)釋放,那么100M時鐘域下的觸發(fā)器將在標(biāo)記(5)開始輸出D端口數(shù)據(jù),200M時鐘域下的觸發(fā)器也在此刻輸出D端口數(shù)據(jù),故兩者可以在同一個時刻開始釋放復(fù)位正常工作。

038909f4-2691-11ee-962d-dac502259ad0.png

如果兩個時鐘是異步時鐘,都要使用外部提供的同一個復(fù)位信號,這時無法做到這兩個時鐘域下的觸發(fā)器實(shí)現(xiàn)復(fù)位信號同步釋放。這是因?yàn)檫@兩個時鐘之間沒有明確的相位關(guān)系,這就造成同步器引發(fā)的延遲差是不確定的。這種情況下,我們需要對每個時鐘域添加同步器,生成各自時鐘域下的復(fù)位信號,如下圖所示。

03a6f2d4-2691-11ee-962d-dac502259ad0.png








審核編輯:劉清

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • pll
    pll
    +關(guān)注

    關(guān)注

    6

    文章

    776

    瀏覽量

    135163
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1733

    瀏覽量

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

    關(guān)注

    14

    文章

    2000

    瀏覽量

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

    關(guān)注

    1

    文章

    98

    瀏覽量

    14637
  • 異步復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

    13315
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6408

原文標(biāo)題:異步復(fù)位同步釋放有多個時鐘域時如何處理

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Xilinx FPGA異步復(fù)位同步釋放同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位?

    針對異步復(fù)位、同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號時,到底是使用
    發(fā)表于 06-21 09:59 ?1489次閱讀
    Xilinx FPGA<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b><b class='flag-5'>釋放</b>—<b class='flag-5'>同步</b>后的<b class='flag-5'>復(fù)位</b>該當(dāng)作<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>還是<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>?

    異步復(fù)位異步釋放會有什么問題?FPGA異步復(fù)位為什么要同步釋放呢?

    一般來說,復(fù)位信號有效后會保持比較長一段時間,確保 register 被復(fù)位完成。但是復(fù)位信號釋放時,因?yàn)槠浜?b class='flag-5'>時鐘是
    的頭像 發(fā)表于 01-24 09:32 ?1736次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>異步</b><b class='flag-5'>釋放</b>會有什么問題?FPGA<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>為什么要<b class='flag-5'>同步</b><b class='flag-5'>釋放</b>呢?

    同步復(fù)位sync和異步復(fù)位async

    )的時候容易出現(xiàn)問題。具體就是說:若復(fù)位釋放剛好在時鐘有效沿附近時,很容易使寄存器輸出出現(xiàn)亞穩(wěn)態(tài),從而導(dǎo)致亞穩(wěn)態(tài)。 [td][td=107]總結(jié)推薦使用異步
    發(fā)表于 11-14 16:03

    verilog 異步復(fù)位同步釋放

    fpga 的 異步復(fù)位同步釋放代碼如下module asy_rst(clk,rst_n,asy_rst);input clk;input rst_n;output asy_rst;re
    發(fā)表于 05-28 13:02

    同步復(fù)位異步復(fù)位,同步釋放的對比疑問

    在網(wǎng)上了解到fpga的同步復(fù)位異步復(fù)位都會存在不足,因此有人提出異步復(fù)位,
    發(fā)表于 04-16 22:17

    同步復(fù)位異步復(fù)位的比較(轉(zhuǎn)載)

    ,都要考慮復(fù)位端與時序的相位關(guān)系。對于同步復(fù)位復(fù)位信號可以理解為一個普通的數(shù)據(jù)信號,它只有在時鐘的跳變沿才會起作用,一般只要
    發(fā)表于 05-05 23:11

    關(guān)于異步復(fù)位同步釋放理解與分析

    是指復(fù)位信號是異步有效的,即復(fù)位的發(fā)生與clk無關(guān)。后半句“同步釋放”是指復(fù)位信號的撤除也與cl
    發(fā)表于 11-30 08:58 ?2.5w次閱讀
    關(guān)于<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b><b class='flag-5'>釋放</b>理解與分析

    FPGA設(shè)計(jì)中的異步復(fù)位同步釋放問題

    異步復(fù)位同步釋放 首先要說一下同步復(fù)位異步
    發(fā)表于 06-07 02:46 ?2153次閱讀

    異步復(fù)位同步釋放的基本原理與代碼舉例

    異步復(fù)位同步釋放是指復(fù)位信號是異步有效的,即復(fù)位的發(fā)
    的頭像 發(fā)表于 11-20 07:06 ?4208次閱讀

    詳細(xì)講解同步后的復(fù)位同步復(fù)位還是異步復(fù)位?

    針對異步復(fù)位同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號時,到底是使用
    的頭像 發(fā)表于 04-27 18:12 ?4769次閱讀
    詳細(xì)講解<b class='flag-5'>同步</b>后的<b class='flag-5'>復(fù)位</b>是<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>還是<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>?

    RTL中多時鐘異步復(fù)位同步釋放

    1 多時鐘異步復(fù)位同步釋放 當(dāng)外部輸入的復(fù)位信號
    的頭像 發(fā)表于 05-08 09:59 ?2519次閱讀
    RTL中多<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b><b class='flag-5'>釋放</b>

    【FPGA】異步復(fù)位,同步釋放的理解

    異步復(fù)位,同步釋放的理解目錄目錄 同步復(fù)位異步
    發(fā)表于 01-17 12:53 ?4次下載
    【FPGA】<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>,<b class='flag-5'>同步</b><b class='flag-5'>釋放</b>的理解

    同步復(fù)位異步復(fù)位的區(qū)別

    請簡述同步復(fù)位異步復(fù)位的區(qū)別,說明兩種復(fù)位方式的優(yōu)缺點(diǎn),并解釋“異步
    的頭像 發(fā)表于 08-14 11:49 ?7264次閱讀

    淺析異步復(fù)位同步釋放同步復(fù)位打拍模塊

    異步復(fù)位同步釋放:rst_synchronizer.v
    的頭像 發(fā)表于 08-21 09:27 ?1000次閱讀
    淺析<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b><b class='flag-5'>釋放</b>與<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>打拍模塊

    FPGA學(xué)習(xí)-異步復(fù)位同步釋放

    點(diǎn)擊上方 藍(lán)字 關(guān)注我們 系統(tǒng)的復(fù)位對于系統(tǒng)穩(wěn)定工作至關(guān)重要,最佳的復(fù)位方式為:異步復(fù)位,同步釋放
    的頭像 發(fā)表于 09-09 14:15 ?1210次閱讀
    FPGA學(xué)習(xí)-<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>,<b class='flag-5'>同步</b><b class='flag-5'>釋放</b>