Skip to content

Latest commit

 

History

History
213 lines (169 loc) · 8.17 KB

File metadata and controls

213 lines (169 loc) · 8.17 KB

Tapcell

Tapcell and endcap insertion.

Commands

- Parameters in square brackets `[-param param]` are optional.
- Parameters without square brackets `-param2 param2` are required.

Add Tapcell/Endcap

This command inserts tapcells or endcaps.

The figures below show two examples of tapcell insertion. When only the -tapcell_master and -endcap_master masters are given, the tapcell placement is similar to Figure 1. When the remaining masters are give, the tapcell placement is similar to Figure 2.

Figure 1: Tapcell insertion representation Figure 2: Tapcell insertion around macro representation
tapcell 
    [-cnrcap_nwin_master cnrcap_nwin_master]
    [-cnrcap_nwout_master cnrcap_nwout_master]
    [-disallow_one_site_gaps]
    [-distance dist]
    [-endcap_cpp endcap_cpp]
    [-endcap_master endcap_master]
    [-endcap_prefix endcap_prefix]
    [-halo_width_x halo_x]
    [-halo_width_y halo_y]
    [-incnrcap_nwin_master incnrcap_nwin_master]
    [-incnrcap_nwout_master incnrcap_nwout_master]
    [-no_cell_at_top_bottom]
    [-row_min_width min_width]
    [-tap_nwin2_master tap_nwin2_master]
    [-tap_nwin3_master tap_nwin3_master]
    [-tap_nwintie_master tap_nwintie_master]
    [-tap_nwout2_master tap_nwout2_master]
    [-tap_nwout3_master tap_nwout3_master]
    [-tap_nwouttie_master tap_nwouttie_master]
    [-tap_prefix tap_prefix]
    [-tapcell_master tapcell_master]
    [-tbtie_cpp tbtie_cpp]

Options

Switch Name Description
[-cnrcap_nwin_master] Macro cell placed at the corners the core area according the row orientation.
[-cnrcap_nwout_master] Macro cell placed at the corners the core area according the row orientation.
[-disallow_one_site_gaps] Option is deprecated.
[-distance] Distance (in microns) between each tapcell in the checkerboard.
[-endcap_cpp] Option is deprecated.
[-endcap_master] Master used as an endcap.
[-endcap_prefix] Prefix for the endcaps instances. The default value is PHY_.
[-halo_width_x] Horizontal halo size (in microns) around macros during cut rows.
[-halo_width_y] Vertical halo size (in microns) around macros during cut rows.
[-incnrcap_nwin_master] Master cell placed at the corners of macros, according the row orientation.
[-incnrcap_nwout_master] Master cell placed at the corners of macros, according the row orientation.
[-no_cell_at_top_bottom] Option is deprecated.
[-row_min_width] Minimum width (in microns) that a row must have during cut rows.
[-tap_nwin2_master] Master cell placed at the top and bottom of macros and the core area according the row orientation. This master should be smaller than tap_nwintie_master
[-tap_nwin3_master] Master cell placed at the top and bottom of macros and the core area according the row orientation. This master should be smaller than tap_nwin2_master.
[-tap_nwintie_master] Master cell placed at the top and bottom of macros and the core area according the row orientation.
[-tap_nwout2_master] Master cell placed at the top and bottom of macros and the core area according the row orientation. This master should be smaller than tap_nwouttie_master.
[-tap_nwout3_master] Master cell placed at the top and bottom of macros and the core area according the row orientation. This master should be smaller than tap_nwout2_master.
[-tap_nwouttie_master] Master cell placed at the top and bottom of macros and the core area according the row orientation.
[-tap_prefix] Prefix for the tapcell instances. The default value is TAP_.
[-tapcell_master] Master used as a tapcell.
[-tbtie_cpp] Option is deprecated.

Cut Rows

This command cuts rows.

cut_rows 
    [-endcap_master endcap_master]
    [-halo_width_x halo_x]
    [-halo_width_y halo_y]
    [-row_min_width min_width]

Options

Switch Name Description
[-endcap_master] Master used as an endcap.
[-halo_width_x] Horizontal halo size (in microns) around macros during cut rows.
[-halo_width_y] Vertical halo size (in microns) around macros during cut rows.
[-row_min_width] Minimum width (in microns) that a row must have during cut rows.

Only adding boundary/endcap cells

Place endcaps into the design, the naming for the arguments to place_endcaps is based on the LEF58 CLASS specification foe endcaps.

place_endcaps
    [-bottom_edge masters]
    [-corner master]
    [-edge_corner master]
    [-endcap masters]
    [-endcap_horizontal masters]
    [-endcap_vertical master]
    [-left_bottom_corner master]
    [-left_bottom_edge master]
    [-left_edge master]
    [-left_top_corner master]
    [-left_top_edge master]
    [-right_bottom_corner master]
    [-right_bottom_edge master]
    [-right_edge master]
    [-right_top_corner master]
    [-right_top_edge master]
    [-prefix prefix]
    [-top_edge masters]

Options

Switch Name Description
[-bottom_edge] List of masters for the bottom row endcaps. (overrides -endcap_horizontal).
[-corner] Master for the corner cells on the outer corners.
[-edge_corner] Master for the corner cells on the inner corners.
[-endcap] Master used as an endcap.
[-endcap_horizontal] List of masters for the top and bottom row endcaps. (overrides -endcap).
[-endcap_vertical] Master for the left and right row endcaps. (overrides -endcap).
[-left_bottom_corner] Master for the corner cells on the outer bottom left corner. (overrides -corner).
[-left_bottom_edge] Master for the corner cells on the inner bottom left corner. (overrides -edge_corner).
[-left_edge] Master for the left row endcaps. (overrides -endcap_vertical).
[-left_top_corner] Master for the corner cells on the outer top left corner. (overrides -corner).
[-left_top_edge] Master for the corner cells on the inner top left corner. (overrides -edge_corner).
[-right_bottom_corner] Master for the corner cells on the outer bottom right corner. (overrides -corner).
[-right_bottom_edge] Master for the corner cells on the inner bottom right corner. (overrides -edge_corner).
[-right_edge] Master for the right row endcaps. (overrides -endcap_vertical).
[-right_top_corner] Master for the corner cells on the outer top right corner. (overrides -corner).
[-right_top_edge] Master for the corner cells on the inner top right corner. (overrides -edge_corner).
[-prefix] Prefix to use for the boundary cells. The default value is PHY_.
[-top_edge] List of masters for the top row endcaps. (overrides -endcap_horizontal).

Only adding Tapcells

This command is used for tapcell placement only.

place_tapcells
    -distance dist
    -master tapcell_master

Options

Switch Name Description
-distance Distance between tapcells.
-master Master to use for the tapcells.

Remove Tapcells/Endcaps

This command is used for removing tapcells or endcaps based on their prefix.

tapcell_ripup
    [-endcap_prefix endcap_prefix]
    [-tap_prefix tap_prefix]

Options

Switch Name Description
[-endcap_prefix] Remove endcaps with said prefix. The default value is PHY_.
[-tap_prefix] Remove tapcells with said prefix. The default value is TAP_.

Example scripts

You can find script examples for both 45nm and 14nm in ./etc/scripts

./etc/scripts/example_14nm.tcl
./etc/scripts/example_45nm.tcl

Regression tests

There are a set of regression tests in ./test. For more information, refer to this section.

Simply run the following script:

./test/regression

Limitations

FAQs

Check out GitHub discussion about this tool.

License

BSD 3-Clause License. See LICENSE file.