mirror of
https://github.com/TinyTapeout/tt-support-tools.git
synced 2026-11-03 04:36:09 +01:00
feat(analog): magic script to create a new analog project
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (c) 2024 Tiny Tapeout LTD
|
||||
# Author: Uri Shaked
|
||||
# Description: This script initializes a new Magic project for an analog design on Tiny Tapeout.
|
||||
|
||||
# Important: before running this script, download the the .def file from
|
||||
# https://raw.githubusercontent.com/TinyTapeout/tt-support-tools/tt08/def/analog/tt_analog_1x2.def
|
||||
|
||||
# Change the settings below to match your design:
|
||||
# ------------------------------------------------
|
||||
set TOP_LEVEL_CELL tt_um_analog_example
|
||||
set TEMPLATE_FILE tt_analog_1x2.def
|
||||
set POWER_STRIPE_WIDTH 2um ;# The minimum width is 1.2um
|
||||
|
||||
# Power stripes: NET name, x position. You can add additional power stripes for each net, as needed.
|
||||
set POWER_STRIPES {
|
||||
VDPWR 1um
|
||||
VGND 4um
|
||||
}
|
||||
# If you use the 3v3 template, uncomment the line below:
|
||||
#lappend POWER_STRIPES VAPWR 7um
|
||||
|
||||
# Read in the pin positions
|
||||
# -------------------------
|
||||
def read $TEMPLATE_FILE
|
||||
cellname rename tt_um_template $TOP_LEVEL_CELL
|
||||
|
||||
# Draw the power stripes
|
||||
# --------------------------------
|
||||
proc draw_power_stripe {name x} {
|
||||
global POWER_STRIPE_WIDTH
|
||||
box $x 5um $x 220.76um
|
||||
box width $POWER_STRIPE_WIDTH
|
||||
paint met4
|
||||
label $name FreeSans 0.25u -met4
|
||||
port make
|
||||
port use [expr {$name eq "VGND" ? "ground" : "power"}]
|
||||
port class bidirectional
|
||||
port connections n s e w
|
||||
}
|
||||
|
||||
# You can extra power stripes, as you need.
|
||||
foreach {name x} $POWER_STRIPES {
|
||||
puts "Drawing power stripe $name at $x"
|
||||
draw_power_stripe $name $x
|
||||
}
|
||||
|
||||
# Save the layout and export GDS/LEF
|
||||
# ----------------------------------
|
||||
save ${TOP_LEVEL_CELL}.mag
|
||||
file mkdir gds
|
||||
gds write gds/${TOP_LEVEL_CELL}.gds
|
||||
file mkdir lef
|
||||
lef write lef/${TOP_LEVEL_CELL}.lef -hide -pinonly
|
||||
Reference in New Issue
Block a user