tapeout.log
diff --git a/mag/generate_fill.tcl b/mag/generate_fill.tcl new file mode 100644 index 0000000..bbb1e45 --- /dev/null +++ b/mag/generate_fill.tcl
@@ -0,0 +1,68 @@ +#!/bin/env wish +drc off +tech unlock * +snap internal +box values 0 0 0 0 +box size 700um 700um +set stepbox [box values] +set stepwidth [lindex $stepbox 2] +set stepheight [lindex $stepbox 3] + +set starttime [orig_clock format [orig_clock seconds] -format "%D %T"] +puts stdout "Started: $starttime" + +gds readonly true +gds rescale false +gds read ../gds/caravel +select top cell +expand + +set fullbox [box values] +set xmax [lindex $fullbox 2] +set xmin [lindex $fullbox 0] +set fullwidth [expr {$xmax - $xmin}] +set xtiles [expr {int(ceil(($fullwidth + 0.0) / $stepwidth))}] +set ymax [lindex $fullbox 3] +set ymin [lindex $fullbox 1] +set fullheight [expr {$ymax - $ymin}] +set ytiles [expr {int(ceil(($fullheight + 0.0) / $stepheight))}] +box size $stepwidth $stepheight +set xbase [lindex $fullbox 0] +set ybase [lindex $fullbox 1] + +for {set y 0} {$y < $ytiles} {incr y} { + for {set x 0} {$x < $xtiles} {incr x} { + set xlo [expr $xbase + $x * $stepwidth] + set ylo [expr $ybase + $y * $stepheight] + set xhi [expr $xlo + $stepwidth] + set yhi [expr $ylo + $stepheight] + if {$xhi > $fullwidth} {set xhi $fullwidth} + if {$yhi > $fullheight} {set yhi $fullheight} + box values $xlo $ylo $xhi $yhi + box grow c 1.6um + puts stdout "Flattening layout of tile x=$x y=$y. . . " + flush stdout + update idletasks + flatten -dobox -nolabels caravel_00020009_fill_pattern_${x}_$y + load caravel_00020009_fill_pattern_${x}_$y + property GDS_FILE "" + select top cell + erase comment + box values $xlo $ylo $xhi $yhi + paint comment + flush stdout + update idletasks + writeall force caravel_00020009_fill_pattern_${x}_$y + load caravel + cellname delete caravel_00020009_fill_pattern_${x}_$y + } +} +set ofile [open fill_gen_info.txt w] +puts $ofile "$stepwidth" +puts $ofile "$stepheight" +puts $ofile "$xtiles" +puts $ofile "$ytiles" +puts $ofile "$xbase" +puts $ofile "$ybase" +close $ofile +quit -noprompt
diff --git a/mag/generate_fill_dist.tcl b/mag/generate_fill_dist.tcl new file mode 100644 index 0000000..45299c9 --- /dev/null +++ b/mag/generate_fill_dist.tcl
@@ -0,0 +1,10 @@ +#!/bin/env wish +drc off +tech unlock * +snap internal +box values 0 0 0 0 +set filename [file root [lindex $argv $argc-1]] +load $filename +cif ostyle wafflefill(tiled) +gds write [file root $filename].gds +quit -noprompt
diff --git a/mag/generate_fill_final.tcl b/mag/generate_fill_final.tcl new file mode 100644 index 0000000..4491e79 --- /dev/null +++ b/mag/generate_fill_final.tcl
@@ -0,0 +1,44 @@ +#!/bin/env wish +drc off +tech unlock * +snap internal +box values 0 0 0 0 +set ifile [open fill_gen_info.txt r] +gets $ifile stepwidth +gets $ifile stepheight +gets $ifile xtiles +gets $ifile ytiles +gets $ifile xbase +gets $ifile ybase +close $ifile +cif ostyle wafflefill(tiled) +gds readonly true +gds rescale false +for {set y 0} {$y < $ytiles} {incr y} { + for {set x 0} {$x < $xtiles} {incr x} { + set xlo [expr $xbase + $x * $stepwidth] + set ylo [expr $ybase + $y * $stepheight] + set xhi [expr $xlo + $stepwidth] + set yhi [expr $ylo + $stepheight] + load caravel_00020009_fill_pattern_${x}_$y -quiet + box values $xlo $ylo $xhi $yhi + paint comment + property FIXED_BBOX "$xlo $ylo $xhi $yhi" + property GDS_FILE caravel_00020009_fill_pattern_${x}_${y}.gds + property GDS_START 0 + } +} +load caravel_00020009_fill_pattern -quiet +for {set y 0} {$y < $ytiles} {incr y} { + for {set x 0} {$x < $xtiles} {incr x} { + box values 0 0 0 0 + getcell caravel_00020009_fill_pattern_${x}_$y child 0 0 + } +} +puts stdout "Writing final GDS" +cif *hier write disable +cif *array write disable +gds write ../gds/caravel_00020009_fill_pattern.gds +set endtime [orig_clock format [orig_clock seconds] -format "%D %T"] +puts stdout "Ended: $endtime" +quit -noprompt
diff --git a/mag/user_project_wrapper.mag b/mag/user_project_wrapper.mag new file mode 100644 index 0000000..f3ba672 --- /dev/null +++ b/mag/user_project_wrapper.mag Binary files differ