fpga版本管理:vivado自动版本号日期


如果觉得这篇内容对你有帮助,点个赞、收藏一下吧!你的支持是我最大的动力!


一、vivado设置

打开vivado,找到setting,按照图片所示方式添加tcl文件
在这里插入图片描述

二、tcl文件放到代码目录

将tcl文件放到verilog文件相同目录下

# 获取脚本所在目录
set script_dir [file dirname [info script]]

# 使用相对路径构建文件路径
set filename [file join $script_dir "xxxxx.v"]

# 打开文件读取内容
set file [open $filename r]
set data [read $file]
close $file

# 定义版本号、日期和时间的正则表达式
set version_regex {parameter\s+VERSION_NUMBER\s*=\s*32'h([0-9A-Fa-f]+);}
set date_regex {parameter\s+VERSION_DATE\s*=\s*32'h([0-9A-Fa-f]+);}
set time_regex {parameter\s+VERSION_TIME\s*=\s*32'h([0-9A-Fa-f]+);}

# 获取当前日期,并格式化为所需的16进制日期格式:YYYYMMDD
set current_date [clock format [clock seconds] -format {%Y%m%d}]
set date_hex $current_date

# 获取当前时间,并格式化为所需的16进制时间格式:HHMMSS
set current_time [clock format [clock seconds] -format {%H%M%S}]
set time_hex $current_time

# 匹配并提取当前版本号
regexp $version_regex $data match current_version_hex
set current_version [scan $current_version_hex %x]
set new_version [expr $current_version + 1]
set new_version_hex [format "%08X" $new_version]

# 用新的版本号、日期和时间替换旧的版本号、日期和时间
set new_data [regsub $version_regex $data "parameter VERSION_NUMBER = 32'h$new_version_hex;"]
set new_data [regsub $date_regex $new_data "parameter VERSION_DATE = 32'h$date_hex;"]
set new_data [regsub $time_regex $new_data "parameter VERSION_TIME = 32'h$time_hex;"]

# 重新写入文件
set file [open $filename w]
puts $file $new_data
close $file

# 打印版本更新信息
puts "version_number has been update---------------- $new_version_hex"
puts "date has been update-------------------------- $date_hex"
puts "time has been update-------------------------- $time_hex"

三、添加参数

对要修改的文件,添加以下三个参数,执行vivado编译时,便会自动修改这三个参数
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值