Skip to content
/ padring Public
forked from ax3ghazy/padring

A padring generator for ASICs

License

Notifications You must be signed in to change notification settings

donn/padring

This branch is 1 commit ahead of ax3ghazy/padring:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b2a64ab · Jul 31, 2021

History

32 Commits
Apr 19, 2019
Jul 31, 2021
Apr 19, 2019
Dec 18, 2019
Jul 31, 2021
Dec 18, 2019
Apr 19, 2019
Apr 10, 2019
Dec 18, 2019
Dec 18, 2019
Jul 13, 2020
Dec 18, 2019
Apr 10, 2019

Repository files navigation

PADRING - a padring generator for ASICs

Build Status

This tool makes padrings for ASICs using a LEF file and a placement/configuration file. The padrings can be output in GDS2, DEF and/or SVG format. Check out the example in the example directory.

Commandline options

  • -h : show help.
  • -L, --lef <filename> : mandatory, filename of LEF file that describes the ASIC cells.
  • --svg <filename> : optional, filename of SVG to generate.
  • --def <filename> : optional, filename of DEF to generate.
  • --filler <prefix> : optional, filler cell prefix string to use when searching for filler cells.
  • -o, --output <filename> : optional, filename of GDS2 to generate.

The filler cells are auto-detected by the padring program. Should this process fail, the user can add an explicit prefix which will be used to find the filler cells.

Multiple LEF files can be specified. During loading, existing cells with the same name will be overwritten.

Configuration file

The following commands are available:

DESIGN <name> ;

  • Sets the name of the design in the GDS2/DEF output file.
  • Optional
  • Default = PADRING

GRID <grid size> ;

  • Sets the placement grid size in microns.
  • Optional
  • Default = 1 micron

AREA <width> <height> ;

  • Defines the chip size in microns.
  • Mandatory

CORNER <instance_name> <location> <cell_name> ;

  • instance_name: name of the corner instance, i.e. corner_1.
  • location: location of the corner, one of NE,SE,NW,SW.
  • cell_name: name of corner cell from the cell library.

PAD <instance_name> <location> [FLIP] <cell_name> ;

  • instance_name: name of the pad instance, i.e. gpio_1.
  • location: location of the pad, one of N,S,E,W.
  • optional 'FLIP': flips cell in Y axis.
  • cell_name: name of pad cell from the cell library.

SPACE <space> ;

  • space: the space between the preceeding and succeeding cell, in microns.

Space between the I/O pads is distributed evenly unless a specific space between two pads is specified directly using the SPACE command.

Building

Dependencies:

  • CMAKE 3.10 or better.
  • Ninja build.
  • C++17 capable compiler.
  • Optionally: Doxygen.

Building:

  • Run bootstrap.sh to initialize the CMAKE/Ninja build system.
  • Run ninja from the build directory.

About

A padring generator for ASICs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.9%
  • CMake 1.5%
  • Other 0.6%