布局规划技巧
对于从未满足时序的设计以及不适合更改网表或约束的设计
,
可考虑采用门级布局规划。
分层布局规划
分层布局规划支持您将一个或多个层级布局在片上某个区域内。此区域可向布局器提供全局层面的指导信息
,
并由布局器执行详细布局。分层布局规划相比于门级布局规划具有如下优势:
• 分层布局规划的创建速度比门级布局规划更快。良好的布局规划可改善时序。布局规划不受设计变更影响。
• 层级可充当所有门电路的容器。一般即使网表发生更改
,
它仍可正常运作。
在分层布局规划中支持
:
• 识别包含关键路径的较低层级。
• 使用顶层布局规划来识别布局位置。
• 通过实现来执行个别单元布局。
• 全面掌握单元和时序路径信息。
• 通常能够有效完成高精度布局。
手动单元布局
手动单元布局可充分发挥器件性能。使用此技巧时
,
设计师通常只能将其用于小块设计。可将少量逻辑布局到高速
I/O接口周围,
或者可手动布局块
RAM
和
DSP
。手动布局可能比较慢。
所有布局规划技巧都需要大量工程设计时间。可能需要布局规划迭代。如果任意单元名称发生更改
,
则必须更新布局规划约束。
执行布局规划时
,
应明确最终管脚分配。最好将
I/O
固定。
I/O
可提供锚点作为布局规划的起点。与
I/O
通信的逻辑可向固定管脚移植。

上图所示布局规划可能对时序没有帮助。请考虑将块拆分、更改源代码或者仅约束块
RAM
和
DSP
。另请考虑在外部时序要求允许的情况下取消 I/O
寄存器布局。
本部分中提到的
Pblock
以
XDC
约束来表示
:
create_pblock Pblock_usbEngine
add_cells_to_pblock [get_pblocks Pblock_usbEngine] [get_cells -quiet [list
usbEngine1]]
resize_pblock [get_pblocks Pblock_usbEngine] -add
{SLICE_X8Y105:SLICE_X23Y149}
resize_pblock [get_pblocks Pblock_usbEngine] -add {DSP48_X0Y42:DSP48_X1Y59}
resize_pblock [get_pblocks Pblock_usbEngine] -add
{RAMB18_X0Y42:RAMB18_X1Y59}
resize_pblock [get_pblocks Pblock_usbEngine] -add
{RAMB36_X0Y21:RAMB36_X1Y29}
set_property IS_SOFT 0 [get_pblocks Pblock_usbEngine]
第
1
行用于创建
Pblock
。第
2
行
(
add_cells_to_pblock
)
用于将层级分配到
Pblock
。有
4
种资源类型
(
SLICE
、DSP48、
RAMB18
和
RAMB36
),
各有自己的网格。不受网格约束的逻辑可连接至器件内任意位置。要仅约束层级内的块 RAM
,
请禁用其他
Pblock
网格。

生成的
XDC
命令可用于定义简化的
Pblock
:
create_pblock Pblock_usbEngine
add_cells_to_pblock [get_pblocks Pblock_usbEngine] [get_cells -quiet [list
usbEngine1]]
resize_pblock [get_pblocks Pblock_usbEngine] -add
{RAMB18_X0Y42:RAMB18_X1Y59}
resize_pblock [get_pblocks Pblock_usbEngine] -add
{RAMB36_X0Y21:RAMB36_X1Y29}
块
RAM
约束在器件内
,
但
slice
(
分片
)
逻辑可自由布局在器件上任意位置。

使用基于
Pblock
的布局规划
将
RTL
集成到设计中时
,
有助于将器件内部的设计可视化。以图形化方式查看块之间的互连方式以及综合后的
I/O
管脚分配 (pinout)
有助于您了解自己的设计。
要查看互连方式
,
请在上层层级内使用
Pblock
生成顶层布局规划。要将顶层
RTL
细分为多个
Pblock
,
请选择“Tools
” → “
Floorplanning
” → “
Auto Create Pblocks
”
(
工具
>
布局规划
>
自动创建
Pblock
)
。要将块布局到器件内,
请选择“
Tools
” → “
Floorplanning
” → “
Place Pblocks
”
(
工具
>
布局规划
>
布局Pblock)
。工具会根据
slice
计数和目标使用率来设置
Pblock
大小。
分析期间
,
Pblock
填充可能超过
100%
,
但在实现期间不会发生此现象。过度填充
Pblock
会导致在器件上其大小减小。这是获取器件顶层块的相对大小概览及其在器件上的分布方式的一项实用技巧。

顶层布局规划
顶层布局规划用于显示与
I/O
通信的块
(
绿线
)
。连接到
2
个
Pblock
的信号线将捆绑在一起。捆绑可根据共享信号线的数量更改大小和颜色。下图中显示了 2
种顶层布局规划。
“
Data Path Top Level Floorplan
”
(
数据路径顶层布局规划
)
显示了设计的顶层块之间数据流动的方式。每个块都仅与 2
个近邻通信。绿线显示与单个块通信的布局精良的
I/O
。

“
Control Path Floorplan
”
(
控制路径布局规划
)
显示的设计中的所有块都与中心块进行通信。最大的连接为中心块与最右下角的块之间的连接。中心块必须分布在整个设计周围,
才能与所有其他负载进行通信。
