mirror of
https://github.com/TinyTapeout/tt-support-tools.git
synced 2026-11-03 04:36:09 +01:00
feat(tech/ihp-sg13g2): analog def files + magic init script
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (c) 2024-2026 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/main/tech/ihp-sg13g2/def/analog/tt_block_1x2_pgvdd_ana.def
|
||||
|
||||
# Change the settings below to match your design:
|
||||
# ------------------------------------------------
|
||||
set TOP_LEVEL_CELL tt_um_analog_example
|
||||
set TEMPLATE_FILE tt_block_1x2_pgvdd_ana.def
|
||||
set POWER_STRIPE_WIDTH 2.4um ;# The minimum width is 2.1um
|
||||
|
||||
# Power stripes: NET name, x position. You can add additional power stripes for each net, as needed.
|
||||
set POWER_STRIPES {
|
||||
VDPWR 1um
|
||||
VGND 4um
|
||||
}
|
||||
|
||||
# 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 308um
|
||||
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