blob: be70566eccd9d3f52d1180e9f3dafff98cc0acad [file] [log] [blame] [edit]
#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