vivado 布线约束

发布时间:2024年01月03日

布线约束

路由约束应用于网络对象以控制其路由资源。

固定路由

固定路由是锁定路由的机制,类似于ISE中的定向路由。锁定网络路由资源涉及三个网络属性。见下表。

为了保证网络路由是固定的,它的所有单元也必须事先固定。以下是一个完全固定路线的示例。该示例采用以下设计图,并创建约束以修复网络A的路由(以蓝色选择)。

您可以在中加载已实现的设计后查询任何网络的路由信息内存:

% set net [get_nets netA]
% get_property ROUTE $net
{ CLBLL_LL_CQ CLBLL_LOGIC_OUTS6 FAN_ALT5 FAN_BOUNCE5 { IMUX_L17
CLBLL_LL_B3 } IMUX_L11 CLBLL_LL_A4 }

路由定义为一系列相对的路由节点名称,扇出表示为

嵌入式大括号。路由是通过在网络上设置以下属性来固定的:

% set_property IS_ROUTE_FIXED TRUE $net

若要对XDC文件中的约束进行反向注释以供将来运行,则所有单元的位置连接到固定网络的也必须保留。您可以通过选择来查询此信息原理图或设备视图中的单元格,并在中查看它们的LOC/BEL属性值“属性”窗口。或者,您可以直接从Tcl控制台查询这些值:

% get_property LOC [get_cells {a0 L0 L1}] SLICE_X0Y47 SLICE_X0Y47
SLICE_X0Y47
% get_property BEL [get_cells {a0 L0 L1}] SLICEL.CFF SLICEL.A6LUT
SLICEL.B6LUT

因为固定路由通常是定时关键的,所以LUT引脚映射也必须在LUT的LOCK_PINS属性,以防止路由器交换引脚。同样,您可以从Tcl控制台查询每个逻辑引脚的站点引脚:

% get_site_pins -of [get_pins {L0/I1 L0/I0}] SLICE_X0Y47/A4 SLICE_X0Y47/A2
% get_site_pins -of [get_pins {L1/I1 L1/I0}] SLICE_X0Y47/B3 SLICE_X0Y47/B2
修复netA的路由所需的完整XDC约束是:
set_property BEL CFF [get_cells a0] set_property BEL A6LUT [get_cells L0]
set_property BEL B6LUT [get_cells L1]
set_property LOC SLICE_X0Y47 [get_cells {a0 L0 L1}] set_property LOCK_PINS
{I1:A4 I0:A2} [get_cells L0] set_property LOCK_PINS {I1:A3 I0:A2}
[get_cells L1]
set_property FIXED_ROUTE { CLBLL_LL_CQ CLBLL_LOGIC_OUTS6 FAN_ALT5
FAN_BOUNCE5 {
IMUX_L17 CLBLL_LL_B3 } IMUX_L11 CLBLL_LL_A4 } [get_nets netA]

如果使用交互式Tcl命令而不是XDC,则可以使用几个放置约束

使用place_cell命令一次指定,如下所示:

place_cell a0 SLICE_X0Y47/CFF L0 SLICE_X0Y47/A6LUT L1 SLICE_X0Y47/B6LUT

配置约束

配置约束是位流生成的全局约束,应用于当前设计。这包括诸如配置模式之类的约束。

配置约束示例一将CONFIG_MODE设置为M_SELECTMAP

% set_property CONFIG_MODE M_SELECTMAP [current_design]

配置约束示例二

打开调试位流。

% set_property BITSTREAM.GENERAL.DEBUGBITSTREAM Yes [current_design]

配置约束示例三

禁用CRC检查

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