Vivado log文件包含什么信息(1)

无论是综合(Synthesis)还是实现(Implementation),Vivado在运行过程中都会生成日志文件。文件名为runme.log。这个文件位于相应的Design Runs目录下。例如,综合的Design Runs名为synth_1,那么runme.log就在这个目录下。该文件记录了Vivado在运行过程中的一些基本信息,对于设计分析很有帮助,却往往被很多工程师所忽略。这里我们就来看看runme.log里都有哪些信息。

以综合阶段的runme.log为例。打开之后文件开头部分信息如下图所示。第7行可以看到Vivado版本信息。第13行关键字Command表明Vivado执行的命令,这里执行的命令是synth_design。根据该命令的参数可知顶层文件名为oc_top,参数-part给出了该工程使用的具体芯片型号信息。Command是一个很重要的关键字,Vivado运行的所有命令在log文件中呈现时都是以Command开头。

接下来会看到很多以INFO开头的行,这些内容通常情况下我们可以忽略,但也可以从中捕获出一些信息,例如下图第19行,显示了综合阶段使用的线程数,根据这个参数我们就可以判定所设定的线程数是否生效。

相比于INFO,以WARNING开头的行对应的内容更为重要,也值得我们进一步关注。如下图所示,WARNING信息显示相应的管脚没有负载,处于断开的状态,这就要回到RTL代码里查看,是设计者有意为之还是设计失误。

在约束文件处理环节,可以看到Vivado编译约束文件的顺序,例如第190行分析的是IP生成的约束文件,第193行和第195行则分析的是用户约束文件。如果约束文件中有语法错误或者Tcl命令没有期望的返回值,也会在这个部分显示出来,这对于我们判断约束是否生效也是有帮助的。

 

 

如果约束中使用了set_property命令,而相应的属性在综合阶段会生效,那么Vivado也会显示对这些属性的处理信息,如下图所示。第220行显示设计使用了属性IO_BUFFER_TYPE,第221行显示设计使用了属性CLOCK_BUFFER_TYPE,第222行显示设计使用了属性RETIMING_FORWARD,第223行显示设计使用了属性KEEP_HIERARCHY。同时也会显示这些属性作用的对象。

如果设计中使用了RTL代码描述的存储单元,综合阶段也会显示该存储单元的映射结果。如下图所示,显示RAM使用URAM实现,同时默认的URAM级联高度为8。

而这些RAM也可以通过如下命令在ElaboratedDesign中查找到。

同时,Vivado对于URAM的具体映射信息也会给出映射报告,如下图所示,显示了URAM的深度/宽度、输出是否有流水寄存器以及被吸收的流水寄存器的个数。

如果综合阶段使用了属性RETIMING_BACKWARD或RETIMING_FORWARD,也可以看到相应的信息,如下图所示。

阅读log文件时要关注两点:WARNING和CRITICAL WARNING。如下图所示的CRITICAL WARNING,可以帮助我们判断约束是否生效。

这些WARNING或CRITICAL WARNING也可以在Vivado Message窗口中看到,如下图所示。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值