<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

什么是復位同步電路 reset synchronizer?

要長高 ? 來源:eetop ? 作者:eetop ? 2024-02-19 09:21 ? 次閱讀

什么是復位同步電路reset synchronizer?

下圖是一個最簡單的復位同步電路。這個電路的輸出rstn_sync用作后續電路中D flip flop的復位信號。

1610588852447210.png

這個電路的工作原理是:

-PorZ低電平,復位同步電路里的兩個D flip flop都被復位。電路的輸出rstn_sync為0,后續電路被復位。

-PorZ由低變高。clk上升沿到來時,第一個D flip flop先變1。過一個周期,第二個D flip flop變1,rstn_sync變1,后續電路離開復位狀態,開始正常工作。

-如果PorZ由低變高和clk上升沿離得很近,第一個D flip flop可能進入亞穩態(metastability)。不過沒關系,第二個D flip flop的輸出rstn_sync還是穩定的。復位同步電路的主要功能就是保障rstn_sync是穩定的0或1,在芯片的有生之年不發生亞穩態(或亞穩態的機率小到忽略不計)。同時,保障rstn_sync相對于clk有一個固定的時序關系。下面詳細討論。

為什么需要復位同步電路reset synchronizer?

這和D flip flop一個比較隱蔽的timing指標有關– removal/recovery time。D flip flop對時鐘沿active edge和復位的release edge是有時序要求的。通常,D flip flop復位端的release edge必須要滯后時鐘active edge一段時間(removal time),而且還要超前下一個時鐘active edge一段時間(recovery time)。如果有違例,那這個D flip flop就會進入亞穩態,在后仿中顯示為X。

復位同步電路reset synchronizer的輸出rstn_sync相對于時鐘clk有一個固定的時序關系。在PnR (place & route)中,工具構造buffer tree去buffer rstn_sync,并算出buffer后rstn_sync到后續每個D flip flop復位端的時間,通過插入或調整buffer,保障后續電路中每一個D flip flop的復位端都滿足removal/recovery要求。反之,如果rstn_sync相對于時鐘clk沒有有一個固定的關系,那工具就無從下手了,也就無法保障removal/recovery要求了。

順便說一下,綜合工具是不查removal/recovery time的。如果復位電路上有錯,通常會在設計流程很后面才發現,改起來代價也會高一些。所以一定要在一開始就重視復位電路。

為什么復位同步電路reset synchronizer自己不會進入亞穩態?

前面講了,第一級的D flip flop是有可能進入亞穩態。關鍵在于第二級。第二級的D輸入端在第一個clk到來的時刻仍是穩定的低電平(第一級的輸出此時尚未變成亞穩態X),第二級的的狀態不需要改變,仍舊保持原來復位后的0狀態。等到第二個clk到來的時候,如果第一級已經不在亞穩態了,第二級的D輸入就是一個穩定的1,那第二級的輸出rstn_sync自然就變成穩定的1了。即使第一級在第二個clk到來的時候沒有完全走出亞穩態,只要第一級的輸出不在中間值附近,第二級仍會把第一級的輸出當成0或1,第二級的輸出rstn_sync也就因此為穩定的0或1。這也就是為什么有時候復位同步電路reset synchronizer的latency是在1-3個時鐘之間。

有條件的同學,不妨跑一下Spectre sim,觀察一下D flip flop內部的信號,加深removal/recovery time的理解。眼見為實。

如果兩個D flip flop還不夠MTBF指標(發生亞穩態的概率仍不夠?。?,可以再加第三級。

有些標準元庫中有專門的同步電路,synchronizer cell。應該盡量使用這種synchronizer cell,比自己用兩個D flip flop搭更可靠。專門的synchronizer第二級是高增益的,大大降低第二級進入亞穩態的可能性。

復位同步電路reset synchronizer能加到掃描鏈里嗎?

1610813938274129.png

這里加了兩個MUX,這樣可以讓工具把同步復位電路的兩個D flip flop連到scan chain里,增加test coverage。

使用復位同步電路reset synchronizer需要注意的地方

一個復位同步電路reset synchronizer只能用到一個時鐘域。如果有幾個不同步的時鐘域,就要考慮使用多個復位同步電路。同步的時鐘域可以考慮復用一個復位同步電路reset synchronizer,但要做得仔細一些。

復位同步電路reset synchronizer有什么弊病嗎

復位同步電路reset synchronizer其實只在復位信號release的時候派上用場。復位結束后,這個電路其實就沒用了。但這個電路的時鐘還在switch,這個電路還在耗電。如果是高速時鐘,這個耗電就可觀了。低功耗設計,就要考慮是否可以關掉時鐘。這個根據不同場景,就非常復雜了,需要非常小心。

復位同步電路reset synchronizer是必須的嗎?

很多人通常不加思索一上來就加上同步復位電路reset synchronizer。這種條件反射本身是好習慣。

如果精益求精,那就要多思考一下了。有些場景是不需要復位同步電路reset synchronizer的。

復位的目的是讓電路有個明確的起始狀態。如果不需要明確的初始狀態,而且電路跑一段時間后能清除所有不確定狀態,進入正常狀態,那就可以考慮不用復位同步電路。例如FIR。如果使用場景中可以容忍初始輸出為垃圾,異步復位是可以的。

還有一個被99%的設計者忽略的場景。如果復位信號release的時候,時鐘還沒有啟動,那就根本不需要復位同步電路reset synchronizer。很多時候,芯片是內部oscillator, PLL提供時鐘的。而oscillator, PLL啟動都需要時間的。如果復位在這段時間內release,那就不需要同步復位電路reset synchronizer了。在低功耗設計中,尤其是多個內部時鐘域的場景,省下的功耗就可觀了。當然,設計要做得非常仔細。

還有一個場景就是內部產生的復位信號。做得精妙的設計,可以保證在內部復位release的時候沒有時鐘,也就不需要什么復位同步電路reset synchronizer了。內部產生復位信號是一個很有效的設計技巧。這個技巧復用現成的reset network同時將很多D flip flop清零,省去了在D flip flop的D輸入邏輯(D input logic cone)加上清零條件,可以節省很多門。

復位同步電路reset synchronizer在RTL里的實現

通常做成一個單獨的module,在主設計中例化這個module。

好了,希望復位同步講全面了。

審核編輯:黃飛

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

    關注

    6

    文章

    741

    瀏覽量

    134587
  • 復位電路
    +關注

    關注

    13

    文章

    308

    瀏覽量

    44291
  • 低電平
    +關注

    關注

    1

    文章

    81

    瀏覽量

    13094
  • 復位信號
    +關注

    關注

    0

    文章

    50

    瀏覽量

    6170
收藏 人收藏

    評論

    相關推薦

    Xilinx FPGA異步復位同步釋放—同步后的復位該當作同步復位還是異步復位?

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

    為什么需要復位電路?漫談復位reset

    在IC設計中,把復位和時鐘電路稱為最重要的兩個電路一點也不為過。前者復位電路把IC設計的電路引導
    的頭像 發表于 01-19 16:41 ?773次閱讀
    為什么需要<b class='flag-5'>復位</b><b class='flag-5'>電路</b>?漫談<b class='flag-5'>復位</b><b class='flag-5'>reset</b>

    同步復位sync和異步復位async

    )。其實做起來也并不難,我推薦一種我經常使用的方式吧:那就是在異步復位鍵后加上一個所謂的“reset synchronizer”,這樣就可以使異步復位信號
    發表于 11-14 16:03

    同步復位和異步復位的比較(轉載)

    。具體方式是:在異步復位后加上一個所謂的“reset synchronizer”,這樣就可以使異步復位信號同步化,然后,再用經過處理的
    發表于 05-05 23:11

    請問一下Reset信號如何實現同步

    首先來復習一個更加基礎的概念:同步reset和異步reset。同步reset(synchronous r
    發表于 11-09 15:04

    HT66Fx0系列MCU的Reset復位電路應用介紹

    HT66Fx0系列MCU的Reset復位電路應用介紹HT66Fx0 系列MCU 的Reset 復位電路
    發表于 03-27 08:38 ?35次下載

    復位穩定放大器:The Reset Stabilized A

    復位穩定放大器:The Reset Stabilized Amplifier The reset stabilized amplifier is a form of chopper-stabilized amplifier a
    發表于 05-16 16:12 ?1147次閱讀
    <b class='flag-5'>復位</b>穩定放大器:The <b class='flag-5'>Reset</b> Stabilized A

    如何區分同步復位和異步復位?

    問:如何區分同步復位和異步復位?可以理解為同步復位是作用于狀態,然后通過狀態來驅動電路
    的頭像 發表于 06-11 15:15 ?6480次閱讀

    同步復位和異步復位電路簡介

    同步復位和異步復位都是狀態機的常用復位機制,圖1中的復位電路結合了各自的優點。
    的頭像 發表于 08-12 15:20 ?6978次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>復位</b>和異步<b class='flag-5'>復位</b><b class='flag-5'>電路</b>簡介

    詳細講解同步后的復位同步復位還是異步復位?

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

    STM32下載后無法自動復位,需手動復位 下載程序時,勾選reset and run后仍不可自動復位

    項目場景:STM32下載后無法自動復位,需手動復位下載程序時,勾選reset and run后仍不可自動復位問題描述:STM32下載后無法自動復位
    發表于 01-17 12:36 ?11次下載
    STM32下載后無法自動<b class='flag-5'>復位</b>,需手動<b class='flag-5'>復位</b> 下載程序時,勾選<b class='flag-5'>reset</b> and run后仍不可自動<b class='flag-5'>復位</b>

    Reset復位電路的PCB布局布線要求

    Reset復位電路的PCB布局布線要求 —來源:瑞芯微RK3588 PCB設計白皮書 Reset復位電路
    的頭像 發表于 08-03 07:45 ?653次閱讀
    <b class='flag-5'>Reset</b><b class='flag-5'>復位</b><b class='flag-5'>電路</b>的PCB布局布線要求

    同步復位與異步復位的區別

    請簡述同步復位與異步復位的區別,說明兩種復位方式的優缺點,并解釋“異步復位,同步釋放”。
    的頭像 發表于 08-14 11:49 ?4189次閱讀

    淺析異步復位同步釋放與同步復位打拍模塊

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

    Linux的reset復位API說明

    入的reset資源進行解復位操作 參數 : rstc:指向申請reset資源的設備句柄 返回 : 成功:返回0 失?。悍祷劐e誤碼 reset_control_assert int re
    的頭像 發表于 09-27 14:14 ?463次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>