3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-11-25 23:19:35 +00:00
Commit graph

1 commit

Author SHA1 Message Date
Craig Hasselbring
00b3c83282 memory_libmap: Add beam search for many-port memories
The existing read port assignment algorithm uses Cartesian product
expansion, which has O(options^N) complexity. For memories with many
read ports (e.g., 64 parallel reads), this causes exponential memory
usage (60GB+) and timeouts.

This commit adds a beam search algorithm that activates for >8 read
ports. It maintains only the top K (default 16) configurations at
each step, reducing complexity to O(N * options * K).

Tested with:
- 64 read ports: completes in ~1s vs OOM
- 32 read ports: completes in ~1s vs timeout
- Maintains existing behavior for ≤8 ports

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 18:31:38 -08:00