在實際設計中,由於外部阻容復位時間短,可能無法使FPGA內部復位到理想的狀態,所以今天介紹一下網上流行的復位邏輯。
在基於verilog的FPGA設計中,我們常常可以看到以下形式的進程:
信號rst_n用來對進程中所用變量的初始化,這個復位信號是十分重要的,如果沒有復位,會導致一些寄存器的初始值變得未知,如果此時FPGA就開始工作的話,極易導致錯誤。
那么,這個復位信號來自何處?難道我們做好的系統,每次上電后都要手動按一下reset按鈕么?
答案是否定的!這個復位信號其實是由特定的程序來產生的,系統每次上電,都會由該程序產生一個復位信號,從而避免了手動復位。
復位的方案很多,下面介紹一個簡單方案。
clk:50M時鍾輸入
rst_n:異步復位輸入
sys_rst_n:系統全局同步復位信號
第一個進程用來延時,當上電后,延時100ms,以保證FPGA內部達到穩定狀態;此時sys_rst_n始終為0,也就是系統時鍾處於復位狀態中;2.當100ms延時結束后,sys_rst_n與系統時鍾同步釋放,即sys_rst_n拉高,復位結束,系統開始正常工作。
版權所有權歸卿萃科技 杭州FPGA事業部,轉載請注明出處
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA極客空間 微信公眾號
掃描二維碼關注杭州卿萃科技FPGA極客空間