I'm trying to re-extract a design in sky130 using ...
# openroad
m
I'm trying to re-extract a design in sky130 using OpenRCX. I'm roughly following this example for my design: https://github.com/The-OpenROAD-Project/OpenRCX/blob/master/calibration/script/ext_patterns.tcl However, I'm using this rule file:
Copy code
/OpenLane/pdks/sky130B/libs.tech/openlane/rules.openrcx.sky130B.nom.spef_extractor
But I get this as the result:
Copy code
>>> extract_parasitics -ext_model_file /OpenLane/pdks/sky130B/libs.tech/openlane/rules.openrcx.sky130B.nom.spef_extractor \
...       -cc_model 12 -max_res 0 -context_depth 10 \
...       -coupling_threshold 0.1
[INFO RCX-0008] extracting parasitics of user_project_wrapper ...
[INFO RCX-0435] Reading extraction model file rules.openrcx.sky130A.nom.spef_extractor ...
[ERROR RCX-0487] No RC model read from the extraction model! Ensure the right extRules file is used!
[ERROR GUI-0070] RCX-0487
What am I doing wrong?
@Tim Edwards Do you know the answer to this?
t
I generally use the scripts found at https://gitlab.com/efabless/skywater/openrcx-calibration.calibre. (edited for use with magic or spef_extractor). The command you gave is found in
scripts/extract_patterns.tcl
. My guess is that maybe it's looking for the
patterns.def
file to be read in? What commands did you run before
extract_parasitics
?
Generally, I trust the rules derived from magic over the rules derived from spef_extractor. The spef_extractor is quite primitive and misses a lot of coupling cases.
m
I'm running this on my old MPW2 design so I've read in a DEF file already but not their example. I think I have a timing violation in my own scan chain and wanted to use updated extraction values.
Ahh, I figured it out. There's actually another script that sets the R and C values of layers and vias. I thought that was in the model itself. And, I think the example was only setting the values for vias, not the actual metal layers.
And it's showing a hold problem in the nominal corner even with the too relaxed SRAM lib models
m
Some is odd with the command using rules.openrcx.sky130B.nom.spef_extractor but the error saying rules.openrcx.sky130A.nom.spef_extractor