PBLOCK是附加到Vivado中分配给Pblocks的单元格的只读属性
设计套房。
Pblock是一组单元格,以及一个或多个指定
Pblock所包含的设备资源。在平面规划过程中使用了Pblocks
将其放置到组相关逻辑中,并将其分配到目标设备的某个区域。请参阅
Vivado设计套件用户指南:设计分析和闭合技术(UG906)[参考22]
更多关于在平面规划设计中使用Pblocks的信息。
Pblocks是使用create_pblock Tcl命令创建的,并填充有单元格
使用addcells_to_pblock命令。以下代码定义了一个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 {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}
第一行创建Pblock,并为其命名。
第二行为Pblock分配逻辑单元。在这种情况下,指定的所有单元格
将分层模块分配给Pblock。分配给特定Pblock的单元格
被赋予PBLOCK属性。
后续命令resize_pblock通过指定
Pblock中包含的设备资源范围。一个pblock有四个网格
设备资源类型:SLICE/CLB、DSP48、RAMB18、RAMB36。逻辑不匹配
这些设备类型中的任何一种都可以放置在设备中的任何位置。仅约束块
在层次结构级别的RAM中,禁用(或根本不定义)其他Pblock网格。
有关详细信息,请参阅《Vivado设计套件Tcl命令参考指南》(UG835)[参考13]
关于上述特定的Tcl命令。
第二行为Pblock分配逻辑单元。在这种情况下,指定的所有单元格
将分层模块分配给Pblock。分配给特定Pblock的单元格
被赋予PBLOCK属性。
后续命令resize_pblock通过指定
Pblock中包含的设备资源范围。一个pblock有四个网格
设备资源类型:SLICE/CLB、DSP48、RAMB18、RAMB36。逻辑不匹配
这些设备类型中的任何一种都可以放置在设备中的任何位置。仅约束块
在层次结构级别的RAM中,禁用(或根本不定义)其他Pblock网格。
有关详细信息,请参阅《Vivado设计套件Tcl命令参考指南》(UG835)[参考13]
关于上述特定的Tcl命令。
Values
•
<NAME>
: The property value is the name of the Pblock that the cell is assigned to. The
Pblock name is defined when the Pblock is created with the
create_pblock
command.
Syntax
Verilog and VHDL Syntax
Not applicable
XDC Syntax
The Pblock can be defined in the XDC file, or directly in the design, with the Tcl command:
create_pblock
<pblock_name>
XDC Example
The following code defines a 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 {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}