package swd
- Alphabetic
- Public
- All
Type Members
-
case class
Swd(useSwclk: Boolean = true) extends Bundle with IMasterSlave with Product with Serializable
ARM Serial Wire Debug (ADIv5/ADIv6) pins: a probe-driven clock and one bidirectional data line.
ARM Serial Wire Debug (ADIv5/ADIv6) pins: a probe-driven clock and one bidirectional data line.
SWDIO is push-pull tristate, not open-drain: the host drives 0 and 1 during the request, WDATA and line reset, the target drives 0 and 1 during ACK and RDATA, and both release the line for the turnarounds. Hence a TriState, which InOutWrapper turns into a real inout.
master = the host (debug probe), slave = the target. Both ends own a tristate driver, so asSlave() is not the plain flip of asMaster(): only SWCLK changes direction.
-
case class
SwdApCmd() extends Bundle with Product with Serializable
ADI SW-DP: DPIDR, CTRL/STAT, SELECT, RDBUFF/RESEND, ABORT, sticky-error and WAIT/FAULT gating, posted AP reads.
ADI SW-DP: DPIDR, CTRL/STAT, SELECT, RDBUFF/RESEND, ABORT, sticky-error and WAIT/FAULT gating, posted AP reads. Access ports hang off ap.cmd / ap.rsp — one outstanding AP transaction at a time, completed by a single ap.rsp pulse. Runs in the SWCLK domain.
dpidr defaults to a placeholder: pick your own designer/part encoding, and do not reuse an ARM Cortex SW-DP value (debuggers key target detection off it).
- case class SwdApRsp() extends Bundle with Product with Serializable
- case class SwdDp(dpidr: BigInt = BigInt("0BA11AAB", 16)) extends Component with Product with Serializable
-
case class
SwdDpCmd() extends Bundle with Product with Serializable
SWD wire protocol (ADIv6 B4): bit-level framing of one packet — request, turnaround, ACK, data phase, line reset.
SWD wire protocol (ADIv6 B4): bit-level framing of one packet — request, turnaround, ACK, data phase, line reset. Runs in the SWCLK domain (see Swd.clockDomain) and knows nothing about DP/AP registers: it hands each request to a DP over dp.cmd / dp.rsp / dp.wr.
The DP must answer dp.cmd combinationally (rsp.valid in the same cycle): that cycle is the turnaround, and ACK[0] goes on the wire on the next SWCLK. The PHY cannot stall the host.
- case class SwdDpRsp() extends Bundle with Product with Serializable
- case class SwdDpWrite() extends Bundle with Product with Serializable
- case class SwdPhy() extends Component with Product with Serializable
- case class SwdPhyDp(dpidr: BigInt = BigInt("0BA11AAB", 16)) extends Component with Product with Serializable