vivado 物理约束

物理约束

关于物理约束

AMD Vivado™ 集成设计环境(IDE)使设计对象能够在物理上受对象特性设置值的约束。示例包括:

•I/O限制,如位置和I/O标准

•放置限制,如单元位置

•路由限制,如固定路由

•配置限制,如配置模式

与时间约束类似,物理约束必须保存在XDC文件或Tcl脚本中,因此当您打开一个设计时,它们可以与网表一起加载。加载设计后内存中,您可以使用Tcl控制台交互式地输入新的约束,或者使用Vivado Design Suite IDE编辑工具。大多数物理约束是通过对象上的特性来定义的:

set_property <property> <value> <object list>

使用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(交换默认映射)

% set myLUT2 [get_cells u0/u1/i_365]
% set_property LOCK_PINS {I0:A5 I1:A6} $myLUT2
# Which you can verify by typing the following line in the Tcl Console:
% get_property LOCK_PINS $myLUT2

LOCK_PINS约束示例二

LUT6的映射I0到A6、I1到I5的映射并不重要。

% set_property LOCK_PINS I0:A6 [get_cell u0/u1/i_768]

相关推荐

  1. vivado 物理约束

    2024-01-01 22:08:03       39 阅读
  2. vivado约束方法4

    2024-01-01 22:08:03       46 阅读
  3. vivado I/O延迟约束

    2024-01-01 22:08:03       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-01 22:08:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-01 22:08:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-01 22:08:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-01 22:08:03       20 阅读

热门阅读

  1. Linux:20个linux常用命令

    2024-01-01 22:08:03       41 阅读
  2. js获取某天日期

    2024-01-01 22:08:03       35 阅读
  3. 国内低代码平台介绍及优势盘点

    2024-01-01 22:08:03       33 阅读
  4. 微服务(8)

    2024-01-01 22:08:03       34 阅读
  5. Golang标准库sync的使用

    2024-01-01 22:08:03       35 阅读