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
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
hmmmm I'm dreaming about a SVG to CIF converter....
Are you sure? yes | no
but what will prepare that SVG? ;)
Are you sure? yes | no
A JS editor of course :-P
Are you sure? yes | no
JS editor can write directly into CIF ;)
Are you sure? yes | no
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
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
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
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
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
Magic will never run in your browser :)
P.S. it's open source BTW ;)
Are you sure? yes | no