vivado 定义相对放置的宏

发布时间:2024年01月03日

定义相对放置的宏

关于相对放置的宏

相对放置宏(RPM)是一组基本逻辑元件(BEL)的列表。

逻辑元件的示例包括:

?FF

?LUT

?DSP

?闸板

RPM主要用于将小组逻辑紧密地放在一起,以改进资源效率并实现更快的互连。

定义设计元素集

定义具有U集(U_Set)或HU集(HU_Set)约束的设计元素集。

?集合中的每个元素都是通过Relative相对于集合中的其他元素放置的位置(RLOC)约束。

?具有RLOC约束和通用集合名称的逻辑元件在RPM中关联。U_SET、HU_SET和RLOC约束:

?必须定义为HDL设计文件中的属性。

?Xilinx设计约束格式(XDC)不支持。

提示:可以使用create_macro和update_macro命令在中定义宏对象AMD Vivado? 设计套件,其作用类似于设计中的RPM。请参阅XDC宏。有关U_SET、HU_SET和RLOC约束的更多信息,请参阅Vivado Design Suite属性参考指南(UG912)。

创建RPM

要创建RPM:

1.将单元格分组为一组。

2.定义RPM集中单元格的相对位置。

3.在RPM单元上指定RLOC_ORIGIN约束或LOC约束以固定的位置目标设备上的RPM。

注意:此步骤是可选的。

将单元格分配给RPM集分层模块中被分配RLOC约束的设计元素是自动的分组为RPM集合。通过使用H_SET约束进行分组,该约束由以下各项的组合隐式定义设计层次结构和RLOC约束。设计层次结构的单个块中具有RLOC约束的所有设计元素是被认为是在同一个H_SET中,除非它们被另一个集合约束标记,例如U_ SET或HU_SET。

显式分组设计元素

虽然基于设计层次结构和RLOC约束的存在隐含了H_ SET,也可以使用U_SET和HU_SET将设计元素显式分组到RPM集中约束。

用U_SET显式分组设计元素

U_SET允许对单元进行分组,而不管它们在设计中的层次结构或位置如何。所有单元格具有相同set_name的是相同RPM集的成员。用U_SET约束标记的设计元素可以是基元符号,也可以是非基元符号。当附加到非基元符号时,U_SET约束向下传播通过将层次结构分配给其下面被分配RLOC约束的所有基元符号。

使用HU_SET显式分组设计元素

HU_SET有一个明确的用户定义和层次结构限定的集合名称。这让你创建分层RPM,其中RLOC约束可以放置在不同级别的单元上层次结构。具有相同层次限定集名称的所有单元格都是同一集的成员。

VHDL中定义RPM集的语法

在VHDL中将RPM集定义为属性的语法为:

attribute U_SET : string;
attribute HU_SET : string;
...
attribute U_SET of my_reg : label is "uset0";
attribute HU_SET of other_reg : label is "huset0";

在Verilog中定义RPM集的语法

在Verilog中将RPM集定义为属性的语法如下。

U_SET示例

(* U_SET = "uset0", RLOC = "X0Y0" *) FD my_reg (.C(clk), .D(d0), .Q(q0));
HU_SET Example
(* HU_SET = "huset0", RLOC = "X0Y0" *) FD other_reg
(.C(clk), .D(d1), .Q(q1));
“物理约束”窗口中的RPM定义

RPM集必须作为属性嵌入到HDL源文件中。合成后,RPM相关属性在网表对象上显示为只读属性,供AMD Vivado使用集成设计环境(IDE)放置器。

查看RPM定义

在“物理约束”窗口中查看RPM定义。见图96。查看RPM定义:

1.展开RPM文件夹以显示RPM列表。

2.选择RPM以查看其属性或选择相关单元格。

提示:可以通过从“物理约束”拖动到设备来放置和锁定RPM窗RPM作为单个形状移动,而不是逐单元移动。

通过opt_design保持RPMopt_design可以自由地优化和删除属于RPM的一些LUT,尽管RLOC约束。为了防止opt_design优化RPM内部的逻辑在属于RPM的所有单元上将属性DONT_TOUCH设置为TRUE所必需的。DONT_TOUCH属性可以通过RTL或XDC设置。

文章来源:https://blog.csdn.net/cckkppll/article/details/135373321
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。