Xilinx FPGA異步復(fù)位同步釋放-同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位_第1頁
Xilinx FPGA異步復(fù)位同步釋放-同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位_第2頁
Xilinx FPGA異步復(fù)位同步釋放-同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位_第3頁
Xilinx FPGA異步復(fù)位同步釋放-同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位_第4頁
Xilinx FPGA異步復(fù)位同步釋放-同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第第頁XilinxFPGA異步復(fù)位同步釋放—同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位?

Xilinx復(fù)位準(zhǔn)則:

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

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

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

(這里說明,由于(Altera)和Xilinx器件內(nèi)部結(jié)構(gòu)的不同,Altera的(FPGA)(推薦)低電平復(fù)位)

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

比如針對輸入的異步復(fù)位信號(rs)t,使用本地(時鐘)clk將其同步化以后得到一個新的復(fù)位信號sys_rst,當(dāng)使用sys_rst時,是將sys_rst作為同步復(fù)位信號還是異步復(fù)位信號?

/*****此程序來自公眾號:硅農(nóng)********/always@(posedgeclk(or)posedgerst)beginif(rst)beginrst_r0如下圖所示,選方式1還是方式2?

針對此問題查找了很多資料,(網(wǎng)絡(luò))上多是將sys_rst繼續(xù)按照方式1異步復(fù)位使用,如圖所示:

對于輸入的異步復(fù)位AsynchronousReset,首先使用了4個觸發(fā)器來做同步(一般用2個即可,4個出現(xiàn)亞穩(wěn)態(tài)的概率更?。|發(fā)器類型為FDP(異步置位),同步化以后的復(fù)位信號去使用時綜合出的觸發(fā)器類型為FDR(同步復(fù)位),即在Xilinx中是將sys_rst按照方式2同步復(fù)位使用。

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

使用XilinxA7系列FPGA實現(xiàn)異步復(fù)位、同步釋放代碼,確定同步化后的復(fù)位使用情況。

二、Xilinx復(fù)位程序?qū)Ρ?.將同步化后的復(fù)位當(dāng)作異步復(fù)位信號

/******FPGA探索者******/always@(posedgeclkorposedgerst_async)beginif(rst_async==1'b1)beginrst_sync_reg1綜合并布局布線后的原理圖如圖所示,顯然,綜合后對sys_rst復(fù)位,將其作為異步復(fù)位綜合出F(DC)E同步使能異步復(fù)位(這里不考慮使能),和白皮書WP272給出的參考電路顯然不一致。

原語(Primi(ti)ve)功能描述FDCE同步使能,異步復(fù)位FDRE同步使能,同步復(fù)位FDPE同步使能,異步置位FDSE同步使能,同步置位2.將同步化后的復(fù)位當(dāng)作同步復(fù)位信號

/******FPGA探索者******/always@(posedgeclkorposedgerst_async)beginif(rst_async==1'b1)beginrst_sync_reg1綜合并布局布線后的原理圖如圖所示,顯然,綜合后對sys_rst復(fù)位,將其作為同步復(fù)位綜合出FDRE同步使能異步復(fù)位(這里不考慮使能),和白皮書WP272給出的參考電路一致。

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

三、仿真結(jié)果設(shè)置時鐘50MHz,時鐘周期20ns,給一個持續(xù)時間3ns的異步復(fù)位信號,且持續(xù)時間均不出現(xiàn)在時鐘上升沿檢測期間,可以看到:

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

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

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

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

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

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

(2)根據(jù)Xilinx復(fù)位準(zhǔn)則,我們知道同步復(fù)位相比異步復(fù)位有很多好處,既然兩者對后級復(fù)位沒有功能上的差別,那么優(yōu)先選擇同步復(fù)位;

經(jīng)過異步復(fù)位同步釋放處理后,相比于純粹的異步復(fù)位,降低了異步復(fù)位信號釋放導(dǎo)致亞穩(wěn)態(tài)的可能性;相比同步復(fù)位,能夠識別到同步復(fù)位中檢測不到的復(fù)位信號(如上圖所示的rst_async在同步復(fù)位是檢測不到的);綜合兩者的優(yōu)勢,異步復(fù)位同步釋放。

四、Altera復(fù)位Altera還是把這個同步后的復(fù)位當(dāng)作異步復(fù)位來用的,且推薦低電平復(fù)位。

從上面的分析來看,這里當(dāng)作異步復(fù)位還是同步復(fù)位對于復(fù)位結(jié)果本身沒有太大的影響,區(qū)別在于Xilinx是推薦同步復(fù)位來節(jié)省

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論