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

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

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

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

FPGA研究院 ? 來(lái)源:FPGA開(kāi)發(fā)之路 ? 2024-01-24 09:32 ? 次閱讀

一般來(lái)說(shuō),復(fù)位信號(hào)有效后會(huì)保持比較長(zhǎng)一段時(shí)間,確保 register 被復(fù)位完成。但是復(fù)位信號(hào)釋放時(shí),因?yàn)槠浜?a href="http://ttokpm.com/tags/時(shí)鐘/" target="_blank">時(shí)鐘是異步的關(guān)系,我們不知道它會(huì)在什么時(shí)刻被釋放。

首先看圖1,考慮復(fù)位信號(hào)在兩個(gè)時(shí)鐘沿之間被釋放的情況。Reset 信號(hào)從 Device Pin 到 Flip-Flop 的延遲最大不能超過(guò)“Max Time Available”,如果延遲超過(guò)了這個(gè)限制,那么復(fù)位信號(hào)的釋放會(huì)進(jìn)入 Setup Time 要求的區(qū)間,導(dǎo)致 Flip-Flop 進(jìn)入亞穩(wěn)態(tài)。當(dāng)時(shí)鐘頻率變高,時(shí)鐘周期變短,不難發(fā)現(xiàn),要滿(mǎn)足這個(gè)要求是越來(lái)越難的。

1c3763b0-ba48-11ee-8b88-92fbcf53809c.jpg

圖1 - Reset timing diagram, deasserted between clock edges

前面我們提到過(guò),因?yàn)槭钱惒叫盘?hào),我們無(wú)法確保信號(hào)的釋放在一個(gè)確定的區(qū)間。如圖2所示,對(duì)于 Flip-Flop 來(lái)說(shuō),異步信號(hào)的釋放可能在A區(qū)間,也可能在B或者C區(qū)間。假設(shè)現(xiàn)在我們的設(shè)計(jì)中包含三個(gè) Flip-Flop,分別為FF1,F(xiàn)F2 和 FF3。FF1 的復(fù)位釋放落在A區(qū)間,所以 FF1 會(huì)在復(fù)位信號(hào)釋放后的第一個(gè)時(shí)鐘沿有效,F(xiàn)F3 的復(fù)位釋放落在C區(qū)間,那么 FF3 會(huì)在復(fù)位信號(hào)釋放后的第二個(gè)時(shí)鐘沿有效,而 FF2 的復(fù)位釋放落在B區(qū)間,所以 FF2 可能會(huì)進(jìn)入亞穩(wěn)態(tài)。

1c40eafc-ba48-11ee-8b88-92fbcf53809c.jpg

圖2 - Reset deasserted asynchronously to the clock

不同的 FF 因?yàn)閺?fù)位信號(hào)釋放的位置不同而在不同的時(shí)刻有效,這會(huì)對(duì)設(shè)計(jì)造成影響嗎?

假如我們的設(shè)計(jì)是如圖3所示的情況,是不會(huì)對(duì)設(shè)計(jì)的功能造成影響的。在復(fù)位釋放之后,任何有問(wèn)題的數(shù)據(jù)會(huì)被Pipeline排出去,經(jīng)過(guò)4個(gè)cycle之后,這個(gè)pipeline便會(huì)恢復(fù)到正常的工作狀態(tài)。

1c4468ee-ba48-11ee-8b88-92fbcf53809c.jpg

圖3 - Reset for a pipeline

但如果我們的設(shè)計(jì)是如圖4所示。被復(fù)位的FF是狀態(tài)機(jī)的狀態(tài),那么復(fù)位釋放后很有可能狀態(tài)機(jī)會(huì)被復(fù)位到一個(gè)無(wú)效的狀態(tài),影響正常的功能。

1c483a96-ba48-11ee-8b88-92fbcf53809c.jpg

圖4 - Reset for a one-hot state machine

什么是同步釋放 ?

從上一部分的內(nèi)容我們發(fā)現(xiàn),異步信號(hào)的異步釋放會(huì)導(dǎo)致 FF 在不同的時(shí)刻有效,甚至進(jìn)入亞穩(wěn)態(tài),從而影響設(shè)計(jì)的功能運(yùn)行。如何避免這個(gè)問(wèn)題呢?考慮同步釋放。顧名思義,同步釋放就是讓復(fù)位信號(hào)的釋放過(guò)程與時(shí)鐘同步,從而確保所有 FF 在同一時(shí)刻有效。

如圖5所示,是異步復(fù)位同步釋放的電路設(shè)計(jì)。FDP的個(gè)數(shù)決定復(fù)位信號(hào)保持的長(zhǎng)度,最少要有兩個(gè)。當(dāng)復(fù)位信號(hào)釋放后,F(xiàn)DP chain 會(huì)將接地的0逐級(jí)pipe到最后一個(gè)FDP輸出,因?yàn)樵揊DP的輸出是和Clock同步的,所以FDR的復(fù)位釋放便是和Clock 同步的。

1c5e5a4c-ba48-11ee-8b88-92fbcf53809c.jpg

圖5 - Async reset with sync dessertion

最后一個(gè)FDP不是仍然是異步復(fù)位異步釋放么,會(huì)不會(huì)這個(gè)FDP因?yàn)楫惒结尫胚M(jìn)入亞穩(wěn)態(tài),那么其輸出的復(fù)位信號(hào)也不確定從而導(dǎo)致復(fù)位失???

答案是不會(huì)。FDP會(huì)進(jìn)入亞穩(wěn)態(tài)的條件是什么?一是異步釋放非常貼近時(shí)鐘沿,二是 FDP 輸入D在時(shí)鐘沿附近發(fā)生跳變。根據(jù)這個(gè)電路設(shè)計(jì),F(xiàn)DP的輸入D時(shí)不會(huì)在異步釋放時(shí)發(fā)生跳變的,所以FDP不會(huì)進(jìn)入亞穩(wěn)態(tài)。

異步復(fù)位同步釋放的時(shí)序約束

異步復(fù)位同步釋放的電路我們已經(jīng)設(shè)計(jì)好了,如何進(jìn)行時(shí)序約束呢?

對(duì)于 FDR,我們可以不用考慮的。因?yàn)楣ぞ邥?huì)分析復(fù)位信號(hào)的 Recovery Time 和 Removal Time 來(lái)確保時(shí)序收斂。如果發(fā)現(xiàn) Recovey Time 或者 Removal Time 的違反,我們可能需要看一下 reset tree 或者 clock skew。一般都是 Recovey Time的違反,類(lèi)似于 Setup Time,可能是由于 reset path的延遲太長(zhǎng)導(dǎo)致。

對(duì)于 FDP,D端是同步電路,而CLR輸入端是異步信號(hào),通過(guò)電路的設(shè)計(jì)我們已經(jīng)避免的異步信號(hào)帶來(lái)的問(wèn)題,所以為了避免 false timing violation,我們可以對(duì) FDP 的 CLR 端設(shè)置 false path。





審核編輯:劉清

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

    關(guān)注

    9

    文章

    428

    瀏覽量

    26465
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    491

    瀏覽量

    27454
  • FDR
    FDR
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

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

    關(guān)注

    0

    文章

    46

    瀏覽量

    13297

原文標(biāo)題:FPGA復(fù)位設(shè)計(jì)中異步復(fù)位為什么要同步釋放 ?

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    針對(duì)異步復(fù)位、同步釋放,一直沒(méi)搞明白在使用同步化以后的復(fù)位信號(hào)時(shí),到底是使用
    發(fā)表于 06-21 09:59 ?1347次閱讀
    Xilinx <b class='flag-5'>FPGA</b><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ù)位同步釋放有多個(gè)時(shí)鐘域時(shí)如何處理 異步復(fù)位同步釋放的策略

    對(duì)于從FPGA外部進(jìn)來(lái)的信號(hào),我們通常采用“異步復(fù)位同步釋放的策略”,具體電路如下圖所示。
    的頭像 發(fā)表于 07-20 09:04 ?1824次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b><b class='flag-5'>釋放</b>有多個(gè)時(shí)鐘域時(shí)如何處理 <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

    %的同步時(shí)序電路,有利于時(shí)序分析。1)設(shè)計(jì)相對(duì)簡(jiǎn)單。2)因?yàn)榇蠖鄶?shù)目標(biāo)器件庫(kù)的dff都有異步復(fù)位端口,因此采用異步復(fù)位可以節(jié)省資源。3)
    發(fā)表于 11-14 16:03

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

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

    同步復(fù)位異步復(fù)位,同步釋放的對(duì)比疑問(wèn)

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

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣

    異步復(fù)位同步釋放的理解目錄目錄同步復(fù)位異步
    發(fā)表于 01-17 07:01

    同步復(fù)位異步復(fù)位有什么聯(lián)系與區(qū)別,優(yōu)缺點(diǎn)!

     異步復(fù)位原理:異步復(fù)位只要有復(fù)位信號(hào)系統(tǒng)馬上復(fù)位,因此異步
    發(fā)表于 11-30 08:45 ?9.9w次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>和<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>有什么聯(lián)系與區(qū)別,優(yōu)缺點(diǎn)!

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

    是指復(fù)位信號(hào)是異步有效的,即復(fù)位的發(fā)生與clk無(wú)關(guān)。后半句“同步釋放”是指復(fù)位信號(hào)的撤除也與cl
    發(fā)表于 11-30 08:58 ?2.4w次閱讀
    關(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ù)位同步釋放問(wèn)題

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

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

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

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

    針對(duì)異步復(fù)位、同步釋放,一直沒(méi)搞明白在使用同步化以后的復(fù)位信號(hào)時(shí),到底是使用
    的頭像 發(fā)表于 04-27 18:12 ?4638次閱讀
    詳細(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>?

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

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

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

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

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

    異步復(fù)位同步釋放:rst_synchronizer.v
    的頭像 發(fā)表于 08-21 09:27 ?931次閱讀
    淺析<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ù)位對(duì)于系統(tǒng)穩(wěn)定工作至關(guān)重要,最佳的復(fù)位方式為:異步復(fù)位,同步釋放
    的頭像 發(fā)表于 09-09 14:15 ?1031次閱讀
    <b class='flag-5'>FPGA</b>學(xué)習(xí)-<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>,<b class='flag-5'>同步</b><b class='flag-5'>釋放</b>