Awesome
BSG IDF Tools
This is a place where utility scripts and other tools will live for using the IDEA Dimensionless Floorplan (IDF) format. Below are the currently available tools.
General Setup and Makefile.include
In the root of the repository is a Makefile.include
file. This file can be included in other Makefile flows
that need to use the IDF tools. Including Makefile.include
will give you access to the $ make tools
target. This
target will download and build any dependencies required to run the IDF tools. Right now, IDF tools depend on
pypy and pyparsing. If you would like to simply
build the tools without using another makefile, you can run:
$ make -f Makefile.include tools
The tools will be placed in the tools
directory in the root of the repository.
IDF to DEF Converter
IDF to DEF converter is a python script that will take an IDEA Dimensionless Floorplan (IDF)
file and convert it to a Design Exchange Format (DEF) file. In doing so, the script will also
re-dimensionalize the floorplan with process specific units. The IDF to DEF converter can be
found in the idf_to_def/
directory with the main script being idf_to_def.py
. The python
interpreter needs to have pyparsing installed and we
also suggest using the pypy python interpreter for speed (particularly
with file IO). You can use the $ make tools
target which is part of the Makefile.include
file in the root of this repository. For more information, please read the
General Setup and Makefile.include section.
As part of the re-dimensionalizing process, the IDF to DEF converter requires a technology file (.tf) from the PDK. This will give the script information about the metal stack and the unit tile which it will use to add dimension to the values before creating the DEF file.
By default, the lowest metal layer is assumed to have a preferred routing direction that is
vertical. If this is not true, you can use the -swap_metal
flag to change the preferred routing
direction of the first metal layer to be horizontal. The preferred routing direction for each
subsequent layer is assumed to flip.
The metal layer stack is determined by parsing the technology file (.tf), however it may be
that there are top-metal layers that you don't really want to consider as a normal routing
metal layer (e.g. RDL layers). If you would like to limit the top metal layer, use the
-max_metal_layer_num
flag and specify the number of the max metal layer (Note: the
bottom metal layer is index 1).
Once complete, the DEF files will be created in the current working directory the script was launched from. There will be 1 DEF file for each design in the design section of the IDF file, and the name of DEF file will be <design_name>.def.
Usage
usage: idf_to_def.py [-h] -idf file -tf file [-swap_metal] [-max_metal_layer num]
This script takes an IDF json floorplanning file and converts it to a DEF
file. IDF files are "dimensionless" therefore the user must provide the
technology file (.tf) for the target process.
optional arguments:
-h, --help show this help message and exit
-idf file Input IDF .json file
-tf file Input technology file (.tf)
-swap_metal Changes the starting orientation of the metal stack.
By default, the first metal layer is assumed to be
horizontal. Use this flag to set the first metal layer
to be vertical.
-max_metal_layer num Used to specify the max metal layer number