vivado 物理约束
物理约束
关于物理约束
AMD Vivado? 集成设计环境(IDE)使设计对象能够在物理上受对象特性设置值的约束。示例包括:
?I/O限制,如位置和I/O标准
?放置限制,如单元位置
?路由限制,如固定路由
?配置限制,如配置模式
与时间约束类似,物理约束必须保存在XDC文件或Tcl脚本中,因此当您打开一个设计时,它们可以与网表一起加载。加载设计后内存中,您可以使用Tcl控制台交互式地输入新的约束,或者使用Vivado Design Suite IDE编辑工具。大多数物理约束是通过对象上的特性来定义的:
使用Pblock命令的区域约束除外。
严重警告
对XDC文件中的无效约束(包括应用于对象的约束)发出严重警告在设计中找不到的。有关属性定义和用法,请参阅《Vivado Design Suite属性参考指南》(UG912)。建议:AMD强烈建议您查看所有关键警告,以确保设计受到适当的约束。无效的约束在交互应用时会导致错误。
网表约束
网表约束是在网表对象(如端口、引脚、网络或单元)上设置的,需要进行合成以及以特殊方式处理它们的实现。
重要!确保您了解使用这些约束的影响。它们可能会导致增加了设计面积,降低了设计性能,或者两者兼而有之。网表约束包括:
?时钟指示路线
?MARK_DEBUG
?请勿触摸
?LOCK_PINS
时钟指定路线
在网络上设置CLOCK_DEDICATED_ROUTE以指示时钟信号的预期方式路由。CLOCK_DEDICATED_ROUTE属性在时钟网络上用于覆盖默认路由。这是一种高级控制,需要格外小心,因为它可能会影响时间的可预测性和可路由性。
例如,当专用时钟路由为无法使用的。值FALSE允许Vivado工具将时钟从输入端口路由到全局时钟资源,例如使用通用路由资源的BUFG或MMCM。这应该仅在设备包引脚分配已锁定时作为最后手段使用,以及时钟输入不能被分配给适当的具有时钟能力的输入引脚(CCIO)。路由除非与FIXED_ROUTE一起使用,否则将是次优且不可预测的。有关此特性的详细信息,请参见中的“时钟约束”。超快设计FPGA和SoC方法指南(UG949)。
标记缺陷
在RTL中的网络上设置MARK_DEBUG以保留它并使其在网表中可见。这允许它可以在编译流中的任何点连接到逻辑调试工具。有关更多信息,请参阅Vivado Design Suite用户指南中的此链接:编程和调试(UG908)。
DONT_TOUCH
在叶单元格、分层单元格或网络对象上设置DONT_TOUCH以在网表期间保留它优化DONT_TOUCH最常用于:
?防止网络被优化掉。
具有DONT_TOUCH的网络不能通过合成或实现来吸收。这可以是有助于逻辑探测或调试设计中的意外优化。保护一张网对于多个层次段,将DONT_TOUCH放置在网络PARENT(get_property
PARENT$net),这是最接近其驱动因素的净细分市场。
?防止合并手动复制的逻辑。
有时最好手动复制逻辑,例如跨越宽地区将DONT_TOUCH添加到手动复制的驱动程序(以及原始驱动程序)可防止通过优化这些单元来进行合成和实现。
注意:使用reset_property可重置DONT_TOUCH属性。将DONT_TOUCH属性设置为0不会重置属性。
提示:避免在分层单元上使用DONT_TOUCH作为Vivado IDE实现不会使逻辑层次结构变平。在合成中使用KEEP_HIERARCHY来维护的逻辑层次结构应用XDC约束。
锁定(_PINS)
LOCK_PINS是用于指定逻辑LUT输入(I0、I1、I2,…)和LUT物理输入引脚(A6,A5,A4,…)。常见的用途是强制将时序关键LUT输入映射到最快的A6和A5物理LUT输入。
LOCK_PINS约束示例一
将I1映射到A6,将I0映射到A5(交换默认映射)
LOCK_PINS约束示例二
LUT6的映射I0到A6、I1到I5的映射并不重要。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!