Summary
On the upgrade to yosys 0.64, vortex-nangate45 still closes timing (WNS +1.61 ns) but its netlist grows 123 554 → 154 070 logic cells (+24.7 %).
Root cause (confirmed)
The synth stat is dominated by MUX2_X1 = 54 100 cells — the read-multiplexer trees of the FF-fallback memories (the depth-16 reg-arrays nangate45 can't size as macros). yosys 0.64 lowers/shares those read muxes far less efficiently than 0.62 — a front-end memory-lowering change before ABC. The count is invariant to clock period (95 480 comb / 54 100 MUX2 at both 3.0 ns and 4.0 ns), to set_max_fanout, and to ABC area/speed mode — so it is not SDC/clock/ABC-driven. ABC_AREA=1 made it worse (+71 %); SYNTH_HIERARCHICAL=1 did not help.
Scope
Only structural remedies (a yosys memory-mux-sharing option, or sizing the depth-16 memories as macros) would fix it — beyond flow-knob scope. Closes timing; flagged on area only. asap7's mapping is unaffected. See designs/src/vortex/DECISIONS.md. Related: vortex-sky130hd (same cause). Part of PR #195.
Summary
On the upgrade to yosys 0.64, vortex-nangate45 still closes timing (WNS +1.61 ns) but its netlist grows 123 554 → 154 070 logic cells (+24.7 %).
Root cause (confirmed)
The synth stat is dominated by MUX2_X1 = 54 100 cells — the read-multiplexer trees of the FF-fallback memories (the depth-16 reg-arrays nangate45 can't size as macros). yosys 0.64 lowers/shares those read muxes far less efficiently than 0.62 — a front-end memory-lowering change before ABC. The count is invariant to clock period (95 480 comb / 54 100 MUX2 at both 3.0 ns and 4.0 ns), to
set_max_fanout, and to ABC area/speed mode — so it is not SDC/clock/ABC-driven.ABC_AREA=1made it worse (+71 %);SYNTH_HIERARCHICAL=1did not help.Scope
Only structural remedies (a yosys memory-mux-sharing option, or sizing the depth-16 memories as macros) would fix it — beyond flow-knob scope. Closes timing; flagged on area only. asap7's mapping is unaffected. See
designs/src/vortex/DECISIONS.md. Related: vortex-sky130hd (same cause). Part of PR #195.