版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、異步復(fù)位,同步釋放一、特點(diǎn):同步復(fù)位:顧名思義,同步復(fù)位就是指復(fù)位信號(hào)只有在時(shí)鐘上升沿到來時(shí),才能有效。否則,無法完成對(duì)系統(tǒng)的復(fù)位工作。用Verilog描述如下:always (posedge clk beginif (!Rst_n.end異步復(fù)位:它是指無論時(shí)鐘沿是否到來,只要復(fù)位信號(hào)有效,就對(duì)系統(tǒng)進(jìn)行復(fù)位。用Verilog描述如下:always (posedge clk or negedge Rst_n beginif (!Rst_n.end二、各自的優(yōu)缺點(diǎn):1、總的來說,同步復(fù)位的優(yōu)點(diǎn)大概有3條:a、有利于仿真器的仿真。b、可以使所設(shè)計(jì)的系統(tǒng)成為100%的同步時(shí)序電路,這便大大有利于時(shí)序
2、分析,而且綜合出來的fmax一般較高。c、因?yàn)樗挥性跁r(shí)鐘有效電平到來時(shí)才有效,所以可以濾除高于時(shí)鐘頻率的毛刺。他的缺點(diǎn)也有不少,主要有以下幾條:a、復(fù)位信號(hào)的有效時(shí)長(zhǎng)必須大于時(shí)鐘周期,才能真正被系統(tǒng)識(shí)別并完成復(fù)位任務(wù)。同時(shí)還要考慮,諸如:clk skew,組合邏輯路徑延時(shí),復(fù)位延時(shí)等因素。b、由于大多數(shù)的邏輯器件的目標(biāo)庫內(nèi)的DFF都只有異步復(fù)位端口,所以,倘若采用同步復(fù)位的話,綜合器就會(huì)在寄存器的數(shù)據(jù)輸入端口插入組合邏輯,這樣就會(huì)耗費(fèi)較多的邏輯資源。2、對(duì)于異步復(fù)位來說,他的優(yōu)點(diǎn)也有三條,都是相對(duì)應(yīng)的a、大多數(shù)目標(biāo)器件庫的dff都有異步復(fù)位端口,因此采用異步復(fù)位可以節(jié)省資源。b、設(shè)計(jì)相對(duì)簡(jiǎn)單
3、。c、異步復(fù)位信號(hào)識(shí)別方便,而且可以很方便的使用FPGA的全局復(fù)位端口GSR。缺點(diǎn):a、在復(fù)位信號(hào)釋放(release的時(shí)候容易出現(xiàn)問題。具體就是說:倘若復(fù)位釋放時(shí)恰恰在時(shí)鐘有效沿附近,就很容易使寄存器輸出出現(xiàn)亞穩(wěn)態(tài),從而導(dǎo)致亞穩(wěn)態(tài)。b、復(fù)位信號(hào)容易受到毛刺的影響。三、總結(jié):所以說,一般都推薦使用異步復(fù)位,同步釋放的方式,而且復(fù)位信號(hào)低電平有效。這樣就可以兩全其美了。2:推薦的復(fù)位方式所謂推薦的復(fù)位方式就是上文中所說的:“異步復(fù)位,同步釋放”。這就結(jié)合了雙方面的優(yōu)點(diǎn),很好的克服了異步復(fù)位的缺點(diǎn)(因?yàn)楫惒綇?fù)位的問題主要出現(xiàn)在復(fù)位信號(hào)釋放的時(shí)候,具體原因可見上文)。其實(shí)做起來也并不難,我推薦一種我
4、經(jīng)常使用的方式吧:那就是在異步復(fù)位鍵后加上一個(gè)所謂的“reset synchronizer”,這樣就可以使異步復(fù)位信號(hào)同步化,然后,再用經(jīng)過處理的復(fù)位信號(hào)去作用系統(tǒng),就可以保證比較穩(wěn)定了。reset sychronizer的Verilog代碼如下:module Reset_Synchronizer(output reg rst_n,input clk, asyncrst_n;reg rff1;always (posedge clk , negedge asyncrst_n beginif (!asyncrst_n rst_n,rff1 <= 2'b0;else rst_n,rff
5、1 <= rff1,1'b1;endendmodule大家可以看到,這就是一個(gè)dff,異步復(fù)位信號(hào)直接接在它的異步復(fù)位端口上(低電平有效),然后數(shù)據(jù)輸入端rff1一直為高電平1。倘若異步復(fù)位信號(hào)有效的話,觸發(fā)器就會(huì)復(fù)位,輸出為低,從而復(fù)位后繼系統(tǒng)。但是,又由于這屬于時(shí)鐘沿觸發(fā),當(dāng)復(fù)位信號(hào)釋放時(shí),觸發(fā)器的輸出要延遲一個(gè)時(shí)鐘周期才能恢復(fù)成 1,因此使得復(fù)位信號(hào)的釋放與時(shí)鐘沿同步化。此外,還有一種方法更為直接,就是直接在異步復(fù)位信號(hào)后加一個(gè)D觸發(fā)器,然后用D觸發(fā)器的輸出作為后級(jí)系統(tǒng)的復(fù)位信號(hào),也能達(dá)到相同的效果。這里就不多說了。3:多時(shí)鐘系統(tǒng)中復(fù)位的處理方法這是一個(gè)很實(shí)際的問題,因?yàn)樵?/p>
6、較大型的系統(tǒng)中,一個(gè)時(shí)鐘驅(qū)動(dòng)信號(hào)顯然不能滿足要求,一定會(huì)根據(jù)系統(tǒng)的要求用多個(gè)同源時(shí)鐘(當(dāng)然也可以是非同源了)去驅(qū)動(dòng)系統(tǒng)的不同部分。那么在這樣的多時(shí)鐘系統(tǒng)中,復(fù)位鍵怎么設(shè)置?它的穩(wěn)定與否直接關(guān)系到了整個(gè)系統(tǒng)的穩(wěn)定性,因此要格外注意(在我看來,復(fù)位信號(hào)在同步時(shí)序系統(tǒng)中的地位和時(shí)鐘信號(hào)一樣重要)。下面就說一下具體的處理方法,當(dāng)然所遵循的原則就仍應(yīng)該是上文的“異步復(fù)位,同步釋放”:1.non-coordinated reset removal:顧名思義,就是同一個(gè)系統(tǒng)中的多個(gè)同源時(shí)鐘域的復(fù)位信號(hào),由彼此獨(dú)立的“reset synchronizer”驅(qū)動(dòng)。當(dāng)異步復(fù)位信號(hào)有效時(shí),各時(shí)鐘域同時(shí)復(fù)位,但是復(fù)位
7、釋放的時(shí)間由各自的驅(qū)動(dòng)時(shí)鐘決定,也是就說:時(shí)鐘快的先釋放,時(shí)鐘慢的后釋放,但是各復(fù)位信號(hào)之間沒有先后關(guān)系。2.sequence coordinated reset removal:這是相對(duì)于上述方式來說的,也就是說各時(shí)鐘域的復(fù)位信號(hào)彼此相關(guān),各個(gè)部分系統(tǒng)雖然也同時(shí)復(fù)位,但是卻分級(jí)釋放。而分級(jí)的順序可由各個(gè) “reset synchronizer”的級(jí)聯(lián)方式?jīng)Q定。可以先復(fù)位前級(jí),再?gòu)?fù)位后級(jí),也可以反過來。反正方式很靈活,需要根據(jù)實(shí)際需要而定。例子:三級(jí)復(fù)位系統(tǒng),系統(tǒng)中的時(shí)鐘分別為1M,2M,11M:第一級(jí)Reset_Sychronizer程序:module Reset_Synchronizer(
8、output reg rst_n,input clk, asyncrst_n;reg rff1;always (posedge clk , negedge asyncrst_nbeginif (!asyncrst_n rst_n,rff1 <= 2'b0;else rst_n,rff1 <= rff1,1'b1;endendmodule第2,3級(jí)的Reset_Sychronizer程序:module Reset_Synchronizer2(output reg rst_n,input clk, asyncrst_n,d;reg rff1;always (posedg
9、e clk , negedge asyncrst_n beginif (!asyncrst_n rst_n,rff1 <= 2'b0;else rst_n,rff1 <= rff1,d;endendmodule頂層模塊的源程序:include "Reset_Synchronizer.v"include "Reset_Synchronizer2.v"module AsynRstTree_Trans( input Clk1M,Clk2M,Clk11M,SysRst_n,output SysRst1M_n,SysRst2M_n,SysRst
10、11M_n;Reset_Synchronizer Rst1M(.clk(Clk1M,. asyncrst_n(SysRst_n,.rst_n(SysRst1M_n;Reset_Synchronizer2Rst2M(.clk(Clk2M,.d(SysRst1M_n,. asyncrst_n(SysRst_n,.rst_n(SysRst2M_n;Reset_Synchronizer2Rst11M(.clk(Clk11M,.d(SysRst2M_n,. asyncrst_n(SysRst_n,.rst_n(SysRst11M_n;endmodule異步復(fù)位、同步釋放FPGA設(shè)計(jì)中常見的復(fù)位方式即同步
11、復(fù)位和異步復(fù)位。在深入探討亞穩(wěn)態(tài)這個(gè)概念之前,特權(quán)同學(xué)也并沒有對(duì)所謂的同步復(fù)位和異步復(fù)位有太多的注意,而在實(shí)踐中充分感受了亞穩(wěn)態(tài)的危害之后,回過頭來細(xì)細(xì)品味Verilog HDL設(shè)計(jì)與驗(yàn)證一書中關(guān)于復(fù)位的章節(jié),可謂受益匪淺。在特權(quán)同學(xué)以前的代碼里大多使用的是異步復(fù)位。一個(gè)簡(jiǎn)單的異步復(fù)位的例子always (posedge clk or negedge rst_nif(!rst_n b <= 1'b0;else b <= a;我們可以看到FPGA的寄存器都有一個(gè)異步的清零端(CLR),在異步復(fù)位的設(shè)計(jì)中這個(gè)端口一般就是接低電平有效的復(fù)位信號(hào)rst_n。即使說你的設(shè)計(jì)中是高電平
12、復(fù)位,那么實(shí)際綜合后會(huì)把你的復(fù)位信號(hào)反向后接這個(gè)CLR端。一個(gè)簡(jiǎn)單的同步復(fù)位的例子always (posedge clkif(!rst_n b <= 1'b0;else b <= a; 和異步復(fù)位相比,同步復(fù)位沒有用上寄存器的CLR端口,綜合出來的實(shí)際電路只是把復(fù)位信號(hào)rst_n作為了輸入邏輯的使能信號(hào)。那么,這樣的同步復(fù)位勢(shì)必會(huì)額外增加FPGA內(nèi)部的資源消耗。那么同步復(fù)位和異步復(fù)位到底孰優(yōu)孰劣呢?只能說,各有優(yōu)缺點(diǎn)。同步復(fù)位的好在于它只在時(shí)鐘信號(hào)clk的上升沿觸發(fā)進(jìn)行系統(tǒng)是否復(fù)位的判斷,這降低了亞穩(wěn)態(tài)出現(xiàn)的概率;它的不好上面也說了,在于它需要消耗更多的器件資源,這是我們不
13、希望看到的。FPGA的寄存器有支持異步復(fù)位專用的端口,采用異步復(fù)位的端口無需額外增加器件資源的消耗,但是異步復(fù)位也存在著隱患,特權(quán)同學(xué)過去從沒有意識(shí)到也沒有見識(shí)過。異步時(shí)鐘域的亞穩(wěn)態(tài)問題同樣的存在與異步復(fù)位信號(hào)和系統(tǒng)時(shí)鐘信號(hào)之間。再看下面一個(gè)兩級(jí)寄存器異步復(fù)位的例子always (posedge clk or negedge rst_nif(!rst_n b <= 1'b0;else b <= a;always (posedge clk or negedge rst_nif(!rst_n c <= 1'b0;else c <= b; 正常情況下,clk的
14、上升沿c更新為b,b更新為a。一旦進(jìn)入復(fù)位,b,c都清零;但是我們不能確定復(fù)位信號(hào)rst_n會(huì)在什么時(shí)候結(jié)束。如果結(jié)束于b_reg0和c_reg0的launch edge stup,launch edge+hold時(shí)間之外,那么一切都會(huì)正常。但如果恰恰相反,會(huì)出現(xiàn)什么情況呢?rst_n的上升變化(即rst_n結(jié)束)出現(xiàn)在了clk上升的建立保持時(shí)間上,此時(shí)clk檢測(cè)到的rst_n的狀態(tài)就會(huì)是一個(gè)亞穩(wěn)態(tài)(是0是1不確定)。從代碼里我們看到如果此時(shí)b_reg0和c_reg0認(rèn)為rst_n為0,那么依然保持復(fù)位清零,而如果認(rèn)為rst_n為1,那么就跳出復(fù)位。因?yàn)榇藭r(shí)的rst_n的不確定性,就可能出現(xiàn)4種情況,即b_reg0和c_reg0都復(fù)位或者都跳出復(fù)位,再或者一個(gè)復(fù)位一個(gè)跳出復(fù)位。那么后者就會(huì)造成了系統(tǒng)工作不同步的問題,在這個(gè)簡(jiǎn)單的兩級(jí)異步復(fù)位實(shí)例中這種危害表現(xiàn)的并不明顯,但是我們?cè)囅胍粋€(gè)大的工程項(xiàng)目里眾多的寄存器出現(xiàn)如此情況又會(huì)是如何一番景象呢?上面的分析似乎都讓人意識(shí)到同步復(fù)位和異步復(fù)位都不可靠,那么如何將兩者結(jié)合,取長(zhǎng)補(bǔ)短呢。異步復(fù)位、同步釋放always (posedge clkrst_nr <= rst_n; /現(xiàn)將異步復(fù)位信號(hào)用同步時(shí)鐘打一拍always (posedge clk or neged
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 41869.3-2024光學(xué)和光子學(xué)微透鏡陣列第3部分:光學(xué)特性測(cè)試方法
- 供熱供氣工程履約擔(dān)保格式
- 2025版?zhèn)湄浶袠I(yè)質(zhì)量認(rèn)證合同范本3篇
- 展覽館弱電系統(tǒng)改造合同模板
- 醫(yī)療服務(wù)票據(jù)管理策略與流程
- 2025年度綠色辦公用品采購(gòu)及回收利用合同3篇
- 紡織服裝電力供應(yīng)協(xié)議準(zhǔn)則
- 城市濱水區(qū)改造房屋拆除工程協(xié)議
- 2025版電梯設(shè)備安裝與維護(hù)合同范本3篇
- 船只租賃合同:水上建筑維修
- 橋梁檢修通道施工方案
- 英文寫作課件:段落的寫作
- 軟件設(shè)計(jì)說明書通用模板
- 產(chǎn)業(yè)園運(yùn)營(yíng)合作協(xié)議
- 酒店治安安全培訓(xùn)
- 16J607-建筑節(jié)能門窗
- 我的家鄉(xiāng)-東營(yíng)
- 理解詞語句子的方法PPT
- 作文開頭與結(jié)尾PPT課件ppt(共42張PPT)
- 重癥醫(yī)學(xué)科運(yùn)用PDCA循環(huán)提高消毒棉簽開啟時(shí)間標(biāo)注的執(zhí)行率品管圈成果匯報(bào)
- 云南面向東南亞、南亞區(qū)域物流系統(tǒng)優(yōu)化研究的開題報(bào)告
評(píng)論
0/150
提交評(píng)論