mirror of
https://github.com/YosysHQ/yosys
synced 2025-11-28 08:19:50 +00:00
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> |
||
|---|---|---|
| .. | ||
| cmds | ||
| equiv | ||
| fsm | ||
| hierarchy | ||
| memory | ||
| opt | ||
| pmgen | ||
| proc | ||
| sat | ||
| techmap | ||
| tests | ||