精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

Hx ? 來源:FPGA探索者 ? 作者:FPGA探索者 ? 2021-04-27 18:12 ? 次閱讀

Xilinx 復位準則:Xilinx FPGA復位策略

(1)盡量少使用復位,特別是少用全局復位,能不用復位就不用,一定要用復位的使用局部復位;

(2)如果必須要復位,在同步和異步復位上,則盡量使用同步復位,一定要用異步復位的地方,采用“異步復位、同步釋放”;

(3)復位電平選擇高電平復位;

(這里說明,由于 Altera 和 Xilinx 器件內部結構的不同,Altera 的 FPGA 推薦低電平復位)

一、異步復位同步釋放

針對異步復位、同步釋放,一直沒搞明白在使用同步化以后的復位信號時,到底是使用同步復位還是異步復位?

比如針對輸入的異步復位信號rst,使用本地時鐘clk將其同步化以后得到一個新的復位信號sys_rst,當使用sys_rst時,是將sys_rst作為同步復位信號還是異步復位信號?

always @(posedge clk or posedge rst) begin if(rst)begin rst_r0 《 = 1‘b1; rst_r1 《 = 1’b1; end else begin rst_r0 《 = 1‘b0; rst_r1 《 = rst_r0; end end assign sys_rst = rst_r1;

如下圖所示,選方式1還是方式2?

100062600-124726-1.png

針對此問題查找了很多資料,網絡上多是將sys_rst繼續按照方式1異步復位使用,Xilinx復位白皮書wp272中提到的異步復位同步釋放 如圖所示:

100062600-124727-2.png

對于輸入的異步復位Asynchronous Reset,首先使用了4個觸發器來做同步(一般用2個即可,4個出現亞穩態的概率更小),觸發器類型為FDP(異步置位),同步化以后的復位信號去使用時綜合出的觸發器類型為FDR(同步復位),即在Xilinx中是將sys_rst按照方式2同步復位使用。

使用FDP異步置位的原因是因為Xilinx推薦高電平復位,當異步復位信號到來時,輸出復位電平“1”,即異步置位FDP,當復位消失后,D觸發器在每個時鐘邊沿輸出前一級觸發器的值,一定周期后,最后一級的FDP穩定輸出“0”。

使用Xilinx A7系列FPGA實現異步復位、同步釋放代碼,確定同步化后的復位使用情況。

二、Xilinx復位程序對比

1. 將同步化后的復位當作異步復位信號

/******FPGA探索者******/ always @(posedge clk or posedge rst_async) begin if(rst_async == 1’b1) begin rst_sync_reg1 《= 1‘b1; rst_sync_reg2 《= 1’b1; rst_sync_reg3 《= 1‘b1; rst_sync_reg4 《= 1’b1; end else begin rst_sync_reg1 《= 1‘b0; rst_sync_reg2 《= rst_sync_reg1; rst_sync_reg3 《= rst_sync_reg2; rst_sync_reg4 《= rst_sync_reg3; end end wire sys_rst; assign sys_rst = rst_sync_reg4; always @(posedge clk) begin if(sys_rst == 1’b1) begin data_out_rst_async 《= 1‘b0; end else begin data_out_rst_async 《= a & b & c & d; end end

綜合并布局布線后的原理圖如圖所示,顯然,綜合后對sys_rst復位,將其作為異步復位綜合出FDCE同步使能異步復位(這里不考慮使能),和白皮書WP272給出的參考電路顯然不一致。

100062600-124730-3.png

100062600-124732-4.png

2. 將同步化后的復位當作同步復位信號

/******FPGA探索者******/ always @(posedge clk or posedge rst_async) begin if(rst_async == 1’b1) begin rst_sync_reg1 《 = 1‘b1; rst_sync_reg2 《 = 1’b1; rst_sync_reg3 《 = 1‘b1; rst_sync_reg4 《 = 1’b1; end else begin rst_sync_reg1 《 = 1‘b0; rst_sync_reg2 《 = rst_sync_reg1; rst_sync_reg3 《 = rst_sync_reg2; rst_sync_reg4 《 = rst_sync_reg3; end end wire sys_rst; assign sys_rst = rst_sync_reg4; always @(posedge clk) begin if(sys_rst == 1’b1) begin data_out_rst_async 《 = 1‘b0; end else begin data_out_rst_async 《 = a & b & c & d; end end

綜合并布局布線后的原理圖如圖所示,顯然,綜合后對sys_rst復位,將其作為同步復位綜合出FDRE同步使能異步復位(這里不考慮使能),和白皮書WP272給出的參考電路一致。

100062600-124734-5.png

異步復位相比較同步復位,在Xilinx的FPGA中資源是一致的,異步復位的優勢在于復位信號一來就能檢測到,不需要保持至少一個時鐘周期才能在時鐘邊沿檢測到,通過仿真來驗證上述電路是否能實現異步復位一來就能檢測到。

三、仿真結果

設置時鐘50MHz,時鐘周期20ns,給一個持續時間3ns的異步復位信號,且持續時間均不出現在時鐘上升沿檢測期間,可以看到:

(1)rst_async異步復位一旦給出,用于同步的4個寄存器rst_sync_reg1~4立刻輸出高電平“1”,在下一個時鐘上升沿檢測到同步復位并將輸出data_out_rst_async復位;

(2)異步復位信號釋放后,經過同步的sys_rst經過一定周期后在時鐘邊沿同步釋放;

100062600-124735-6.png

按照同樣的復位,將sys_rst看作異步復位,仿真結果如下,相比于上圖,區別在于異步復位信號rst_async一旦產生,輸出立刻復位,且同樣是同步釋放,好像這種處理才更符合異步復位、同步釋放。。。。。。

100062600-124737-7.png

那么為什么Xilinx白皮書還是將sys_rst按照同步復位去做的呢?難道寫錯了?

綜合考慮可能有這樣的因素:

(1)當作同步復位的差別只在于復位時間會稍晚一些,要在時鐘的下一個邊沿檢測到,但是還是能夠識別到輸入的rst_async異步復位信號,所以從復位角度來說,都能夠后實現復位效果;

(2)根據Xilinx復位準則,我們知道同步復位相比異步復位有很多好處,具體參見:Xilinx FPGA 復位策略白皮書,既然兩者對后級復位沒有功能上的差別,那么優先選擇同步復位;

經過異步復位同步釋放處理后,相比于純粹的異步復位,降低了異步復位信號釋放導致亞穩態的可能性;相比同步復位,能夠識別到同步復位中檢測不到的復位信號(如上圖所示的rst_async在同步復位是檢測不到的);綜合兩者的優勢,異步復位同步釋放。

四、Altera復位

Altera還是把這個同步后的復位當作異步復位來用的,且推薦低電平復位。

從上面的分析來看,這里當作異步復位還是同步復位對于復位結果本身沒有太大的影響,區別在于Xilinx是推薦同步復位來節省資源(比如DSP48E或BRAM,異步復位比同步復位耗資源),而Altera的FPGA中帶異步復位的觸發器,想要同步復位需要消耗更多的資源。

100062600-124738-8.png

編輯:lyn

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

    關注

    1626

    文章

    21665

    瀏覽量

    601818
  • Xilinx
    +關注

    關注

    71

    文章

    2163

    瀏覽量

    121005
  • 同步復位
    +關注

    關注

    0

    文章

    27

    瀏覽量

    10704
  • 異步復位
    +關注

    關注

    0

    文章

    47

    瀏覽量

    13300
收藏 人收藏

    評論

    相關推薦

    FPGA復位的8種技巧

    其它輸入引腳類似,對 FPGA 來說往往是異步的。設計人員可以使用這個信號在 FPGA 內部對自己的設計進行異步或者同步復位。 不過在一些提示和技巧的幫助下,設計人員可以找到更加合適的
    的頭像 發表于 11-16 10:18 ?199次閱讀
    FPGA<b class='flag-5'>復位</b>的8種技巧

    復位電路的設計問題

    前言 最近看advanced fpga 以及fpga設計實戰演練中有講到復位電路的設計,才知道復位電路有這么多的門道,而不是簡單的外界信號輸入系統復位。 流程: 1.同步
    的頭像 發表于 11-15 11:13 ?98次閱讀
    <b class='flag-5'>復位</b>電路的設計問題

    STM32復位電路用復位芯片和阻容復位電路區別

    STM32是一款廣泛使用的微控制器,其復位電路設計對于系統的穩定性和可靠性至關重要。本文將詳細介紹STM32復位電路中使用復位芯片和阻容復位
    的頭像 發表于 08-06 10:26 ?1143次閱讀

    FPGA同步復位異步復位

    FPGA(Field-Programmable Gate Array,現場可編程門陣列)中的復位操作是設計過程中不可或缺的一環,它負責將電路恢復到初始狀態,以確保系統的正確啟動和穩定運行。在FPGA設計中,復位方式主要分為同步
    的頭像 發表于 07-17 11:12 ?1330次閱讀

    ABB變頻器怎么復位 | 復位時可能會出現哪些問題?

    ,ABB變頻器如何進行復位呢?本文將為大家詳細講解ABB變頻器復位的方法和步驟。 一、ABB變頻器的復位方式 在使用ABB變頻器時,
    的頭像 發表于 02-21 10:50 ?7225次閱讀
    ABB變頻器怎么<b class='flag-5'>復位</b> | <b class='flag-5'>復位</b>時可能會出現哪些問題?

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

    復位同步電路 reset synchronizer 其實只在復位信號 release 的時候派上用場。復位結束,這個電路其實就沒用了。 但
    的頭像 發表于 02-19 09:21 ?1352次閱讀
    什么是<b class='flag-5'>復位</b><b class='flag-5'>同步</b>電路 reset synchronizer?

    如何排查GD32 MCU復位是由哪個復位源導致的?

    上期為大家講解了GD32 MCU復位包括電源復位和系統復位,其中系統復位還包括獨立看門狗復位、內
    的頭像 發表于 02-03 09:46 ?1641次閱讀
    如何排查GD32 MCU<b class='flag-5'>復位</b>是由哪個<b class='flag-5'>復位</b>源導致的?

    GD32 MCU電源復位和系統復位有什么區別

    GD32 MCU的復位分為電源復位和系統復位,電源復位又稱為冷復位,相較于系統復位,上電
    的頭像 發表于 02-02 09:37 ?1427次閱讀
    GD32 MCU電源<b class='flag-5'>復位</b>和系統<b class='flag-5'>復位</b>有什么區別

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

    一般來說,復位信號有效后會保持比較長一段時間,確保 register 被復位完成。但是復位信號釋放時,因為其和時鐘是異步的關系,我們不知道它會在什么時刻被釋放。
    的頭像 發表于 01-24 09:32 ?1671次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>復位</b><b class='flag-5'>異步</b>釋放會有什么問題?FPGA<b class='flag-5'>異步</b><b class='flag-5'>復位</b>為什么要<b class='flag-5'>同步</b>釋放呢?

    同步復位異步復位到底孰優孰劣呢?

    同步復位異步復位到底孰優孰劣呢? 同步復位異步
    的頭像 發表于 01-16 16:25 ?1637次閱讀

    復位電路的復位條件和復位過程

    電源監測芯片復位電路:這是最常見的復位電路類型,使用專用的電源監測芯片來監測電源電壓,并在電壓低于或高于預設閾值時觸發復位信號。
    的頭像 發表于 01-16 16:04 ?1186次閱讀

    stm32復位電容容值

    統電源穩定、提供復位功能。 復位電容是連接在微控制器的復位引腳和地之間的電容器。在啟動或復位過程中,復位電容會充電,并在
    的頭像 發表于 01-05 17:39 ?1674次閱讀

    對于芯片中的復位信號我們通常會有哪些特殊處理?

    經常在面試時問到一個問題:對于芯片中的復位信號我們通常會有哪些特殊處理?這個時候我一般希望得到的回答包括:復位消抖、異步復位同步撤離、降頻
    的頭像 發表于 12-25 09:52 ?2109次閱讀
    對于芯片中的<b class='flag-5'>復位</b>信號我們通常會有哪些特殊處理?

    復位那些小事—系統解復位的特殊處理

    復位就是復位撤離,系統解復位就是復位結束了系統準備開始工作。
    的頭像 發表于 12-04 15:25 ?1589次閱讀
    <b class='flag-5'>復位</b>那些小事—系統解<b class='flag-5'>復位</b>的特殊處理

    異步復位同步撤離是什么意思?如何做到異步復位同步撤離呢?

    復位消抖之后的下一件事,[異步復位]()同步撤離。這句話什么意思呢?
    的頭像 發表于 12-04 13:57 ?4694次閱讀
    <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>撤離呢?