create_pblock - 2023.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
UG835
Release Date
2023-05-16
Version
2023.1 English

Create a new Pblock

Syntax

create_pblock [‑quiet] [‑verbose] <name>

Returns

New pblock object.

Usage

Name Description
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
<name> Name of the new pblock

Categories

XDC, Floorplan

Description

Defines a Pblock to allow you to add logic instances for floorplanning purposes.

You can add logic elements to the Pblock using the add_cells_to_pblock command, and then place the Pblocks onto the fabric of the FPGA using the resize_pblocks command. The resize_pblock command can also be used to manually move and resize Pblocks.

You can nest one Pblock inside another for hierarchical floorplanning using the set_property command to define the PARENT property as shown in the second example.

Arguments

-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.

<name> - (Required) The name of the Pblock to be created.

Examples

The following example creates a Pblock called pb_cpuEngine, and then adds only the leaf-cells found in the cpuEngine module, clearing placement constraints for placed instances:

create_pblock pb_cpuEngine
add_cells_to_pblock pb_cpuEngine [get_cells cpuEngine/*] \
   -add_primitives -clear_locs

The following example shows nesting Pblocks, by creating Pblocks called pb_usbEngine0 and pb_usbEngine1, and a third Pblock called pb_usbTop. Then pb_usbEngine0 and pb_usbEngine1 are nested inside pb_usbTop using the set_property command:

create_pblock pb_usbEngine0
create_pblock pb_usbEngine1
create_pblock pb_usbTop
set_property PARENT pb_usbTop [get_pblocks {pb_usbEngine?}]