EDA Solutions logo

Pin placement methods for Tanner Digital Implementer

Latest update: 04/07/2022

Relevant product(s): L-Edit / Nitro / TDI
Operating systems: Windows/Linux
Versions affected: All
Relevant area(s): Design / P&R

Summary

The pin placement of your design’s floorplan generated for P&R can be customised in two methods:

  • By drawing the floorplan and the pins in L-Edit
  • By customising your P&R scripts to source pin locations and insert them during P&R

This article describes these two methods in detail.

Details

Pin placement by drawing in L-Edit

The pre-requisites to this method include:

  • Knowledge of the PDK’s special layer name or purpose(s) that are used for ports/pins (e.g. Metal1:pin)
  • Your OA design must have already been set up with the appropriate technology settings

The steps to follow this method are:

  1. Open the floorplan cell in L-Edit
  2. Select the appropriate layer from the Layer Palette
  3. Select the box port tool
  1. Begin drawing the ports on the floorplan
  1. Use the alignment tools if you wish to align the ports to edges
  1. Update the cell from the “Database” toolbar and ensure the pins are listed in the SDL Navigator

This concludes this method, you may proceed with the P&R once these steps have been completed.

Pin placement by scripting

For the scripting approach, you need to configure your project to a customised NRF flow. Please see this article on NRF customisation: https://www.eda-solutions.com/tn052/

Once NRF has been customised, please add this segment to the NRF scripts. Your script would be run in the floorplanning (2_floorplan.tcl) script after the netlist is read in.

For example this is the pin placement script. It defines a procedure to fix the pins, then sources the list:

#fix_pin_procedure metal_layer x-coord y-coord pin_name

fix_pin_procedure { pin_layer x_coord y_coord pin_name } {
   set_pin_constraints -pin $pin_name -x_location $x_coord -y_location $y_coord -layers "MET${pin_layer}"
}

source pin_list_enc.tcl

The pin_list_enc.tcl would have a call to fix_pin_procedure for of all the pins:

#fix_pin_procedure metal_layer x-coord y-coord pin_name

fix_pin_procedure 2 181.095 0.495 pin_test\[2\]

References

[1] Nitro-SoC Command Reference: https://docs.sw.siemens.com/en-US/product/876717818/doc/DC202010001.docs.nitro_cmd_ref.en_us?audience=external

[2] Nitro SoC User’s Manual: https://docs.sw.siemens.com/en-US/doc/876717818/DC202010001.docs.nitro_user.en_us/manualtitle