I'm not even sure what tool you're supposed to use...
# openlane
t
I'm not even sure what tool you're supposed to use for that ... magic doesn't seem to know anything about SPEF. The pic above suggests "DEF2SPEF" but I can find nothing like that.
n
I think this is one of the limitation as of now..just remembered this mention from Prof. @mshalan’s openlane introductory video.
t
Yeah, but I would assume there is already tools to do that and they're just not plugged into the flow yet. Pretty sure I saw a talk about the raven and they were talking abot post-route STA and SPEFs ...
n
Thanks for the info @tnt..I could generate spef outside openLane using def2spef utility..
t
There is a def2spef ? Where did you find that ?
n
t
Mmm, yeah, looking at it, it's not particularely inspiring tbh, seems a lot of hand parsing/generation rather than rely on good/known LEF/DEF parsers is not a great first sign.
n
True @tnt
m
@Nickson Jose Consider this instead https://github.com/Cloud-V/SPEF_EXTRACTOR. This is the one used by OpenLane. Both developed by my students.
n
Thanks @mshalan
Hi @mshalan..which .lef file would be the input to this extractor? tech lef or merged.lef. While using the .tlef file I'm getting the attached error.
a
@Nickson Jose: It is complaining that it can't find the cell, so use the
merged.lef
which contains both tech information and the cells.
n
@Ahmed Ghazy..It worked..thanks!
Hi @Ahmed Ghazy @mshalan..i'm running post routing STA in openSTA using the SPEF generated from above extractor..im getting below 2 warnings while executing "read_spef" command..also there's no effect of parasitics showing up in the slack calculation (i.e., with or w/o SPEF the slack value is same)
m
@Nickson Jose Can you share the SPEF file?
n
Hi @mshalan..I have compressed the main file..(it was around 30 MB)
Hi @mshalan..could you make anything out of the SPEF file?
m
Hi @Nickson Jose, changes have been committed to fix the extractor. Please try again.
n
Ok..will try and let you know
Hi @mshalan..im caught in a situation here..
My objective is to compare the slack values pre and post layout..
For pre-layout STA, im using synthesized netlist for analysis and for post Im using pre_route netlist + the generated SPEF file..but my post layout setup slack is greater than pre layout one..which doesn't make sense..am I missing something here?
t
The openlane pre-layout STA uses estimates for the load capacitance, so those can be overestimated.
n
@tnt ok so that justifies it.
@tnt so if i need to do a fruitful pre and post STA analysis..what modifications do I need to do?
t
Not sure what you mean by fruitful. First my above statement is just a theory / possible explanation, but still there could be other issues in the pre/post route STA causing them to not be accurate. Second, you need an estimate of the driving slew rate and load capacitance to make timing estimates that have any basis in reality. The liberty file contain infos/delays for different data point of drive slew and load capacitance so you need to provide that. For pre-layout STA you need to come up with "something" to plug in there ... (AFAIU)
👍 1
m
@tnt @Nickson Jose pre-routing STA is based on RC estimates for the interconnects. OpenROAD app creates virtual routes and uses only one metal layer parameters to calculate the delays. If you are using the OpenROAD App you may influence this by using the command:
Copy code
set_wire_rc -layer metal_layer_name
@tnt .lib file contains wire load models (WLM) which can be used to estimate the interconnect RC values even before PnR (Plave and ROute)
t
it does ? I couldn't see anything from a quick glance at it.
m
There is a default WLM which is used by OpenSTA. You may pick a specific wire model based on the design size
t
I thought that was coming from the techlef not the cell library .lib
m
To instruct OpenROAD App to use the tech LEF info, use the command I posted above
n
@mshalan..as per my understanding openlane is wrapper around openroad..so where do I make the definition for "set_wire_rc " in openlane?
m
Hi @Nickson Jose OpenLANE is a flow/methodology that uses open source EDA tools including OpenROAD. Check OpenLANE base.sdc
👍 1
n
HI Prof. @mshalan..I couldn't find the WLM in the .lib file..can you specify where does openlane fetch that info from?
im only using sky130_fd_sc_hd pdk
Hi @mshalan.I'm facing below error while generating spef file from the above SPEF_EXTRACTOR..I'm attaching the lef and def file for reference too..
Start parsing LEF file... Parsing LEF file done. Start parsing DEF file... Parsing DEF file done. Parameters Used: Edge Capacitance Factor: 1 Wire model: PI Traceback (most recent call last): File "main.py", line 482, in <module> firstLayer = lef_parser.via_dict[myVia].layers[0] KeyError: 'via2_FR'
lef_def.tar.gz