You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Generating SRAM fails at supply_router: Couldn't route from (vdd layer=m3 ...) to to (vdd layer=m3 ...) #268
It's an odd, and very large, word size. I'd consider banking or other optimization.
Often this type of thing is just caused by a pin access problem, but you would need to identify it in the temp output that is saved. The top of the run should tell you what the GDS file name is to investigate.
Sorry, but we don't have resources to fix bugs, but would welcome any improvements as a PR>
Still open, but worth retesting against dev first: the supply router has changed since you filed this. #314 and #317 both landed on dev and touch exactly this path — #317 replaced recursion in the router's bbox tree, which previously blew Python's recursion limit on large macros, and #314 fixed a graph bug where remove_all_neighbors() skipped every second neighbor, leaving edges into blocked positions. Neither was aimed at a Couldn't route failure specifically, but both change what the router sees.
If it still fails on dev, the routing code is in compiler/router/, and running with -v -v gives the per-net routing detail.
If you would like to take it, a PR against dev would be very welcome and we will review and consider it — see CONTRIBUTING.md. Contributions go to the dev branch, and the regression suite is run with cd compiler/tests && make -k -j<N>.
Activity
mguthaus commentedon May 14, 2025
It's an odd, and very large, word size. I'd consider banking or other optimization.
Often this type of thing is just caused by a pin access problem, but you would need to identify it in the temp output that is saved. The top of the run should tell you what the GDS file name is to investigate.
Sorry, but we don't have resources to fix bugs, but would welcome any improvements as a PR>
ManzoniGiuseppe commentedon Dec 9, 2025
In case anyone wants to try fix it, a similar error also happens with freepdk45, and with the following power-of-two word_size:
For example, this configuration:
Fails with:
I can use smaller SRAMs in parallel, so it's not the end of the world, but it's not as efficient as a single bigger SRAM.
mguthaus commentedon Oct 13, 2026
Still open, but worth retesting against
devfirst: the supply router has changed since you filed this. #314 and #317 both landed ondevand touch exactly this path — #317 replaced recursion in the router's bbox tree, which previously blew Python's recursion limit on large macros, and #314 fixed a graph bug whereremove_all_neighbors()skipped every second neighbor, leaving edges into blocked positions. Neither was aimed at aCouldn't routefailure specifically, but both change what the router sees.If it still fails on
dev, the routing code is incompiler/router/, and running with-v -vgives the per-net routing detail.If you would like to take it, a PR against
devwould be very welcome and we will review and consider it — see CONTRIBUTING.md. Contributions go to thedevbranch, and the regression suite is run withcd compiler/tests && make -k -j<N>.