Locks or unlocks netlist, placement or routing of a design. The 'lock/unlock' will only applied on physically placed cells and routed nets
Syntax
lock_design [‑level <arg>] [‑unlock] [‑export] [‑quiet] [‑verbose] [<cell>]
Usage
Name | Description |
---|---|
[-level]
|
specify the locking and unlocking level; Valid values are logical, placement, and routing. Default: placement |
[-unlock]
|
Unlock cells, if cells are not specified, whole design is unlocked; '-level' parameter must be specified for unlocking. |
[-export]
|
mark that the constraints can be exported. |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
[<cell>]
|
Lock cells, if cells are not specified, whole design is locked. Notice only placed cells and routed nets will be locked. Default: * |
Categories
Description
This command is used in the Hierarchical Design Flows for Design Preservation and Partial Reconfiguration. Refer to the Vivado Design Suite User Guide: Hierarchical Design (UG905) for more information on these design flows, and the use of this command.
The lock_design
command is used to lock down the placement and/or routing of a design, or of the specified cell of a design. After reading in an Out-of-Context (OOC) design checkpoint using the read_checkpoint
command, the preservation level for the module must be defined.
This command sets the IS_LOC_FIXED, IS_BEL_FIXED, and IS_ROUTE_FIXED properties of the specified logic.
Arguments
lock_design [-level <arg>] [-unlock] [-export] [-quiet] [-verbose] [<cell>]
-level
<arg> - (Optional) Specify the level of the cell or design to preserve in the current design. As a default, the placement data is preserved. Accepted values are:
-
logical
- Preserves the logical design. Any placement or routing information is still used, but can be changed if the tools can achieve better results. -
placement
- Preserves the logical and placed design. Any routing information is still used, but can be changed if the tools can achieve better results. This is the default setting. -
routing
- Preserves the logical, placed and routed design. Internal routes are preserved, but interface nets are not. In order to preserve routing, the CONTAIN_ROUTING property must have been used on the Pblock during the OOC implementation. This ensures that there will be no routing conflicts when the OOC implementation is reused.
-unlock
- (Optional) Unlock cells. If cells are not specified, the whole design is unlocked. The -level
option must be specified for unlocking, just as it was for locking.
-level routing
locks the logical, placement, and routing data of the design. However -unlock -level routing
only unlocks the routing data. You must use -unlock -level logical
to unlock the routing, placement, and logical data of the design.
-export
- (Optional) Permit the export the placement and routing data as an XDC file. The constraints of a locked design or cell can be exported using the write_xdc
command. By default, the constraints of a locked design or cell cannot be exported.
-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.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.Examples
lock_design -level routing [get_cells usbEngine*]
lock_design -unlock -level routing [get_cells usbEngine*]
lock_design -unlock -level logical [get_cells usbEngine*]