Routing Constraint Flow

About this task

To use routing constraints, follow this procedure:

Procedure

  1. Determine which nets and cells should be constrained.
  2. Run the Efinity software, adjusting your design for each iteration, until the nets meet timing.
  3. When the nets meet timing, use an .ini file to tell the software to save the placement and routing data to templates. (See Generate .rcf Template)
    1. For Trion devices, set --route_dump_constraint_file="on" to generate <project>.route2, which is later used in the constraint flow.
  4. Do not make any changes to the design and re-compile.
    The software creates these template files:
    • Placement template <project>.out.placeloc
    • Routing template <project>.rcf.template

    The routing traces file is <project>.troutingtraces for Titanium and Topaz, and <project>.route2 for Trion.

    Additionally, the process generates <project>.placer_keepout, which is later used by the placer in the constraint flow.

  5. Move these files out of the outflow directory; for example, move them up one level to the main project directory.
  6. Copy and paste the cells and nets you want to constrain from the two template files to your own files. You do not want to copy everything! (See Creating a Routing Constraint File and Creating a Location Assignment File)
  7. Add your new constraint files to an .ini file. (See Enabling Routing Constraints)
  8. Continue to change your design as needed. When you compile, the software will place and route the constrained logic and nets as defined in the constraint files.