Skip to content

LiteX SMP generator: enable CounterPlugin so utime is driven - #502

Merged
Dolu1990 merged 1 commit into
SpinalHDL:devfrom
disdi:litex-counter-plugin
Oct 13, 2026
Merged

Dolu1990 merged 1 commit into
SpinalHDL:devfrom
disdi:litex-counter-plugin

Conversation

@disdi

@disdi disdi commented Oct 12, 2026 •

Copy link
Copy Markdown

vexRiscvConfig defaults withCounterPlugin to false, but still sets CsrPlugin utimeAccess to READ_ONLY. Without a CounterPlugin, CsrPlugin allocates its own utime input, and the clint binding only drives CounterPlugin.time. SpinalHDL then rejects the cluster before any netlist is written:

NO DRIVER ON (toplevel/cores_0_cpu_logic_cpu/utime : in UInt[64 bits])
    at vexriscv.plugin.CsrPlugin.setup

VexRiscvLitexSmpClusterCmdGen is the generator LiteX runs for the SMP cluster. This passes withCounterPlugin = true there, which is the behaviour from before the flag existed. Nothing else changes: caches, ISA, debug, and the SWD option are untouched.

This is why LiteX pins pythondata-cpu-vexriscv-smp to 217d23d (enjoy-digital/litex@bfb3f8beb, asked about on litex-hub/pythondata-cpu-vexriscv_smp#11). The pin can move once this is in a pythondata gitlink. The companion model update for rdLatency / rd_dataEn is separate; elaboration dies on utime before that Verilog check runs.

vexRiscvConfig defaults withCounterPlugin to false, but still sets
CsrPlugin utimeAccess to READ_ONLY. Without a CounterPlugin, CsrPlugin
allocates its own utime input, and the clint binding only drives
CounterPlugin.time. SpinalHDL then rejects the cluster:

    NO DRIVER ON (toplevel/cores_0_cpu_logic_cpu/utime : in UInt[64 bits])

VexRiscvLitexSmpClusterCmdGen is the generator LiteX runs. Pass
withCounterPlugin = true there, which is the behaviour from before the
flag existed. LiteX pins pythondata-cpu-vexriscv-smp to 217d23d
(enjoy-digital/litex@bfb3f8beb) until this lands.
@Dolu1990
Dolu1990 merged commit 03dc61d into SpinalHDL:dev Oct 13, 2026
1 check failed
@Dolu1990

Copy link
Copy Markdown
Member

Thanks ^^

enjoy-digital added a commit to litex-hub/pythondata-cpu-vexriscv_smp that referenced this pull request Oct 14, 2026
Bring in SpinalHDL/VexRiscv#502: VexRiscvLitexSmpClusterCmdGen enables
CounterPlugin again, so the CsrPlugin utime input is driven and the LiteX
SMP cluster elaborates with the current SpinalHDL (90b7d8eee).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pu-cc pushed a commit to pu-cc/litex that referenced this pull request Oct 15, 2026
The upstream generator now drives the CsrPlugin utime input again
(SpinalHDL/VexRiscv#502) and the Ram_1w_1rs models accept the new
rdLatency/rd_dataEn ports (pythondata-cpu-vexriscv_smp#12), so follow
pythondata-cpu-vexriscv-smp master again.

This reverts commit bfb3f8b.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants