Skip to content

Follow the SWD library split in SpinalHDL - #499

Merged
Dolu1990 merged 1 commit into
SpinalHDL:devfrom
disdi:swd-lib-split
Sep 19, 2026
Merged

Dolu1990 merged 1 commit into
SpinalHDL:devfrom
disdi:swd-lib-split

Conversation

@disdi

@disdi disdi commented Sep 19, 2026

Copy link
Copy Markdown

SpinalHDL moved the SWD wire side (Swd bundle, SwdPhy, SwdDp) into spinal.lib.com.swd, and DebugTransportModuleSwd.io.swd is now slave(Swd()) with swdio as a TriState.

The SMP cluster maps swdio.read/write/writeEnable onto the same pinned top-level names as before (debugPort_swdio_i/o/oe), so the LiteX black-box port map is unchanged and the generated netlist is identical up to internal port renames.

The SWD PHY, DP and DTM suites and their sim driver never depended on VexRiscv; they now live in SpinalHDL's tester next to the code they test.

Requires the matching SpinalHDL/1966.

SpinalHDL moved the SWD wire side (Swd bundle, SwdPhy, SwdDp) into
spinal.lib.com.swd, and DebugTransportModuleSwd.io.swd is now
slave(Swd()) with swdio as a TriState.

The SMP cluster maps swdio.read/write/writeEnable onto the same pinned
top-level names as before (debugPort_swdio_i/o/oe), so the LiteX
black-box port map is unchanged and the generated netlist is identical
up to internal port renames.

The SWD PHY, DP and DTM suites and their sim driver never depended on
VexRiscv; they now live in SpinalHDL's tester next to the code they test.

Requires the matching SpinalHDL change.
@Dolu1990

Copy link
Copy Markdown
Member

Thanks ^^

@Dolu1990
Dolu1990 merged commit 2d7cb3c into SpinalHDL:dev Sep 19, 2026
1 check failed
Dolu1990 pushed a commit that referenced this pull request Sep 27, 2026
EmbeddedRiscvJtag puts the official RISC-V debug module and its transport
inside the CPU. Its transports were JTAG only (TAP, tunneled TAP or
instruction port), while the SMP cluster got SWD in #483 / #499.

Add withSwd, which uses the existing DebugTransportModuleSwd (SWCLK/SWDIO,
a RISC-V debug spec Ch. 6 custom DTM) in place of the JTAG transport and
exposes a "swd" port. Only one transport can be used at a time, so withTap
and withTunneling are ignored when withSwd is set.

The GenFullWithOfficialRiscvDebug and Briey netlists, the two users of the
plugin, are identical to dev.
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