7.1 move_block

PDC command; moves a block from its original, locked placement by preserving the relative placement between the instances. You can move the block to the left, right, up, or down.

Important: Routing is preserved when you move the blocks for IGLOO, SmartFusion, Fusion and ProASCI3 families.

Argument

-inst_name instance_name
Specifies the name of the instance to move. If you do not know the name of the instance, run a Compile report or look at the names shown in the Block tab of the Libero SoC v11.8 Chip Planner User Guide.
-up y
Moves the block up the specified number of rows. The value must be a positive integer.
-down y
Moves the block down the specified number of rows. The value must be a positive integer.
-left x
Moves the block left the specified number of columns. The value must be a positive integer.
-right x
Moves the block right the specified number of columns. The value must be a positive integer.
-non_logic value
Specifies what to do with the non-logic part of the block if one exists.

The following table lists the acceptable values for this argument:

Table 7-1. Acceptable Values
ValueDescription
moveMoves the entire block.
keepMoves only the logic portion of the block (COMB/SEQ) and keeps the rest locked in the same previous location, if there is no conflict with other blocks.
unplaceMoves only the logic portion of the block (COMB/SEQ) and unplace the rest of it, such as I/Os and RAM.

Supported Families

The move_block PDC command supports the following families:

  • SmartFusion2
  • IGLOO2
  • RTG4
  • SmartFusion
  • IGLOO
  • ProASIC3
  • Fusion

Description

This command moves a block from its original, locked position to a new position.

You can move the entire block or just the logic part of it. You must use the -non_logic argument to specify what to do with the non-logic part of the block. You can find placement information about the block in the block report.

The -up, -down, -left, and -right arguments enable you to specify how to move the block from its original placement. You cannot rotate the block, but the relative placement of macros within the block will be preserved and the placement will be locked. However, routing will be lost. You can either use the ChipPlanner tool or run a block report to determine the location of the block.

The -non_logic argument enables you to move a block that includes non-logic instances, such as RAM or I/Os that are difficult to move. Once you have moved a part of a block, you can unplace the remaining parts of the block and then place them manually as necessary.

Important: Microchip recommends to move the block left or right by increments of 12, and move the blocks up and down by increments of three. If not, placement may fail because it violates clustering constraints.

Exceptions

Following are the exceptions:

  • You must import this PDC command as a source file, not as an auxiliary file.
  • You must use this PDC command if you want to preserve the relative placement and routing (if possible) of a block you are instantiating many times in your design as only one instance will be preserved by default. To preserve other instances, move them using PDC command.
The following example moves the entire block (instance name instA) 12 columns to the right and 3 rows up: move_block -inst_name instA -right 12 -up 3 -non_logic move.
The following example moves only the logic portion of the block and unplaces the rest by 24 columns to the right and 6 rows up: move_block -inst_name instA –right 24 –up 6 –non_logic unplace.