Files
OpenLane/scripts/magic/lef.tcl
Donn 3bc6fcd3e1 Artifact Reorganization (#723)
The best thing to happen to OpenLane since OpenLane.

Variables related to output files: i.e. logs, results and reports, are becoming more uniform.

* Variables now point to folders
* Variables now called `{stage}_{type}s`
* All variables renamed to be tool-generic
   * magic, klayout, cvc and lvs all unified, renamed "finishing"
* Better flow runtime calculation
  * All step runtimes are now stored in a yaml file, which can easily be read by a human or parsed by a computer.
* Better step indexing
   * You have to increment the step index explicitly using `increment_index`.
   * Functions that take log arguments now require you to not use an indexed file, it's their responsibility to index them.
* Changed names for many logs to make more sense
* A plethora of files being moved and/or renamed
   * Yosys scripts were moved into their own folder
   * All references to OpenLANE that are not a published paper have been replaced with OpenLane
   * Copyright dates updated on some files
2021-11-23 19:40:15 +02:00

30 lines
796 B
Tcl
Executable File

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
}
}
load $::env(finishing_results)/$::env(DESIGN_NAME).mag -dereference
cellname filepath $::env(DESIGN_NAME) $::env(finishing_results)
# Write LEF
if { $::env(MAGIC_WRITE_FULL_LEF) } {
puts "\[INFO\]: Writing non-abstract (full) LEF"
lef write $::env(finishing_results)/$::env(DESIGN_NAME).lef
} else {
puts "\[INFO\]: Writing abstract LEF"
if { [info exists ::env(FP_PDN_CORE_RING)] && $::env(FP_PDN_CORE_RING) == 1 } {
set tolerance 0.3
lef write $::env(finishing_results)/$::env(DESIGN_NAME).lef -hide
} else {
lef write $::env(finishing_results)/$::env(DESIGN_NAME).lef -hide
}
}
puts "\[INFO\]: LEF Write Complete"