blob: ca000864794127b1372b063f543ba7661eca3176 [file] [log] [blame] [edit]
if { [info exists ::env(TECH)] } {
tech load $::env(TECH)
}
gds read $::env(GDS_INPUT)
proc custom_drc_save_report {{cellname ""} {outfile ""}} {
if {$outfile == ""} {set outfile "drc.out"}
set fout [open $outfile w]
set oscale [cif scale out]
# magic::suspendall
if {$cellname == ""} {
select top cell
set cellname [cellname list self]
set origname ""
} else {
set origname [cellname list self]
puts stdout "loading $cellname\n"
flush stdout
load $cellname
select top cell
}
drc check
set count [drc list count]
puts $fout "$cellname count: $count"
puts $fout "----------------------------------------"
set drcresult [drc listall why]
foreach {errtype coordlist} $drcresult {
puts $fout $errtype
puts $fout "----------------------------------------"
foreach coord $coordlist {
set bllx [expr {$oscale * [lindex $coord 0]}]
set blly [expr {$oscale * [lindex $coord 1]}]
set burx [expr {$oscale * [lindex $coord 2]}]
set bury [expr {$oscale * [lindex $coord 3]}]
set coords [format " %.3f %.3f %.3f %.3f" $bllx $blly $burx $bury]
puts $fout "$coords"
}
puts $fout "----------------------------------------"
}
puts $fout ""
if {$origname != ""} {
load $origname
}
# magic::resumeall
close $fout
puts "done with $outfile\n"
#flush stdout
}
custom_drc_save_report $::env(DESIGN_NAME) $::env(REPORT_OUTPUT)