如何實(shí)現(xiàn)FPGA的非復(fù)位處理?不懂,就進(jìn)來(lái)看看!
本文中,小編將對(duì)FPGA不復(fù)位的代碼實(shí)現(xiàn)予以介紹,如果你想對(duì)復(fù)位的詳細(xì)情況有所認(rèn)識(shí),或者想要增進(jìn)對(duì)復(fù)位知識(shí)的了解程度,不妨請(qǐng)看以下內(nèi)容哦。
一、編碼實(shí)現(xiàn)FPGA的不復(fù)位處理
在FPGA設(shè)計(jì)中,復(fù)位是一個(gè)基本操作。復(fù)位的目的是將FPGA的寄存器清零或賦初值,以確保仿真或正常上板運(yùn)行時(shí)正常,以防止出現(xiàn)不確定的運(yùn)行狀態(tài)。
需要注意的是,F(xiàn)PGA中可編程邏輯塊和寄存器,可能運(yùn)行在不同的時(shí)鐘和狀態(tài)下,在某些功能突然停止運(yùn)行時(shí),可能處于未知狀態(tài),如果不按照預(yù)期的方式進(jìn)行復(fù)位操作,F(xiàn)PGA可能無(wú)法正常工作。
根據(jù)復(fù)位方式的不同,F(xiàn)PGA復(fù)位信號(hào)可以分為外部復(fù)位和內(nèi)部復(fù)位兩種,復(fù)位信號(hào)也要分為高電平復(fù)位有效或低電平復(fù)位有效。
FPGA復(fù)位需要消耗FPGA內(nèi)部資源,也會(huì)影響FPGA布線和時(shí)序收斂,所以對(duì)于每個(gè)寄存器都進(jìn)行復(fù)位并不是最優(yōu)方案,比如寄存器變量延遲幾拍、有使能信號(hào)或有效信號(hào)控制的信號(hào)變量等情況都可以不做復(fù)位處理,如下所示:
vivado綜合后電路如下:
無(wú)復(fù)位信號(hào)
同步復(fù)位
異步復(fù)位
以上圖中可以看出,沒(méi)有復(fù)位信號(hào)的模塊中,F(xiàn)DRE型觸發(fā)器的復(fù)位輸入接入了地,節(jié)省了復(fù)位信號(hào)的扇出。
二、同步、異步復(fù)位
上面提到了同步復(fù)位、異步復(fù)位,那我們來(lái)看下二者的優(yōu)缺點(diǎn)。
1、同步復(fù)位的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
有利于基于周期的仿真工具的仿真;
有利于靜態(tài)時(shí)序分析工具的分析,可以綜合出較高的工作頻率;
缺點(diǎn):
復(fù)位依賴于時(shí)鐘信號(hào),當(dāng)時(shí)鐘信號(hào)出現(xiàn)故障時(shí),系統(tǒng)將無(wú)法正常復(fù)位;
占用更多內(nèi)部邏輯資源,邏輯門(mén)時(shí)延較高:由于多數(shù)邏輯器件的目標(biāo)庫(kù)內(nèi)的D觸發(fā)器只有異步復(fù)位端口,所以綜合器在綜合同步復(fù)位時(shí)將在寄存器的輸入端口插入組合邏輯;
2、異步復(fù)位的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
節(jié)約內(nèi)部邏輯資源,設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單:由于多數(shù)邏輯器件的目標(biāo)庫(kù)內(nèi)的D觸發(fā)器都有異步復(fù)位端口,所以復(fù)位端口不需要設(shè)計(jì)額外的邏輯資源。
缺點(diǎn):
復(fù)位信號(hào)對(duì)電路內(nèi)的毛刺敏感,容易受到外界的干擾,出現(xiàn)頻繁復(fù)位現(xiàn)象;
復(fù)位信號(hào)異步釋放的隨機(jī)性可能導(dǎo)致時(shí)序違規(guī),當(dāng)復(fù)位信號(hào)釋放在時(shí)鐘有效沿附近時(shí),觸發(fā)器輸出可能處于亞穩(wěn)態(tài),導(dǎo)致復(fù)位操作失敗;
最后,小編誠(chéng)心感謝大家的閱讀。你們的每一次閱讀,對(duì)小編來(lái)說(shuō)都是莫大的鼓勵(lì)和鼓舞。最后的最后,祝大家有個(gè)精彩的一天。