浅谈同步复位与异步复位
1.FPGA設計中的復位方式是同步復位與異步復位。接下來將看看兩者的概念和在實際設計中的區別以及各自的優缺點。
1.1?異步復位: 它指無論時鐘沿是否到來,只要復位信號有效,就對系統進行復位
下面給出一個異步復位的例子???
| module test( input sys_clk, input rst_n, input din, outputreg dout ); ? always@(posedge sys_clk ornegedge rst_n) begin if(!rst_n) dout <=1'b0; else dout <= din; end endmodule |
?
從RTL圖中我們可以看出FPGA的寄存器有一個異步清零端(CLR)。在異步復位設計中,這個端口是將低電平有效的復位信號rst_n。即使設計中高電平復位,實際綜合后的電路也是將復位信號反相后接入CLR端。
1.2.同步復位: 同步復位就是指復位信號只有在時鐘上升沿到來時,才能有效。否則,無法完成對系統的復位工作。
下面給出一個同步復位的例子
| module test( input sys_clk, input rst_n, input din, outputreg dout ); ? always@(posedge sys_clk ) begin if(!rst_n) dout <=1'h0; else dout <= din; end endmodule |
?
?
從RTL圖中,復位信號沒有使用寄存器的CLR端,還是將復位信號作為邏輯輸入的使能信號,那么這樣同步復位將會額外增加FPGA的內部資源消耗。
那么同步復位與異步復位到底有那些優缺點了?(優缺點摘取網上)
2.1.總的來說,同步復位的優點大概有3條:
a、有利于仿真器的仿真。
b、可以使所設計的系統成為100%的同步時序電路,這便大大有利于時序分析,而且綜合出來的fmax一般較高。
c、因為他只有在時鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的毛刺。
缺點:
a、復位信號的有效時長必須大于時鐘周期,才能真正被系統識別并完成復位任務。同時還要考慮,諸如:clk skew,組合邏輯路徑延時,復位延時等因素。
b、由于大多數的邏輯器件的目標庫內的DFF都只有異步復位端口,所以,倘若采用同步復位的話,綜合器就會在寄存器的數據輸入端口插入組合邏輯,這樣就會耗費較多的邏輯資源。
?
2.2.對于異步復位來說,他的優點也有三條,都是相對應的
a、大多數目標器件庫的dff都有異步復位端口,因此采用異步復位可以節省資源。
b、設計相對簡單。
c、異步復位信號識別方便,而且可以很方便的使用FPGA的全局復位端口GSR。
缺點:
a、在復位信號釋放(release)的時候容易出現問題。具體就是說:倘若復位釋放時恰恰在時鐘有效沿附近,就很容易使寄存器輸出出現亞穩態,從而導致亞穩態。
b、復位信號容易受到毛刺的影響。
?
3.在同步復位與異步復位的優缺點中可以看出,單純的使用異步復位或者同步復位都有可能給我們的設計帶來不少的問題。筆者通過在網上查找,和自己這一兩年寫代碼的習慣,一直采用異步復位,同步釋放的方式??梢詼p少亞穩態帶來的危害以及避免大量使用同步復位邏輯資源的浪費。將在下一篇博文中將講述異步復位,同步釋放的操作。
posted on 2013-08-19 22:30 NavyC 閱讀(...) 評論(...) ?編輯 收藏轉載于:https://www.cnblogs.com/NavySha/articles/3269057.html
總結
以上是生活随笔為你收集整理的浅谈同步复位与异步复位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 生成随机密码
- 下一篇: 此文胜过你听三年的培训课