https://open-source-silicon.dev logo
#openlane
Title
# openlane
e

Eldrick Saleh Millares

05/26/2021, 5:37 PM
I am on 
mpw-two-c
 on 
caravel_user_project
 and I am on 
v0.15
 on 
openlane
I am running 
make user_project_wrapper
 with my own design instantiated in 
user_proj_example
In
22-fastroute
we get a corrupted linked list error
Copy code
*** Error in `openroad': corrupted double-linked list: 0x000000004c90a760 ***                                                
======= Backtrace: =========                                  
/lib64/libc.so.6(+0x7f3e4)[0x7ffbcb5893e4]                    
/lib64/libc.so.6(+0x82c70)[0x7ffbcb58cc70]                    
/lib64/libc.so.6(__libc_malloc+0x4c)[0x7ffbcb58f6fc]                                                                         
/lib64/libstdc++.so.6(_Znwm+0x1d)[0x7ffbcbe4f18d]             
/lib64/libstdc++.so.6(_Znam+0x9)[0x7ffbcbe4f289]
openroad[0xd6263b]                                                                                                                                                                                                                                        
openroad[0xa74a08]                                                                                                                                                                                                                                        
openroad[0xa74e80]                                                                                                                                                                                                                                        
openroad[0xa7f781]                                              
...
I've attached a log of
22-fastroute
and the linked list error that follows it right after below, as well as some screenshots. In
22-fastroute.log
you can also see a few warnings about many nets having wires outside die area. What is causing this issue?
@Kartik Prabhu
m

Matt Venn

05/26/2021, 5:47 PM
Post a link to your design pls
e

Eldrick Saleh Millares

05/26/2021, 5:55 PM
Here's a more succinct repo that has our design integrated into caravel_user_project. I've linked to the single commit that has all of our changes https://github.com/eldrickm/caravel_user_project/commit/7988b22cf84ae1b8fd54f20e00190c04cca0e97e
m

Matt Venn

05/26/2021, 6:05 PM
Good idea with the single commit. I don't have time now but will try to take a look tomorrow. I have a feeling It might be similar to the bug @Anton Blanchard fixed a while back.
e

Eldrick Saleh Millares

05/26/2021, 6:11 PM
Thanks matt! Much appreciated 🙂
m

Matt Venn

05/26/2021, 6:13 PM
you know I think this is worth opening an issue on openlane repo
let's see what anyone else says
I think you have a problem related to not understanding the openlane flow
you need to harden your design and end up with a gds and lef file
these should be copied into the top level gds and lef directories
which will be done by the makefile on success
then user_project_wrapper can instantiate the design
but when you harden user_project_wrapper, there can be no synthesis done,
you use macros.cfg to place the hardened macro
and you blackbox it with the BLACKBOX directive
you tell it where the gds and lef files are
in your config file you have commented all this out
so I would go back to the original config, put the hardened gds and lef in the right place and then try again
e

Eldrick Saleh Millares

05/29/2021, 9:59 PM
@Matt Venn I see - so first, we should try to harden
user_proj_example
, upon completion - a GDS/LEF is copied into the top level directories. Why is the flow split this way and why can we not directly harden
user_project_wrapper
if our design is a fully standard cell, digital design?
Sorry for the delay in responding - have been travelling for the past few days
@Matt Venn I managed to push through a small pipecleaner design with this new understanding of the flow. Trying it now on my full design. Thank you for the help!