Skip to content

vortex-nangate45: +24.7% cell growth from yosys-0.64 memory lowering #198

Description

@mguthaus

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions