Vivado支持通过脚本的方式自动生成版本号,即每次重新开始综合的时候,会将vivado.verision.vh文件中记录的时间和日期进行覆盖。实现方式如下:
1. Vivado工程下建两个文件夹,src和tcl文件夹。两个文件具体内容见下文。
src:用来存放 vivado_verision.vh
tcl:用来存放 version_gen.tcl
2. 在工程顶层文件中通过 `include 命令,将vivado_verision.vh添加到头部。具体索引路径根据自己工程实际情况进行修改。示例:
3. 按照下图所示配置,打开Vivado设置界面,点击Synthesis选项,在tcl.pre* 栏里选择version_gen.tcl文件,确认即可。
注意事项:
1. vivado_verision.vh不需要手动添加到工程文件里。否则会导致每次综合实现后会有如下提示:
Synthesis and Implementation Out-of-date
vivado_verision.vh文件内容:
`define VERSION 32'h00010001
`define COMPILE_DATE 32'h19970101
`define COMPILE_TIME 32'hFF240000
version_gen.tcl文件内容:
#!/usr/bin/tclsh
#version_gen.tcl
#在这里设置版本号
set veri 00010001
#在这里设置路径
set file "./../../../src/vivado_verision.vh"
#=========================================================#
set dat [clock format [clock seconds] -format {%Y %m %d %H:%M:%S}]
puts stdout $dat
set date [clock format [clock seconds] -format {%Y%m%d}]
set time [clock format [clock seconds] -format {%H%M%S}]
#注意修改version.h的路径
set fileid [open $file w+]
seek $fileid 0 start
puts $fileid "`define VERSION 32'h$veri "
puts $fileid "`define COMPILE_DATE 32'h$date "
puts $fileid "`define COMPILE_TIME 32'hFF$time "
close $fileid