Closed d-m-bailey closed 1 year ago
Deeper problem.
magicrc_file_path = parent_directory.parent.parent / 'tech-files' / 'sky130A.magicrc'
sky130A.magicrc
is hardcoded in checks/drc_checks/magic/magic_gds_drc_check.py
However, sky130A.magicrc
has
tech load $PDKPATH/libs.tech/magic/sky130A.tech
# load device generator
source $PDKPATH/libs.tech/magic/sky130A.tcl
# load bind keys (optional)
# source $PDKPATH/libs.tech/magic/sky130A-BindKeys
These sky130A
files do not exist in the sky130B
of gf180mcuD
pdks.
There is a tech-files/sky130B.tech
file but it is a symbolic link to sky130A.tech
.
This is probably also a problem for gf180mcu
.
This could be handled with something like
if {[tech name] != "sky130A"} {exit 1}
in the script.
But ultimately the problem is that there is no sky130A.tech in the sky130B technology, and there shouldn't be. The error is something like PDK is set to "sky130B" but somewhere "sky130A" has been hard-coded.
Exactly. If the technology could not be read, I think the scripts would expect magic to fail, not generate a result that says no drc errors. Is that something that could easily be added to the batch version (-dnull -noc
) of magic?
@d-m-bailey : utils/main.c
line 1144 would be where to put it, coupled with the code in the same file at line 608---Calling magic in batch mode sets Tcl variable "batch_mode" which can be checked in order to do things specifically in batch mode only.
@RTimothyEdwards you fixed the hardcoded file name in #229 but it was never merged.
Merged
Missing tech file
sky130A.tech
insky130B
pdk.0 DRC errors reported.