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