| #set olddir [pwd] |
| #cd $::env(RESULTS_DIR)/magic |
| |
| drc off |
| |
| lef read $::env(TECH_LEF) |
| |
| if { [info exist ::env(EXTRA_LEFS)] } { |
| set lefs_in $::env(EXTRA_LEFS) |
| foreach lef_file $lefs_in { |
| lef read $lef_file |
| } |
| } |
| |
| # Read def and load design |
| def read $::env(CURRENT_DEF) |
| |
| gds readonly true |
| gds rescale false |
| if { [info exist ::env(EXTRA_GDS_FILES)] } { |
| set gds_files_in $::env(EXTRA_GDS_FILES) |
| foreach gds_file $gds_files_in { |
| gds read $gds_file |
| } |
| } |
| |
| |
| load $::env(DESIGN_NAME) |
| select top cell |
| |
| # padding |
| |
| if { $::env(MAGIC_PAD) } { |
| puts "padding lefs" |
| # assuming scalegrid 1 2 |
| # use um |
| select top cell |
| box grow right [expr 100*($::env(PLACE_SITE_WIDTH))] |
| box grow left [expr 100*($::env(PLACE_SITE_WIDTH))] |
| box grow up [expr 100*($::env(PLACE_SITE_HEIGHT))] |
| box grow down [expr 100*($::env(PLACE_SITE_HEIGHT))] |
| property FIXED_BBOX [box values] |
| } |
| if { $::env(MAGIC_ZEROIZE_ORIGIN) } { |
| # assuming scalegrid 1 2 |
| # makes origin zero based on the selection |
| puts "zeroizing origin" |
| set bbox [box values] |
| set offset_x [lindex $bbox 0] |
| set offset_y [lindex $bbox 1] |
| move origin [expr {$offset_x/2}] [expr {$offset_y/2}] |
| puts "current box values: [box values]" |
| property FIXED_BBOX [box values] |
| } |
| |
| select top cell |
| |
| puts "saving box values: [box values]" |
| save $::env(magic_result_file_tag).mag |
| puts "saved box values: [box values]" |
| |
| # Write gds |
| cellname rename $::env(magic_result_file_tag) $::env(DESIGN_NAME) |
| if { $::env(MAGIC_GENERATE_GDS) } { |
| cif *hier write disable |
| #gds write $::env(magic_result_file_tag).gds |
| cd $::env(RUN_DIR)/results/magic/ |
| gds write $::env(DESIGN_NAME).gds |
| puts "GDS write complete" |
| cd $::env(OPENLANE_ROOT) |
| } |
| |
| if { $::env(MAGIC_GENERATE_LEF) } { |
| lef write $::env(magic_result_file_tag).lef -hide |
| lef write $::env(magic_result_file_tag).full.lef |
| puts "LEF write complete" |
| } |
| |
| puts "MAGIC TAPEOUT STEP DONE" |
| |
| #cd $olddir |
| exit 0 |