Tapcell is a point tool physical cell insertion stadalone command line application. Core algorithm part is done in standard template C++17, while general business logic, configuration, scenario, LEF/DEF parsing is coded in Tcl and Tcl is compiled into exectuable.
Library rules currenly passed as command line arguments:
tapcell -lef $lef -def $def -outdef $odef -rule 120 -welltap $welltap_macro -endcap $endcap_macro
Tapcell takes list of LEF files (can be wild-carded list), DEF file with core definition and output DEF file. If output DEF file already exists (so it has floorplan and other sections), tapcell will update component section only. If output DEF file does not exist, new file will be created.
Popular physical design backend tools are often limited when it comes to processing complex placement constraint and hard macro configurations. To better faciliate combined flows, it is possible to re-generate ROWS definitions in DEF. To achieve that, use command line switch "-rows"
Usage is reported from command line
> tapcell -usage
tapcell [options] ...
options:
-version Print version
-tk Enable Tk
-lef value LEF files to load <>
-def value DEF files to load <>
-rows Update rows definition in resulted DEF
-outdef value Output DEF, update if exists <>
-script value Tcl file to execute <>
-rule value um checkerboard spacing distance <120>
-welltap value Welltap macro to insert <>
-endcap value Endcap macro to insert <>
-- Forcibly stop option processing
-help Print this message
-? Print this message
tapcell is using GCC C++17 standard and relies on gcc 8.3.0+ Please make sure it's enabled in your enviornment
module load gcc/8.3.0
We need SWIG higher than 4. It's built locally in /home/dmironov/bin/swig It's advised you don't rely on it and install your own. Makefiles have a check for SWIG version, should report 4+
swig -version
Please load innovus 18+ for placement checks
module load innovus
To learn how to setup and run "make test", please see the readme
git clone git@github.com:abk-openroad/pdn.git
make release
tapcell -version # Should work, print host, user, build time
make test
tapcell must be in the PATH and print version before running it
ssh -X dfm
git clone /home/dmironov/testdesign.git
cd testdesign/aes/
./run.sh