Pad Frame Generator

From LibreSilicon
Jump to navigation Jump to search
Example of a pad frame for SG13G2@1.2V

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

There are two options on how you can run the Pad Frame Generator on your machine, you can go the easy route and use a docker container or you can set up LibrePDK locally.

An example for a paframe config can be found here padframe_sg13g2_1v2.json

Docker

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.

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.

Run Locally

After seting up LibrePDK locally you can generate your pad frame by running

uv run \
    librepdk_padframe_generator -i padframe_config.json \
    -o my_padframe

Test cases

Proper ESD and switching behavior has been verified for all supported technologies in LibrePDK and reports for two of the most important test cases have been put onto our wiki page.

SG13G2 is important because it's a complex high frequency process with many metal layers plus there is an opportunity for cooperating in a tapeout.

GF180A only has 3 metal layers which best represents low tech nodes, so it was important to verify that we also can produce working pad frames for such a low metal count process.

Tests have been performed for the sample pad frame configurations for IHP's SG13G2 at 1.2V and the GF180A process at 3.3V (by Global Foundries).

Please look at LibrePDK Padframe SPICE Verification Report SG13G2@1.2V and LibrePDK Padframe SPICE Verification Report GF180A@3.3V for the simulation verification results and wave forms.

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