Pad Frame Generator: Difference between revisions
| Line 12: | Line 12: | ||
First pull the docker image for the [[LibrePDK]] in order to make sure the image is up to date by running<syntaxhighlight lang="bash"> | First pull the docker image for the [[LibrePDK]] in order to make sure the image is up to date by running<syntaxhighlight lang="bash"> | ||
docker pull leviathanch/librepdk:latest | docker pull leviathanch/librepdk:latest | ||
</syntaxhighlight>Then you can feed your JSON config for the padframe you have configured to the pad frame generator script contained in the docker image | </syntaxhighlight>Then you can feed your JSON config for the padframe you have configured to the pad frame generator script contained in the docker image. | ||
An example for a paframe config can be found here [https://gitlab.libresilicon.com/generator-tools/librepdk/-/blob/master/tests/padframes/padframe_sg13g2_1v2.json?ref_type=heads padframe_sg13g2_1v2.json]<syntaxhighlight lang="bash">docker run -it --rm \ | An example for a paframe config can be found here [https://gitlab.libresilicon.com/generator-tools/librepdk/-/blob/master/tests/padframes/padframe_sg13g2_1v2.json?ref_type=heads padframe_sg13g2_1v2.json]<syntaxhighlight lang="bash">docker run -it --rm \ | ||
Revision as of 13:38, 31 August 2026

The Pad Frame Generator is part of the LibrePDK and provides the Pad Cell Generator functionality.
It's job is to assemble a ready to use pad frame harness, with ESD protection and power rail wire width properly adjusted for accommodating the intended current driving capacity as well as the intended voltage levels to be used.
Types of Pad Cells produced
Currently we support only simple IO Pad Cell, analog cells, and power cells, complex pad cells still are being in development.
The very special impedance compensated pad cell in the works (High-Speed Impedance-Compensated Pad Cell) is needed in order to hook up DDR4 RAM to our chips or build a PCIe device.
How to use
First pull the docker image for the LibrePDK in order to make sure the image is up to date by running
docker pull leviathanch/librepdk:latest
Then you can feed your JSON config for the padframe you have configured to the pad frame generator script contained in the docker image.
An example for a paframe config can be found here padframe_sg13g2_1v2.json
docker run -it --rm \
-e HOST_UID=$(id -u) -e HOST_GID=$(id -g) \
-v "$(pwd)":/workspace leviathanch/librepdk:latest \
librepdk_padframe_generator -i padframe_config.json \
-o my_padframe
After running the generator you should have a folder named my_padframe containing the LEF, DEF, Magic and all the other files you need for running a full synthesis flow of your designs.
Installation
Since the Pad Frame Generator is part of LibrePDK you can find the guide on how to install all the dependencies in the Installation section of the LibrePDK page
Benchmarks
Generating all those individual geometries takes a lot of time, an initial generation run can take up to half an hour due to the complexity and size of a pad frame and its pad cells, which is why we introduced component caching.
Initial run
The initial run for GF180A takes around 20 minutes, IHP and Skywater with even more layers can take up to 32 minutes
real 20m48.886s
user 20m46.885s
sys 0m3.880s
Further runs
During the second run that generation time is cut in half when assembling the padframe and writing it out.
real 8m43.972s
user 8m40.889s
sys 0m4.139s