其他參考資料:
FPGA中復(fù)位信號的設(shè)計
FPGA同步復(fù)位異步復(fù)位
異步復(fù)位同步釋放---關(guān)于復(fù)位的問題
FPGA同步復(fù)位凳寺,異步復(fù)位以及異步復(fù)位同步釋放實例分析
一、特點:
同步復(fù)位:
顧名思義,同步復(fù)位就是指復(fù)位信號只有在時鐘上升沿到來時坞嘀,才能有效。否則,無法完成對系統(tǒng)的復(fù)位工作雇盖。用Verilog描述如下:
always @ (posedge clk) begin
if (!Rst_n)
...
end
異步復(fù)位:
它是指無論時鐘沿是否到來,只要復(fù)位信號有效栖忠,就對系統(tǒng)進行復(fù)位崔挖。用Verilog描述如下:
always @ (posedge clk or negedge Rst_n) begin
if (!Rst_n)
...
end
二、各自的優(yōu)缺點:
1庵寞、同步復(fù)位:
優(yōu)點:
有利于仿真器的仿真狸相。
可以使所設(shè)計的系統(tǒng)成為100%的同步時序電路,這便大大有利于時序分析捐川,而且綜合出來的fmax一般較高脓鹃。
因為他只有在時鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的毛刺古沥。
缺點:
復(fù)位信號的有效時長必須大于時鐘周期瘸右,才能真正被系統(tǒng)識別并完成復(fù)位任務(wù)。同時還要考慮岩齿,諸如:clk skew,組合邏輯路徑延時,復(fù)位延時等因素太颤。
由于大多數(shù)的邏輯器件的目標(biāo)庫內(nèi)的DFF都只有異步復(fù)位端口,所以盹沈,倘若采用同步復(fù)位的話栋齿,綜合器就會在寄存器的數(shù)據(jù)輸入端口插入組合邏輯,這樣就會耗費較多的邏輯資源襟诸。
2瓦堵、異步復(fù)位:
優(yōu)點:
大多數(shù)目標(biāo)器件庫的dff都有異步復(fù)位端口,因此采用異步復(fù)位可以節(jié)省資源歌亲。
設(shè)計相對簡單菇用。
異步復(fù)位信號識別方便,而且可以很方便的使用FPGA的全局復(fù)位端口GSR陷揪。
缺點:
在復(fù)位信號釋放(release)的時候容易出現(xiàn)問題惋鸥。具體就是說:倘若復(fù)位釋放時恰恰在時鐘有效沿附近杂穷,就很容易使寄存器輸出出現(xiàn)亞穩(wěn)態(tài),從而導(dǎo)致亞穩(wěn)態(tài)卦绣。
復(fù)位信號容易受到毛刺的影響耐量。
三、總結(jié):
所以說滤港,一般都推薦使用異步復(fù)位廊蜒,同步釋放的方式,而且復(fù)位信號低電平有效溅漾。這樣就可以兩全其美了山叮。
所謂異步復(fù)位,同步釋放就是在復(fù)位信號到來的時候不受時鐘信號的同步添履,而是在復(fù)位信號釋放的時候受到時鐘信號的同步屁倔。
異步復(fù)位同步釋放的方法以及多時鐘系統(tǒng)的復(fù)位設(shè)計
1、異步復(fù)位暮胧,同步釋放
input rst_n,clk;
output rst_syn_n;//系統(tǒng)的復(fù)位信號
reg reg1,reg2;
always@(posedge clk or negedge rst_n )begin
if(!rst_n)begin
reg1<=1'b0;
reg2<=1'b0;
end
else begin
reg1<=1'b1;
reg2<=reg1;
end
end
assign rst_syn_n = reg2;
復(fù)位是異步的锐借,但是釋放確實同步的;用兩級寄存器往衷,是消除復(fù)位釋放中可能存在的亞穩(wěn)態(tài)钞翔。
異步復(fù)位,同步釋放的好處是:
1.不要求復(fù)位信號必須大于一個時鐘周期炼绘;
2.因為釋放過程和時鐘同步,所以避免了亞穩(wěn)態(tài)妄田。
兼具同步復(fù)位和異步復(fù)位的優(yōu)點俺亮。
不使用reg1的原因是消除毛刺的影響,如果受到毛刺的影響疟呐,reg1會產(chǎn)生一個很短的復(fù)位信號脚曾,這樣可能會導(dǎo)致復(fù)位不完全,系統(tǒng)出現(xiàn)混亂启具。
2本讥、多時鐘系統(tǒng)中復(fù)位的處理方法
這是一個很實際的問題,因為在較大型的系統(tǒng)中鲁冯,一個時鐘驅(qū)動信號顯然不能滿足要求拷沸,一定會根據(jù)系統(tǒng)的要求用多個同源時鐘(當(dāng)然也可以是非同源了)去驅(qū)動系統(tǒng)的不同部分。那么在這樣的多時鐘系統(tǒng)中薯演,復(fù)位鍵怎么設(shè)置筹吐?它的穩(wěn)定與否直接關(guān)系到了整個系統(tǒng)的穩(wěn)定性灭返,因此要格外注意(在我看來,復(fù)位信號在同步時序系統(tǒng)中的地位和時鐘信號一樣重要)荆虱。下面就說一下具體的處理方法,當(dāng)然所遵循的原則就仍應(yīng)該是上文的“異步復(fù)位升熊,同步釋放”:
1.non-coordinated reset removal:
顧名思義,就是同一個系統(tǒng)中的多個同源時鐘域的復(fù)位信號,由彼此獨立的“reset synchronizer”驅(qū)動晶通。當(dāng)異步復(fù)位信號有效時,各時鐘域同時復(fù)位哟玷,但是復(fù)位釋放的時間由各自的驅(qū)動時鐘決定狮辽,也是就說:時鐘快的先釋放,時鐘慢的后釋放碗降,但是各復(fù)位信號之間沒有先后關(guān)系隘竭。
2.sequence coordinated reset removal:
這是相對于上述方式來說的,也就是說各時鐘域的復(fù)位信號彼此相關(guān)讼渊,各個部分系統(tǒng)雖然也同時復(fù)位动看,但是卻分級釋放。而分級的順序可由各個“reset synchronizer”的級聯(lián)方式?jīng)Q定爪幻×饨裕可以先復(fù)位前級,再復(fù)位后級挨稿,也可以反過來仇轻。反正方式很靈活,需要根據(jù)實際需要而定奶甘。