All Tiny Tapeout shuttles run on the Sky130A PDK. Make sure you simulate with Sky130A.
The analog pins are labeled ua[0]
through ua[5]
(ua stands for “user analog”). The number of pins that will actually be connected to pads depends on the number of analog pins that you defined in the pinout
section in info.yaml (and paid for).
For example, if you purchased two analog pins, only ua[0]
and ua[1]
will be connected to the pads. The remaining pins will not be connected.
The path between the analog pads and your project (the ua pins) is expected to have the following properties:
You are not allowed to use the metal 5 layer in your design, as it’s used by Tiny Tapeout’s power grid.
The pin locations must match one of the Tiny Tapeout templates. The templates are available in DEF format, which is compatible with the Magic VLSI layout tool.
There are several templates available, each for a different number of tiles. The templates include all the eight analog pins, but only the pins that you paid for will be connected to the pads. In addition, the templates also include all the standard digital pins.
Most analog designs should fit into the smallest template, tt_analog_1x2.def, which is 160x225um in size.
Important: Do not leave any floating digital output pins in your design. Connect any unused uo_out
, uio_out
and uio_oe
pins to GND.
The following power pins are available:
Power pins need to be vertical stripes on met4 layer and must adhere to the following rules:
tt_analog_*_3v3.def
templates and set uses_3v3: true
in info.yaml
.Projects with analog pins must be two tiles high. This means that the minimum price for the area of the project is $100 (each tile is $50).
In addition, there is a cost for each analog pin attributable to a given customer (rather than project) on a given shuttle. The price for analog pins is $40 per pin for the first 4 pins you need on the Tiny Tapeout shuttle, and $100 per pin for additional pins.
Example:
This price is only for including the design in the shuttle, and does not include the cost of the ASIC, PCB, or shipping.
These instructions assume you are using the Magic VLSI tool, but you can do the same with Klayout or proprietary tools.
Make sure the version of Magic matches the PDK.
Start your design from the tt08-analog-template repository. Click on the green “Use this template” on top of the page, and select “Create a new repository”.
Tiny Tapeout provides templates for custom GDS submissions. These templates include all the required pins on the metal 4 layer. Do not change the pin sizes or positions. Download one of the analog pin templates as a starting point for your design.
The following templates are currently available:
tt_analog_1x2.def
- 1x2 tiles, digital power supply (1.8V)tt_analog_2x2.def
- 2x2 tiles, digital power supply (1.8V)tt_analog_1x2_3v3.def
- 1x2 tiles, both 1.8V (VDPWR) and 3.3V (VAPWR) power suppliestt_analog_2x2_3v3.def
- 2x2 tiles, both 1.8V (VDPWR) and 3.3V (VAPWR) power suppliesIt’s important that you are consistent with your naming. The name of the project must match the final GDS and LEF files.
Decide on a name for your module (top cell). The top level module name must start with ’tt_um_’, and it must be unique on the shuttle, so we suggest including your github username, e.g. tt_um_username_amazing_adc.
Edit the info.yaml
files and the the following properties:
top_module
- the name of your top moduletiles
- should match your selected template size (1x2 or 2x2)analog_pins
- the number of analog pins you usepinout
- describe the function of each digital / analog pin you use, leave the others empty ("")This file is used to ‘blackbox’ your design when we integrate it into the Tiny Tapeout shuttle.
Edit src/project.v and replace tt_um_example
with the actual name of your top module.
Edit docs/info.md and add a description of your project.
Use your preferred analog flow to design, simulate, layout, extract, LVS and post layout simulate.
A quick way to get started is to use this tcl script to draw and label the power ports.
source magic_init_project.tcl
Save the resulting GDS file in the gds
folder, and the LEF file in the lef
folder. The file names must match your top_module
property (e.g. gds/tt_um_example.gds
).
If you use Magic to create your design, make sure to export the LEF file with the “-pinonly” option, e.g.:
lef write ../lef/tt_um_project_name.lef -pinonly
Export the GDS by running:
gds write ../gds/tt_um_project_name.gds
If you’re using Magic - do not flatten the .mag file, leave it hierarchical to avoid weird DRC issues.
Go to app.tinytapeout.com to submit your design.