时序约束辅助工具


本文摘抄自:
个人网站:http://www.technomania.cn/
微信公众号:Quant_times、Reading_Times

时序约束辅助工具

除了xdc文件的方式进行时序约束,Vivado中还提供了两种图形界面的方式,帮我们进行时序约束:时序约束编辑器(Edit Timing Constrains)和时序约束向导(COnstrains Wizard)。两者都可以在综合或实现后的Design中打开。

1. 时序约束编辑器

打开之后就可以显示我们之前做的所有约束,当然,还可以再添加、删除或修改时序约束。
在这里插入图片描述
比如我们要添加一个主时钟,先选中左边的create clock,再点击+号添加约束。然后就会看到下面的界面,按下图中步骤操作。
在这里插入图片描述
其中,选择时钟按钮会弹出一个新的窗口,如下图所示,我们只需要根据时钟名字进行查找并选择即可。
在这里插入图片描述

2. 时序约束向导

时序约束向导可以自动识别出未约束的主时钟,我们把wave_gen工程中的xdc文件中对clk2的时钟约束注释掉,重新综合并实现后,打开时钟约束向导,可以看到clk2被监测出来未约束,点击编辑按钮,设置参数后即可完成约束。
在这里插入图片描述
时序约束向导会按照主时钟约束、衍生时钟约束、输入延迟约束、输出延迟约束、时序例外约束、异步时钟约束等的顺序引导设计者创建约束。

Vivado时序约束中Tcl命令中的对象及属性

我们前面讲到过get_pins和get_ports的区别,而且我们也用过get_cells、get_clocks和get_nets这几个指令,下面就通过一张图直观展现它们的区别。
在这里插入图片描述
get_clocks后面的对象是我们之前通过create_clocks或者create_generated_clocks创建的时钟,不在硬件上直接映射。
我们再来看看各个命令的属性。

  1. port
    我们可以通过Tcl脚本查看port的所有属性,比如上面的wave_gen工程中,有一个port是clk_pin_p,采用如下脚本:
set inst [get_ports clk_pin_p]
report_property $inst

显示如下:
在这里插入图片描述
get_ports的使用方法如下:
在这里插入图片描述
2. cell
按照上面的同样的方式,获取cell的property,如下:
在这里插入图片描述
get_cells的使用方法如下:
在这里插入图片描述
3. pin
获取pin的property,如下:
在这里插入图片描述
get_pins的使用方法如下:
在这里插入图片描述
4. net
获取net的property,如下:在这里插入图片描述
get_nets的使用方法如下:
在这里插入图片描述
这5个tcl指令的常用选项如下表:
在这里插入图片描述
这5个tcl命令对应的5个对象之间也有着密切的关系,下图所示的箭头方向表示已知箭头末端对象可获取箭头指向的对象。
在这里插入图片描述
以wave_gen中的clk_gen_i0模块位列说明上面的操作:
在这里插入图片描述
需要注意的是:
5. -hier不能和层次分隔符“/”同时使用,但“/”可出现在-filter中
6. 可根据属性过滤查找目标对象
7. -filter中的属性为:“==”(相等)、“!=”(不相等)、“=”(匹配)、“!”(不匹配)、若有多个表达式,其返回值为bool类型时,支持逻辑操作(&& ||)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值