在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

如何理解FPGA中異步復位和同步釋放

TLOc_gh_3394704 ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2021-08-11 09:14 ? 次閱讀

同步復位和異步復位

異步復位

異步復位是指無論時鐘沿是否到來,只要復位信號有效,就對系統進行復位。

RTL代碼如下:

always@(posedgeclkornegedgerst_n)

if(!rst_n)b<=?1'b0;

?????????else?b?<=?a;

綜合后如下:

4aa2cf92-f7b2-11eb-9bcf-12bb97331649.png

我們可以看到FPGA寄存器都有一個異步的清零端(CLR),在異步復位的設計中這個端口一般就是接低電平有效的復位信號rst_n。即使說你的設計中是高電平復位,那么實際綜合后會把你的復位信號反向后接這個CLR端。公眾號:OpenFPGA

同步復位

同步復位是指只有在時鐘上升沿到來時才會對復位信號進行采樣,也就是只有在時鐘上升沿時,復位信號才有效。

其RTL代碼如下:

always@(posedgeclk)

if(!rst_n)b<=?1'b0;

?????????else?b?<=?a;

綜合后如下:

4aad9b0c-f7b2-11eb-9bcf-12bb97331649.png

和異步復位相比,同步復位沒有用上寄存器的CLR端口,綜合出來的實際電路只是把復位信號rst_n作為了輸入邏輯的使能信號。那么,這樣的同步復位勢必會額外增加FPGA內部的資源消耗。

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

只能說,各有優缺點。同步復位的好在于它只在時鐘信號clk的上升沿觸發進行系統是否復位的判斷,這降低了亞穩態出現的概率;它的不好上面也說了,在于它需要消耗更多的器件資源,這是我們不希望看到的。FPGA的寄存器有支持異步復位專用的端口,采用異步復位的端口無需額外增加器件資源的消耗,但是異步復位也存在著隱患,特權同學曾說過從沒有意識到也沒有見識過。異步時鐘域的亞穩態問題同樣的存在與異步復位信號和系統時鐘信號之間。公眾號:OpenFPGA

上面的分析似乎都讓人意識到同步復位和異步復位都不可靠,那么如何將兩者結合,取長補短呢?

異步復位、同步釋放

所謂異步復位,同步釋放就是在復位信號到來的時候不受時鐘信號的同步,而是在復位信號釋放的時候受到時鐘信號的同步。

如下圖,單獨看方框左的復位策略,是一個異步復位電路,即復位信號有效時不管時鐘信號是否處于有效沿,輸出都會被復位,但是如果復位信號在時鐘信號的上升沿撤銷時,這時候的輸出就是亞穩態。

4ab9986c-f7b2-11eb-9bcf-12bb97331649.png

首先看一下怎么實現異步復位:當rst_async_n有效時,第二個D觸發器的輸出rst_sync_n就是低電平,方框左中的異步復位端口有效,輸出被復位。

然后是同步釋放:假設rst_async_n在clk的上升沿時撤除,那么第一級觸發器處于亞穩態,但是由于兩級觸發器的緩沖作用,第二級觸發器的輸入為clk到來前第一級觸發器的輸出,即為低電平。因此,此時第二級觸發器的輸出一定是穩定的低電平,方框左中觸發器仍然處于復位狀態。在下一個clk到來時,第一級觸發器的輸出已經是穩定的高電平了,故rst_sync_n已經是穩定的高電平,此時復位釋放。也就是同步釋放。公眾號:OpenFPGA

通過上面分析可知:異步復位、同步釋放其最顯著特征是既保留了異步復位的功能,又避免了異步復位釋放時所面臨的recovery或者removal違例問題。

那異步復位同步釋放是如何避免recovery和removal違例問題的呢?如下代碼所示,是異步復位同步釋放的RTL code。

always@(posedgeclk,negedgerst_async_n)
if(!rst_async_n)begin
rst_s1<=?1'b0;??
rst_s2?<=?1'b0;??
end??
else?begin??
rst_s1?<=?1'b1;??
rst_s2?<=?rst_s1;??
end??
?
assign?rst_sync_n?=?rst_s2;???
endmodule?

從上述代碼可以看出,rst_async_n=0時,rst_sync_n會被立即復位為0,輸出到后續電路用于異步復位;rst_async_n=1時,假設此時恰好在時鐘沿附近,會造成recovery或者removal的違例,但經過DFF1和DFF2的兩級同步,rst_sync_n釋放沿與時鐘沿同步,送入到后續電路不會再有recovery和removal違例出現。

問題1

如果沒有前面兩級觸發器的處理。異步信號直接驅動系統的觸發器。會出現什么情況?

回答:很多人只知道觸發器D端口來源是異步的話,會因為建立保持時間的時序違反而在觸發器Q端口產生亞穩態。但是不清楚,異步復位信號為什么會導致亞穩態的產生。

首先,回顧理論教材里介紹的建立保持時間違反分析,教材一般都是拿沒有復位端口的D觸發器舉例。

然后,畫出帶有異步復位端口的D觸發器,下圖帶異步復位Rd,并帶有異步置位端口Sd。公眾號:OpenFPGA

由此得知,異步復位信號或者異步置位信號,跟數據端口D信號,沒有什么區別,都會存在建立保持時間的違反,從而時序沖突,引發輸出亞穩態。

4b2ad89c-f7b2-11eb-9bcf-12bb97331649.png

問題2

復位信號存在亞穩態,有危險嗎?

回答:

亞穩態,出現的問題或者麻煩,是在信號變化的時候,不能保證第一拍采樣的值是固定的。

如果信號穩定,不會出現亞穩態的。就是采樣后的跳變,時刻不確定,也許早,也許晚。

系統不希望這樣的未知狀態發生,系統希望知道在某一個時刻,后續邏輯需要的輸入信號,是穩定值。公眾號:OpenFPGA

二級觸發器同步后,第二季觸發器的輸出基本上是穩定值。后續邏輯根據穩定值,會有穩定的行為。這就是追求的系統穩定性。

最好是系統一起復位釋放,但是時鐘域不同,不可能保證系統一起復位釋放。一般來說,系統復位釋放的順序,是需要保證的。否則系統就是不安全的。公眾號:OpenFPGA

舉個例子,系統啟動時,內核讀取啟動指令,要powerdown某外設;但是powerdown的邏輯要求外設和內核沒有通信請求正在發生。此時,外設比內核先釋放復位的情況(復位釋放的時刻,外設有可能已經開始與內核發生請求),與內核比外設先釋放復位的情況(復位釋放的時刻,外設肯定與內核沒有發生請求),是不一樣的,powerdown也許不能處理成功。

這也是異步復位信號需要同步釋放的原因,目的都是為了避免亞穩態的產生。

問題3

如果只做一級觸發器同步,如何?

回答:不可以。第一級觸發器的輸出,永遠存在亞穩態的可能。亞穩態,導致系統不會復位初始化到已知狀態。

當第一級觸發器采樣異步輸入之后,允許輸出出現的亞穩態可以長達一個周期,在這個周期內,亞穩態特性減弱。在第二個時鐘沿到來時,第二級同步器采樣,之后才把該信號傳遞到內部邏輯中去。第二級輸出是穩定且已被同步了的。如果在第二級采樣時保持時間不夠,第一級的輸出仍然處于很強的亞穩態,將會導致第二級同步器也進入亞穩態,但這種故障出現的概率比較小。公眾號:OpenFPGA

一般情況下,兩級同步器總體的故障概率是一級同步器故障概率的平方。在大部分的同步化設計中,兩級同步器足以消除所有可能的亞穩態了。

問題4

兩級觸發器同步,就能消除亞穩態嗎?

回答:不能。大大降低概率,如果幾十年出現一次,也無所謂了。畢竟芯片不會用幾十年,早就老化嚴重淘汰了。

4b378ce0-f7b2-11eb-9bcf-12bb97331649.png

問題5

第一級觸發器的數據端口為什么是1’b1?回答:

如果第一級觸發器的數據端口,使用rst_async_n。綜合后的第一級觸發器電路圖如下

4b5a458c-f7b2-11eb-9bcf-12bb97331649.png

如果第一級觸發器的數據端口,使用1’b1。綜合后的第一級觸發器電路圖如下:

4b653b18-f7b2-11eb-9bcf-12bb97331649.png

考慮到電路實現的資源,還是第2種方案最節省,為最佳設計。

參考資料

https://blog.csdn.net/cainiaoyizhiyang/article/details/98479356https://blog.csdn.net/wordwarwordwar/article/details/79889725

編輯:hfy

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

    關注

    1640

    文章

    21899

    瀏覽量

    611373
  • 異步復位
    +關注

    關注

    0

    文章

    47

    瀏覽量

    13428

原文標題:FPGA中異步復位,同步釋放的理解

文章出處:【微信號:gh_339470469b7d,微信公眾號:FPGA與數據通信】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

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

    對于從FPGA外部進來的信號,我們通常采用“異步復位同步釋放的策略”,具體電路如下圖所示。
    的頭像 發表于 07-20 09:04 ?2197次閱讀
    <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><b class='flag-5'>釋放</b>的策略

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

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

    verilog 異步復位同步釋放

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

    同步復位異步復位同步釋放的對比疑問

    在網上了解到fpga同步復位異步復位都會存在不足,因此有人提出異步
    發表于 04-16 22:17

    關于異步復位同步釋放理解與分析

    是指復位信號是異步有效的,即復位的發生與clk無關。后半句“同步釋放”是指復位信號的撤除也與cl
    發表于 11-30 08:58 ?2.5w次閱讀
    關于<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>與分析

    FPGA設計異步復位同步釋放問題

    異步復位同步釋放 首先要說一下同步復位異步
    發表于 06-07 02:46 ?2260次閱讀

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

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

    利用FPGA異步復位端口實現同步復位功能,釋放本性

    FPGA開發,一種最常用的復位技術就是“異步復位同步釋放
    發表于 08-18 13:56 ?1401次閱讀
    利用<b class='flag-5'>FPGA</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>本性

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

    針對異步復位同步釋放,一直沒搞明白在使用同步化以后的復位信號時,到底是使用
    的頭像 發表于 04-27 18:12 ?5021次閱讀
    詳細講解<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>?

    FPGA異步復位同步釋放理解

    異步復位同步釋放理解目錄目錄 同步復位
    發表于 01-17 12:53 ?4次下載
    【<b class='flag-5'>FPGA</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>

    同步復位異步復位的區別

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

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

    異步復位同步釋放:rst_synchronizer.v
    的頭像 發表于 08-21 09:27 ?1192次閱讀
    淺析<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>打拍模塊

    FPGA學習-異步復位同步釋放

    點擊上方 藍字 關注我們 系統的復位對于系統穩定工作至關重要,最佳的復位方式為:異步復位同步釋放
    的頭像 發表于 09-09 14:15 ?1613次閱讀
    <b class='flag-5'>FPGA</b>學習-<b class='flag-5'>異步</b><b class='flag-5'>復位</b>,<b class='flag-5'>同步</b><b class='flag-5'>釋放</b>

    FPGA同步復位異步復位

    FPGA(Field-Programmable Gate Array,現場可編程門陣列)復位操作是設計過程不可或缺的一環,它負責將電路恢復到初始狀態,以確保系統的正確啟動和穩定運
    的頭像 發表于 07-17 11:12 ?2193次閱讀
    主站蜘蛛池模板: 欧美午夜小视频 | 我想看三级特黄 | 午夜小视频免费观看 | 在线久综合色手机在线播放 | 五月婷婷六月丁香 | 亚洲综合精品成人啪啪 | 在线日本人观看成本人视频 | 天天爽夜爽免费精品视频 | 午夜痒痒网 | 三级在线免费观看 | 欧美性一级交视频 | 凹凸福利视频导航 | 91久久婷婷国产综合精品青草 | 5g成人影院 | 奇米四色777亚洲图 奇米影视四色首页手机在线 | 鸥美三级| 在线看片国产 | 四虎成人影院网址 | 一级毛片在线不卡直接观看 | 国产在线五月综合婷婷 | 天堂网在线看 | 午夜狠狠操 | 久久精品亚洲一级毛片 | 亚洲三级网址 | 天堂电影在线观看免费入口 | 中文字幕在线视频第一页 | 日本免费黄网站 | 婷婷 夜夜 | 成人啪啪免费视频 | 四虎影免看黄 | 国产精品一区二区三区四区 | 乱妇伦小说 | 亚洲一区二区在线免费观看 | 日本成人福利视频 | 国产亚洲美女精品久久久久狼 | yyy6080韩国三级理论 | 理论片国产| 性生生活三级视频在线观看 | bt天堂中文在线 | 亚洲日韩图片专区第1页 | 黄色免费网站在线播放 |