vivado 为RPM指定固定位置

本文介绍了如何在VivadoIDE中通过RLOC_ORIGIN和LOC约束来定位和固定RPM(Register-TransferMemoryArray)的位置,以及如何使用XDC宏在设计后阶段分配相对位置。宏与RPM在管理方式上有所不同,宏是用XDC约束而非HDL代码管理,且提供了create_macro,update_macro,delete_macros和get_macros等命令进行操作。
摘要由CSDN通过智能技术生成

为RPM指定固定位置

(可选)使用RLOC_ORIGIN或LOC约束来放置和固定RPM的位置设备。在Vivado IDE中,这些属性固定RPM原点,或RPM。RPM集合中的每个剩余单元通过使用相对位置(RLOC)进行偏移来放置从起源。

以下示例显示了使用RLOC_ORIGIN固定的分层RPM。RLOC约束被分配给RPM寄存器单元,以创建一个2乘3的交叉放置图案

在Verilog中:

(* RLOC = "X0Y0" *) FDC sr0...
(* RLOC = "X1Y0" *) FDC sr1...
(* RLOC = "X2Y0" *) FDC sr2...
(* RLOC = "X0Y1" *) FDC sr3...
(* RLOC = "X1Y1" *) FDC sr4...
(* RLOC = "X2Y1" *) FDC sr5...
RPM被实例化到设计中三次,每个单元上都有RLOC:
(* RLOC = "X0Y0" *) ffs u0...
(* RLOC = "X3Y2" *) ffs u1...
(* RLOC = "X6Y4" *) ffs u2...

最后,X74Y15的RLOC_ORIGIN被分配给单元u0,导致如图97。下图中的突出显示如下表所示。

XDC宏

XDC宏允许在合成后将相对位置分配给单元。宏有很多特性类似于RPM,但是可以使用交互修改的设计对象XDC和Tcl。宏是从与相对放置约束。RPM是用HDL代码管理的,而宏是用XDC约束管理的。RPM无法自动转换为宏。同样,宏也不能自动执行注释到HDL代码。与宏不同,RPM不是对象,XDC宏命令不能在RPM上使用。

指定宏

使用以下XDC Tcl命令来指定宏:

•创建_宏

•update_macro

•delete_macros

•get_macros

撤消和重做支持每个命令。以下是对每个命令的描述。

创建_宏

create_macro命令可创建一个新的宏对象。宏名称必须唯一。正在尝试创建与现有宏同名的宏

宏生成错误。

create_macro语法

create_macro<name>

create_macro示例

创建_最大m0

创建一个名为m0的宏对象。

更新(_Mcro)

update_macro命令将叶单元和相对位置(RLOC)添加到宏中。RLOC具有与RPM RLOC属性相同的语法和功能。所有单元格都必须是立即指定。不允许进行部分定义或增量定义。

update_macro语法

update_macro [-absolute_grid] <macro name> <cell-RLOC list>

•-absolute_grid:用于选择混合切片和非切片站点的绝对网格的开关。

○ X-Y值是场地特性RPM_X和RPM_Y。

○ “绝对栅格”值与RPM_Grid的值相同。

•宏名称:要更新的宏的名称。

•单元RLOC列表:单元和RLOC对的Tcl列表:

{cell0 RLOC(cell0) cell1 RLOC(cell1) - cellN RLOC(cellN)}.

○ 必须同时指定所有宏单元格和RLOC。无法在中生成宏步骤。

○ 如果需要更新现有宏,必须首先重新创建它。

update_macro示例一

update_macro m1 {u2/sr0 X0Y0 u2/sr1 X0Y1}

•将u2/sr0和u2/sr1添加到宏m1

•为u2/sr0分配X0Y0的RLOC

•为u2/sr1分配X0Y1的RLOC

以下(update_macro示例二)执行相同的操作,但语法略有不同。

update_macro示例二

set rlocs [list u2/sr0 X0Y0 u2/sr1 X0Y1]
update_macro m1 $rlocs

update_macro示例三

此示例使用绝对网格:

set rlocs {ireg X2Y38 q1reg X17Y40 q2reg X17Y40}
update_macro -absolute_grid m2 $rlocs

删除(_M)

delete_macros命令可删除指定的宏。

delete_macros语法

delete_macros <pattern>
delete_macros m1

get_macros

get_macros命令返回设计中的宏对象。

get_macros语法

get_macros [pattern]

在没有参数的情况下,get_macros命令返回设计中的所有宏。当宏如果指定了名称,则该命令将返回相应的宏对象。

get_macros示例

get_macros命令可以与其他对象命令一起使用。示例:

% create_macro m1
% update_macro m1 {u2/sr0 X0Y0 u2/sr1 X0Y1}
% get_cells -of [get_macros m1]
u2/sr0 u2/sr1
% get_macros -of [get_cells u2]
m1
以下命令返回单元格中完全包含的所有宏。
get_macros -of [get_cells $cells]
使用get_cell,可以进行其他间接组合,例如:
get_macros -of [get_cells -of [get_pblocks pb0]]
此命令返回包含在Pblock pb0中的宏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值