Vivado抓信号——提高效率的工具化生成XDC(Python脚本)

本文介绍了如何使用Python开发的工具自动生成Vivado抓取信号的XDC文件,避免了繁琐的传统方法,通过提供信号列表和操作流程,简化了Vivado上板信号抓取过程。
摘要由CSDN通过智能技术生成


通常情况下,Vivado上板抓取信号的方法主要有两类:

(1)通过在信号前添加(mark_debug=“true”),综合完之后点击Set Up Debug,将需要抓取的信号添加进去,之后生成bit。
在这里插入图片描述

在这里插入图片描述

(2)通过添加ila核,将需要抓取的信号添加到例化的ila核中,具体可见以下链接:

vivado 抓取信号:mark debug 和 ILA

上面两种方法在实际使用中都相对比较麻烦,第一种需要先对需要抓取的信号添加(mark_debug=“true”),虽然大部分情况下不需要,但是经常会有未添加(mark_debug=“true”)的信号找不到的情况;添加完之后跑综合,然后再Set up Debug,之后手动拖动信号,之后等待加载然后保存。

这一套操作下来很费时间,第二种例化ila核相对来说会方便很多,但也需要对ila的IP核进行设置。

因此,考虑到提高抓取信号的效率,思考Set up Debug背后的本质其实就是生成了对应的XDC文件内容,于是想到可以通过根据我想抓取的信号列表,自动生成对应的XDC文件,于是就有了这样的一个基于Python开发的工具。

下面给出如何使用本工具的介绍,包括操作流程以及所需要提前准备的信号列表模板:

一、要抓取信号的txt列表

txt列表模板如下:

在这里插入图片描述

具体如下:

第1行:clk(固定为clk不可修改) 时钟名称1 产生本时钟的模块例化名1

三者之间要以空格隔开

第2行:要抓取信号所在模块的例化名

第3/4行:要抓取的信号(建议在要抓取的信号前添加(mark_debug=“true”),以免无法找到该信号);

格式为以下几种:
output reg signal;
output reg [x:0] signal;
output [x:0] signal;
input signal;
input [x:0] signal;
reg [x:0] signal;
reg signal;
wire [15:0] signal;
wire signal;

需要注意各部分之间要至少有一个空格(如output和[x:0]之间,[x:0]和reg之间,reg和signal之间),并且在信号名之后要紧接一个分号“;”

若在本时钟域下还有另一个模块的信号要抓取,可以再新开一行写上模块例化名,再写上要抓取的信号

第5行:本时钟域下另一个模块的例化名

第6/7/8行:要抓取的信号;

若有另一个时钟域下的信号要抓取,需要按照上述步骤添加,示例如下:

第9行:clk 时钟名称2 产生本时钟的模块例化名2

第10行:要抓取信号所在模块的例化名

第11/12/13行:要抓取的信号;

第14行:clk 时钟名称3 产生本时钟的模块例化名3

第15行:要抓取信号所在模块的例化名

第16/17行:要抓取的信号;

二、操作流程

(1)首先建立一个文件夹(我这里是scripts,并且放在了工程文件夹下),之后建立一个名为ila_set.txt的文本文件(必须为这个名字)。
在这里插入图片描述

(2)运行给出的ila.exe,选择Vivado.bat的路径、之前新建的用于存放ila_set.txt的文件夹路径、以及工程文件xpr的路径,并且根据是否需要使用vio选择有无vio以及vio时钟的名称

在这里插入图片描述

(3)选择完成之后点击开始生成,ila_set.tcl生成后打开之前的文件夹(上文的scripts),打开ila_set.tcl文件,便得到了需要的xdc文件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(4)之后只需将其复制到xdc文件中即可开始生成bit。

以上流程看似繁琐,其实在熟悉之后很方便,相对于第一种方法节省了等待其跑综合、手动拖动信号的时间,并且可以将txt文件保存下来之后只需要修改txt如何生成xdc,再运行bit生成,总体来说还是相对方便一些。

请注意一定要严格按照上文流程!!!

exe和python源码放到下面的链接里:

ila.exe及ila.python源码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值