
Digital, CRC-protected DShot150/300/600/1200 ESC command generator with bidirectional eRPM telemetry, ASIL-B. It is delivered as a licensable soft-IP block engineered as an ASIL-B Safety Element out of Context — not just RTL, but the complete functional-safety work package needed to carry it into an ISO 26262 program:
esc_dshot is a synthesizable SystemVerilog soft-IP that generates the DShot digital ESC (Electronic Speed Controller) protocol for brushless drone/UAV motor control, with optional bidirectional DShot eRPM-telemetry decode.
DShot150/300/600/1200 digital ESC protocol (+ bidirectional eRPM telemetry); APB4-lite host interface; ISO 26262 ASIL-B SEooC (SPFM 92.50%, LFM 90.00%, PMHF 2.49×10⁻⁹/h)
ASIL-B target (SEooC) · SPFM 92.50% · LFM 90.00% · Informational — not gated
Informational FMEDA — this IP is reported but NOT gated. The SPFM/LFM figures above are engineering estimates from a model that is not held to the ASIL metric gates (QM, safety-by-composition, a vendor-core overlay, or a pre-sign-off Technology Preview, depending on the IP). They are not a certification claim and must not be relied on as one. See the safety manual for this IP’s exact status, assumptions of use, and any open items.
ISO 26262:2018 · FMEDA available · Safety Manual included
| Offset | Register | Description |
|---|---|---|
0x00 | CTRL | [0]=EN [1]=TLM_EN (request telemetry bit in every frame) [3:2]=RATE (0=DShot150 1=300 2=600 3=1200) [4]=BIDIR_EN |
0x04 | STATUS | [0]=BUSY [1]=FRAME_DONE [2]=ARMED_ALL [3]=TLM_VALID (RO) |
0x08 | ARM | [NUM_MOTORS-1:0] per-channel arm enable (1=armed) |
0x0C | DIVCFG | [15:0]=clocks-per-bit-period (overrides RATE table if non-zero) |
0x10 | THR0 | [10:0]=channel-0 throttle (THR1..THRn at 0x14,0x18,… +4) |
…3 more registers — see datasheet for the full table.
// Minimal instantiation
esc_dshot #(
.ADDR_W(6)
) u_esc_dshot (
.clk (clk),
.rst_n (rst_n),
// APB4
.p_paddr (paddr),
.p_psel (psel),
.p_penable (penable),
.p_pwrite (pwrite),
.p_pwdata (pwdata),
.p_prdata (prdata),
.p_pready (pready),
// Safety
.err_clear (1'b0),
.err_valid (err_valid),
.err_code (err_code)
);Configure via the CTRL register after reset to enable the IP and set operating parameters. Monitor err_valid / err_code for any safety faults reported by the built-in safety monitor.
Typically deployed in UAV flight controllers and robotics platforms operating under a functional-safety mandate.
Pricing, the per-IP FMEDA, safety manual, and RTL data room are shared under a mutual NDA.
Figures are pre-silicon engineering-grade estimates for a Safety Element out of Context (SEooC); final ASIL sign-off is the integrator’s, supported under NDA. FMEDA and Safety Manual available under NDA.
circuit-design.space · +1-971-357-1400 · anovickis@circuit-design.space