<@U018LA3KZCJ> <@U016EM8L91B> Even though there is...
# openroad
d
@Matt Liberty @Tim Edwards Even though there is no user defined obstructions(OBS) command in block level config file, I see block level LEF generated has OBS definition for all the free space from li1 => met4. Due to met-4 OBS definition in lef, I see vertical PDN (met4) rails not passing through block. For better PDN network at top-level, I am looking for way to avoid OBS definition for met-4 in LEF file. Any suggestion.?
m
how are you generating the LEF - OR or Magic?
t
Magic should only place blockages where there is actual metal. However, if using the
lef write -hide
option, then the blockages will cover the entire area of the macro, so if it is expected that routes should be able to pass through the macro area between blockages, then it would be necessary either to use
lef write
without the
-hide
option, or else draw specific pass-through pins (and mark them as pass-through). There are a few other options to
lef write
that might work, as well.
d
from Openlane generated config.tcl, i see default mode is set ::env(MAGIC_GENERATE_LEF) {1} & set ::env(MAGIC_WRITE_FULL_LEF) {0}, in magic/lef.tcl I see lef is written out with -hide option # Write LEF if { $::env(MAGIC_WRITE_FULL_LEF) } { puts "\[INFO\]: Writing non-abstract (full) LEF" lef write $::env(signoff_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(signoff_results)/$::env(DESIGN_NAME).lef -hide } else { lef write $::env(signoff_results)/$::env(DESIGN_NAME).lef -hide } } @Tim Edwards Let me try with your suggestion set ::env(MAGIC_WRITE_FULL_LEF) {1}