對于寄存器,如果沒有明確指定其初始值,Vivado會根據其類型(FDCE/FDRE/FDPE/FDRE)設定合適的初始值。有些工程師喜歡使用復位信號,對所有的寄存器進行上電復位,使其在處理數據之前達到期望初始狀態。但這會有一個不利之處就是復位信號的扇出很大,從而消耗了大量的布線資源,甚至造成布線擁塞。那么能不能讓寄存器在上電之后不用通過復位就輸出期望值呢?答案是肯定的。
Xilinx也建議對于同步元件,最好設定其初始值。這里我們以最常用的寄存器為例。如果使用的是VHDL,可以采用下面的方法設定寄存器初始值,如下圖所示。

如果使用的是Verilog,可以采用下面的方法設定寄存器初始值,如下圖所示。

此外,對于Verilog,也可通過initial設定初始值,如下圖所示。

采用這種方法的好處是:綜合工具是支持的,這樣生成bit文件時這些初始值會被寫入配置文件中,上電即可生效,避免了使用復位造成的扇出過大;同時在仿真時,也能跟實際業務相匹配。 為了驗證這個方法是否生效,只需要打開綜合后的.dcp,找到相應的寄存器,在其Property窗口中查看屬性INIT的值,如下圖所示。

編輯:jq
-
寄存器
+關注
關注
31文章
5608瀏覽量
129976 -
上電復位
+關注
關注
1文章
44瀏覽量
16180 -
init
+關注
關注
0文章
16瀏覽量
3695
原文標題:如何設定寄存器的初始值?
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
RDMA設計39:寄存器功能驗證與分析
LAT1170+如何理解 RAMECC FAR 寄存器的值
智能顯示模塊怎么在顯示工程中給寄存器設置初始值?我想給變量一個上電的默認值該如何設置?
智能顯示模塊怎么在顯示工程中給寄存器設置初始值?我想給變量一個上電的默認值該如何設置?
【NCS隨筆】nRF54L15使用UICR寄存器保存數據
嵌入式系統必懂的 20 個寄存器
大彩講堂:VisualHMI-LUA教程-連續寫多個寄存器函數的應用
NVMe高速傳輸之擺脫XDMA設計32:寄存器功能驗證與分析2
?SN74HCT595 8位移位寄存器技術解析與應用指南
?TPIC6B595 8位功率移位寄存器技術文檔總結
使用寄存器點亮LED燈
如何用C語言操作寄存器——瑞薩RA系列FSP庫開發實戰指南(10)
教你們怎么去設定寄存器的初始值
評論