前言
我們在編譯FPGA工程的時候一般需要對版本號的更新,一般來說都會有一個日期或者時間的版本標識,在上板調(diào)試的時候用于表征當前版本確實已經(jīng)更新成功,或者作為FPGA發(fā)布版本的標識等等。但有時候我們有時候會忘記更新版本號,從而導(dǎo)致時間的浪費。
下面我們就是要解決這個痛點,利用vivado的tcl功能自動進行日期版本號的更新
創(chuàng)建.v文件
例如創(chuàng)建 一個version_date.v
里面就包含兩句話 ,分別表示當前的年月日和時分秒
parameter [31:0] FPGA_VERSION_A = 32'h20221006 ; parameter [31:0] FPGA_VERSION_B = 32'h000000 ;
在正式的工程文件,例如top.v中
assign AAA_reg = FPGA_VERSION_A; assign BBB_reg = FPGA_VERSION_B;
設(shè)定tcl文件路徑
點擊synthesis Settings
選中tcl的路徑
tcl內(nèi)容
set file_addr "../../version_date.v" set time_now [clock seconds] set time0 [clock format $time_now -format "%Y%m%d"] set time1 [clock format $time_now -format "%H%M%S"] set f [open $file_addr w] set str "parameter [31:0] FPGA_VERSION_A = 32'h$time0 ;" puts $f $str set str "parameter [31:0] FPGA_VERSION_B = 32'h$time1 ;" puts $f $str close $f
注意tcl中的第一句話,因為 對于這個tcl而言 ,當前路徑是工程文件夾是( unssynth_3),而我們的version_date.v 放到了.xpr工程所在的路徑中
關(guān)于當前路徑的說明在UG894中:
Important: Relative paths within the tcl.pre and tcl.post scripts are relative to the appropriate run directory of the project they are applied to:/ / .
優(yōu)點和缺點
優(yōu)點:這個小技巧解決了每次編譯需要手動更新編譯日期的問題。
缺點:每次編譯后,文件狀態(tài)都會顯示為out-of-data,按理來說pre.tcl應(yīng)該是綜合之前的操作,應(yīng)該是在綜合之前修改的文件,配置也確實生效了。但這里確實就是出現(xiàn)out-of-data了
-
FPGA
+關(guān)注
關(guān)注
1624文章
21573瀏覽量
600688 -
Vivado
+關(guān)注
關(guān)注
19文章
803瀏覽量
66151
原文標題:FPGA開發(fā)技巧備忘錄——Vivado自動日期版本號
文章出處:【微信號:FPGA十年老鳥,微信公眾號:FPGA十年老鳥】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論