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