风中月隐眼中用USR_ACCESS2自动获取vivado生成bit编译时间 需要避开多少坑?


在这里插入图片描述

前言

FPGA在做版本管理时,如果手动输入版本时间那么很多人会忘,会导致这个版本管理形同虚设。所以xilinx很贴心设置了一个源语USR_ACCESS2,来获取bit生成的时间。然而很多人去使用USR_ACCESS2时却很难用起来,这是为什么呢?因为要使用USR_ACCESS2,得避开下文讲解的坑,也就是抓住关键点。

USR_ACCESS2简介

功能介绍

参考XAPP497可以知道 USR_ACCESS2是xilinx提供的一个可以自动获取vivado编译bit的版本时间的源语,如下介绍:

图片

接口信号

也可看到本源语接口简单如下所示:

图片

数据排列

还可看到本源语的表示时间戳时的数据排列格式,如下所示:

图片

案例解析

甚至给了示例:

图片

关键点

1)USR_ACCESS2源语中的CFGCLK 时钟不能用来解析时间;

2)USR_ACCESS2源语中的DATAVALID 不能用来指示时间有效;

3)在xdc约束中需要以下约束;

set_property BITSTREAM.CONFIG.USR_ACCESS TIMESTAMP [current_design]

4)解析DATA中的时钟需要额外给一个固有的时钟;

5)源语中解析出来的数据是以十进制表示,而不是十六进制表示,这会导致想在fpga代码中连续表示年:月:日不好观看;

6)年的字段是6bit,只能表示0~63,默认是2000+year,所以要完整表示年的话,个人建议将解析出来的数值再加2000;

上板案例

图片

由上图所知该代码的data与时间与bit生成的时间保持一致。

扩展知识

vivado工具生成约束

假如在xdc中加约束不管用时,可能是语法不对。那么这个时候建议使用vivado本身来生成这个约束。方法如下:

图片

图片

图片

进制转换verilog代码

关注FPGA加速者公众号后

在后台回复:1 即可获取上板示例的代码。

在后台回复:2 即可获取xapp497。

可解析出时间版本,并转换为十六进制表示的代码

以下为代码端口示例:

图片

文末疑问

不知道大家在弄这个FPGA自动生成bit版本时间的时候都遇到了哪些问题?

欢迎留言讨论!

在这里插入图片描述

如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中月隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值