Close

Pads generator

A project log for Shared Silicon

Silicon proven way to reduce the cost of integrated circuit manufacturing by collaboration

shaosSHAOS 10/04/2016 at 19:4910 Comments

This simple straightforward script generates 40 pads (each 100x100um) and power rings (VDD & VSS) for 2.2x2.2mm CMOS 0.5um design (silicon proven in 2015):

# Generating DIP40 pads and VDD/VSS rings for SCN3M 0.5um process
# This script is PUBLIC DOMAIN - use it on your own risk!
rm -f pad.* pads.*
magic  -T SCN3M.35 -dnull -noconsole << EOF
drc off
box position 0 0
box size 100um 100um
paint pad
label IO
save pad
cif
erase
cellname rename pad pads
# Pads
box position 2085um  980um
getcell pad
box position 2085um 1130um
getcell pad
box position 2085um 1280um
getcell pad
box position 2085um 1430um
getcell pad
box position 2085um 1580um
getcell pad
box position 2085um 1730um
getcell pad
box position 1730um 2085um
getcell pad
box position 1580um 2085um
getcell pad
box position 1430um 2085um
getcell pad
box position 1280um 2085um
getcell pad
box position 1130um 2085um
getcell pad
box position  980um 2085um
getcell pad
box position  830um 2085um
getcell pad
box position  680um 2085um
getcell pad
box position  530um 2085um
getcell pad
box position  380um 2085um
getcell pad
box position   25um 1730um
getcell pad
box position   25um 1580um
getcell pad
box position   25um 1430um
getcell pad
box position   25um 1280um
getcell pad
box position   25um 1130um
getcell pad
box position   25um  980um
getcell pad
box position   25um  830um
getcell pad
box position   25um  680um
getcell pad
box position   25um  530um
getcell pad
box position   25um  380um
getcell pad
box position  380um   25um
getcell pad
box position  530um   25um
getcell pad
box position  680um   25um
getcell pad
box position  830um   25um
getcell pad
box position  980um   25um
getcell pad
box position 1130um   25um
getcell pad
box position 1280um   25um
getcell pad
box position 1430um   25um
getcell pad
box position 1580um   25um
getcell pad
box position 1730um   25um
getcell pad
box position 2085um  380um
getcell pad
box position 2085um  530um
getcell pad
box position 2085um  680um
getcell pad
box position 2085um  830um
getcell pad
# Corner markers
box size 50um 50um
box position 0 0
paint psc
box position 2160um 0
paint psc
box position 2160um 2160um
paint psc
box position 0 2160um
paint psc
# Ground ring
box position 175um 175um
box size 1860um 1860um
paint m1
box position 180um 180um
box size 1850um 1850um
paint psc
box position 195um 195um
box size 1820um 1820um
erase
paint m1
box position 178um 178um
box size 20um 20um
erase
paint m1
box position 180um 180um
box size 15um 15um
paint psc
box position 2012um 2012um
box size 20um 20um
erase
paint m1
box position 2015um 2015um
box size 15um 15um
paint psc
paint m1
box position 178um 2012um
box size 20um 20um
erase
paint m1
box position 180um 2015um
box size 15um 15um
paint psc
paint m1
box position 2012um 178um
box size 20um 20um
erase
paint m1
box position 2015um 180um
box size 15um 15um
paint psc
box position 200um 200um
box size 1810um 1810um
erase
# Power ring
box position 210um 210um
box size 1790um 1790um
paint nw
paint m1
box position 215um 215um
box size 1780um 1780um
paint nsc
box position 225um 225um
box size 1760um 1760um
erase
paint nw
paint m1
box position 213um 213um
box size 15um 15um
erase
paint nw
paint m1
box position 215um 215um
box size 10um 10um
paint nsc
box position 1982um 1982um
box size 15um 15um
erase
paint nw
paint m1
box position 1985um 1985um
box size 10um 10um
paint nsc
box position 213um 1982um
box size 15um 15um
erase
paint nw
paint m1
box position 215um 1985um
box size 10um 10um
paint nsc
box position 1982um 213um
box size 15um 15um
erase
paint nw
paint m1
box position 1985um 215um
box size 10um 10um
paint nsc
box position 230um 230um
box size 1750um 1750um
erase
save pads
cif
quit -noprompt
EOF

Result is pads.mag file (and pads.cif just in case) that looks like this:

Discussions

Yann Guidon / YGDES wrote 10/04/2016 at 23:30 point

hmmmm I'm dreaming about a SVG to CIF converter.... 

  Are you sure? yes | no

SHAOS wrote 10/04/2016 at 23:47 point

but what will prepare that SVG? ;)

  Are you sure? yes | no

Yann Guidon / YGDES wrote 10/05/2016 at 00:07 point

A JS editor of course :-P

  Are you sure? yes | no

SHAOS wrote 10/05/2016 at 00:13 point

JS editor can write directly into CIF ;)

  Are you sure? yes | no

Yann Guidon / YGDES wrote 10/04/2016 at 22:19 point

hmmmm can you script that script more so it doesn't need absolute coordinates ?
I mean, we invented computers to run loops :-D

  Are you sure? yes | no

SHAOS wrote 10/04/2016 at 22:32 point

I know, I know :)
I needed something quick&dirty to draw pads - I did this and now it's "silicon proven", so technically speaking I can NOT rewrite it without breaking "siliconproveness" ;)

  Are you sure? yes | no

Yann Guidon / YGDES wrote 10/04/2016 at 23:22 point

i see ;-)

but i'm an obsessive scripter :-P

What about writing a script that generates exactly this one, but can be parameterised ?

  Are you sure? yes | no

SHAOS wrote 10/04/2016 at 23:45 point

Magic has TCL inside, so ideally it has to be TCL script that gets number of pads, area etc as arguments

  Are you sure? yes | no

Yann Guidon / YGDES wrote 10/05/2016 at 00:08 point

ah...
That's less sexy and more "conventional", as in "it can't run in your browser and can be locked in proprietary software" yadayadayyada...

  Are you sure? yes | no

SHAOS wrote 10/05/2016 at 00:15 point

Magic will never run in your browser :)
P.S. it's open source BTW ;)

  Are you sure? yes | no