大家好,,博主最近有事忙了幾天,,沒有更新,,今天正式回來了,。那么又到了每日學(xué)習(xí)的時(shí)間了,,今天咱們來聊一聊 簡談FPGA的上電復(fù)位,,歡迎大家一起交流學(xué)習(xí),。
在基于verilog的FPGA設(shè)計(jì)中,,我們常??梢钥吹揭韵滦问降倪M(jìn)程:
信號rst_n用來對進(jìn)程中所用變量的初始化,,這個(gè)復(fù)位信號是十分重要的,如果沒有復(fù)位,,會(huì)導(dǎo)致一些寄存器的初始值變得未知,,如果此時(shí)FPGA就開始工作的話,極易導(dǎo)致錯(cuò)誤,。
那么,,這個(gè)復(fù)位信號來自何處?難道我們做好的系統(tǒng),,每次上電后都要手動(dòng)按一下reset按鈕么,?
答案是否定的!這個(gè)復(fù)位信號其實(shí)是由特定的程序來產(chǎn)生的,,系統(tǒng)每次上電,,都會(huì)由該程序產(chǎn)生一個(gè)復(fù)位信號,從而避免了手動(dòng)復(fù)位。
在網(wǎng)上找了多種方案,,覺得只有這個(gè)程序比較簡單實(shí)用,,轉(zhuǎn)來如下:
說明:
1.第一個(gè)進(jìn)程用來延時(shí),當(dāng)上電后,,延時(shí)100ms,,以保證FPGA內(nèi)部達(dá)到穩(wěn)定狀態(tài);此時(shí)sys_rst_n始終為0,,也就是系統(tǒng)時(shí)鐘處于復(fù)位狀態(tài)中,;
2.當(dāng)100ms延時(shí)結(jié)束后,sys_rst_n與系統(tǒng)時(shí)鐘同步釋放,,即sys_rst_n拉高,,復(fù)位結(jié)束,系統(tǒng)開始正常工作,。
今天就聊到這里,,各位,加油,。