https://open-source-silicon.dev logo
a

Anton Blanchard

02/19/2022, 11:00 AM
@User I'm struggling to get
spef -path
to work:
Copy code
read_spef -path microwatt_0.soc0.processor.register_file_0.register_file_0
Gives me:
Copy code
[ERROR STA-0433] path instance 'microwatt_0.soc0.processor.register_file_0.register_file_0' not found.
But it seems like it should be there:
Copy code
sta::get_name [lindex [sta::get_cells microwatt_0.soc0.processor.register_file_0.register_file_0*] 0]
microwatt_0.soc0.processor.register_file_0.register_file_0/FILLER_0_1006
d

Dinesh A

02/19/2022, 3:10 PM
read_spef format was read_spef -path <instance path> <spef file> example: read_spef -path mprj $::env(USER_ROOT)/spef/user_project_wrapper.spef
m

Matt Liberty

02/19/2022, 3:27 PM
are you reading in the verilog or just the DEF?
the escaped name in verilog \microwatt_0.soc0.processor.register_file_0.register_file_0 probably requires some escaping when passed to read_spef otherwise it will interpret the . as hier delim
a

Anton Blanchard

02/19/2022, 7:34 PM
I did think it could be that and tried various combinations like
{microwatt_0\.soc0.processor\.register_file_0\.register_file_0}
but haven't found one that works yet.
m

Matt Liberty

02/20/2022, 3:23 AM
I can see from your read_lef that you are running this in openroad. You need to run it in standalone 'sta'. OR doens't support verilog hierarchy but sta does
sta sta.tcl gives no read_spef errors for me
a

Anton Blanchard

02/20/2022, 3:51 AM
Thanks @User I missed that detail, and I was using the openroad executable. Looks to be working now! Thank you
👍 1