OK, I'm beginning to strongly consider using next-pnr instead of arachne-pnr. All I did was add initial assignments to outputs to my #kestrel3 ROMA core, and now all of a sudden, arachne-pnr simply cannot route it. By which I mean, after 4096 passes, it was completely stumped.
The `check` pass should produce a warning for combinatorial loops. (`synth_ice40` calls `check` as one of the last commands.) Do you have your code somewhere online so I can have a quick look?
-
-
My first uneducated guess would be that the initial statements prevent something to be mapped to block RAM. Check for that in the synthesis resource usage report?
-
I'm not using block RAM yet.
@zipcpu found the issue. I worked around it by putting initial values behind a ifdef FORMAL check. It's all good now.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.