| #!/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//home/lucah/Videos/AS2650/mag/user_project_wrapper.mag |
| 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_0_fill_pattern_${x}_$y |
| load caravel_0_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_0_fill_pattern_${x}_$y |
| load /home/lucah/Videos/AS2650/mag/user_project_wrapper.mag |
| cellname delete caravel_0_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 |