diff --git a/docs/implementation-log.html b/docs/implementation-log.html index 4f777fd..d9cbe91 100644 --- a/docs/implementation-log.html +++ b/docs/implementation-log.html @@ -31,7 +31,27 @@

Recent milestone timeline

-

Build 21 tagged v0.1.4-build21 — new production baseline (2efab23)

+

Build 25 — MTI canceller + DC notch filter (ed629e7)

+

MTI 2-pulse canceller (H(z) = 1 - z^{-1}) integrated between range bin decimator and Doppler processor for ground clutter removal. DC notch filter (post-Doppler, pre-CFAR) zeroes bins within ±host_dc_notch_width of bin 0. Two new host registers: host_mti_enable (0x26), host_dc_notch_width (0x27). Both default to off/pass-through for backward compatibility. Build 25: WNS +0.132 ns, WHS +0.058 ns. 9,252 LUTs, 12,488 FFs, 17 BRAM, 142 DSP, 0.753 W. 23/23 FPGA regression, 29/29 MTI standalone checks, 3/3 real-data co-sim exact match.

+
+
+

Build 24 tagged v0.1.5-cfar — CA-CFAR production baseline (075ae1e)

+

CA-CFAR detector with CA/GO/SO modes integrated, replacing old threshold detector. Pipelined noise computation (Build 23 fix). WNS +0.179 ns, WHS +0.056 ns. 8,558 LUTs, 10,384 FFs, 17 BRAM, 142 DSP, 0.754 W. CFAR cost: +2,229 LUTs, +1,281 FFs, +1 BRAM, +3 DSP. Includes magnitude BRAM buffer, sliding-window algorithm, host-configurable guard/train/alpha/mode registers (opcodes 0x21-0x25).

+
+
+

Build 23 failed timing, root-caused and fixed (0745cc4)

+

Build 23 had WNS -0.309 ns due to combinational path through CFAR noise_sum_comb → cross-multiply → alpha*noise DSP. Fixed by pipelining noise computation into ST_CFAR_THR + ST_CFAR_MUL stages, splitting the path across two clock cycles.

+
+
+

7 production fixes tagged v0.1.4-prod-fixes (e93bc33)

+

Detection bug fixes (sticky flag + one-cycle-lag magnitude), rename cfar→threshold_detect, digital gain control (host-configurable power-of-2 shift), Doppler/chirps mismatch protection (clamp + error flag), decimator watchdog (timeout counter), bypass_mode dead code removal, range-mode register (0x20). Real-data co-simulation framework added. 22/22 FPGA regression.

+
+
+

Real-data co-simulation framework (0b06436)

+

Three real-data testbenches added: range FFT, Doppler, and full-chain. Compare RTL outputs against Python golden reference using recorded ADC captures. 5,137 total data checks, all exact bit-for-bit match. Tagged v0.1.4-pre-fixes as safety net before production fixes.

+
+
+

Build 21 tagged v0.1.4-build21 — pre-CFAR production baseline (2efab23)

WNS +0.156 ns, WHS +0.064 ns, WPWS +0.361 ns. 6,192 LUTs (4.6%), 9,064 FFs (3.4%), 16 BRAM (4.4%), 139 DSP48E1 (18.8%), 0.732 W. Includes FFT 4-cycle butterfly (20% throughput), barrel-shift twiddle (-1 DSP), Gap 2 GUI Settings, E2E RTL fixes (mixer sequencing, USB data-pending, receiver toggle wiring), Vivado DRC multiple-driver fix for data_pending flags, and MMCM LOCKED XDC false_path correction (-from → -through). Build script crash at report_exceptions/check_timing (Vivado 2025.2 bug) fixed by wrapping in catch blocks; all 12 critical reports and bitstream generated successfully.

@@ -85,9 +105,9 @@

Codebase quality and verification upgrades

    -
  • FPGA regression: 19/19 passing suites covering matched filter, Doppler, CIC, CDC, USB (with read path), FFT, NCO, FIR, range decimator, mode controller, system-top integration, and system E2E.
  • +
  • FPGA regression: 23/23 passing suites covering matched filter, Doppler, CIC, CDC, USB (with read path), FFT, NCO, FIR, range decimator, mode controller, system-top integration, system E2E, CFAR standalone, and MTI standalone.
  • MCU regression: 20/20 passing tests (15 bug-fix + 5 Gap-3 safety tests).
  • -
  • Architectural gaps 2, 3, 4, 5, 7 closed with full test coverage. Gaps 1 and 6 deferred to post-bring-up.
  • +
  • Architectural gaps 1–7 all closed. Gap 1 (CFAR) integrated as CA-CFAR detector (Build 24). MTI canceller + DC notch filter added (Build 25). Gaps 2–7 closed prior to Build 21.
  • USB host-to-FPGA command path fully wired: read FSM, toggle CDC, command decode for mode/trigger/CFAR/stream control. GUI settings (chirp timing, stream gating, status readback) fully operational.
  • Safety architecture: IWDG watchdog, emergency stop PA cutoff, temperature guard, IDQ re-read, state ordering.
@@ -95,7 +115,9 @@

Build history and timing improvements

    -
  • Build 21 (v0.1.4-build21): Current production baseline. WNS +0.156 ns, WHS +0.064 ns. FFT 4-cycle butterfly + barrel-shift twiddle. 139 DSP48E1 (-1). 0.732 W.
  • +
  • Build 25 (v0.1.6-mti): Current production baseline. WNS +0.132 ns, WHS +0.058 ns. MTI canceller + DC notch filter. 9,252 LUTs, 12,488 FFs, 142 DSP48E1. 0.753 W.
  • +
  • Build 24 (v0.1.5-cfar): Prior production baseline. WNS +0.179 ns, WHS +0.056 ns. CA-CFAR detector (CA/GO/SO). 8,558 LUTs, 142 DSP48E1. 0.754 W.
  • +
  • Build 21 (v0.1.4-build21): Pre-CFAR baseline. WNS +0.156 ns, WHS +0.064 ns. FFT 4-cycle butterfly + barrel-shift twiddle. 139 DSP48E1 (-1). 0.732 W.
  • Build 20 (v0.1.3-build20): Prior production baseline. WNS +0.426 ns, WHS +0.058 ns. 400 MHz MMCM + CIC CREG pipeline. 0.730 W.
  • Build 19: Failed (WNS -0.011 ns). Root cause: conflicting XDC generated clock prevented false-path application.
  • Build 18 (v0.1.2-build18): Prior baseline. WNS +0.062 ns, WHS +0.059 ns. 0.631 W.
  • diff --git a/docs/release-notes.html b/docs/release-notes.html index eb629a6..7c6edf6 100644 --- a/docs/release-notes.html +++ b/docs/release-notes.html @@ -39,6 +39,21 @@ + + ed629e7 v0.1.6-mti + Build 25: MTI canceller + DC notch filter integration + New production baseline. WNS +0.132 ns, WHS +0.058 ns. 9,252 LUTs (6.87%), 12,488 FFs (4.64%), 17 BRAM (4.66%), 142 DSP48E1 (19.19%), 0.753 W. New modules: mti_canceller.v (2-pulse canceller, H(z)=1-z^-1), DC notch filter (inline in system_top). Two new host registers: host_mti_enable (0x26), host_dc_notch_width (0x27). 23/23 FPGA, 20/20 MCU, 3/3 real-data co-sim exact match. + + + 075ae1e v0.1.5-cfar + Build 24: CA-CFAR detector integration with pipelined noise computation + Prior production baseline. WNS +0.179 ns, WHS +0.056 ns. 8,558 LUTs, 10,384 FFs, 17 BRAM, 142 DSP48E1, 0.754 W. CA/GO/SO CFAR modes with BRAM magnitude buffer, sliding-window algorithm. Host-configurable guard/train/alpha/mode registers (0x21-0x25). Build 23 timing failure fixed by pipelining noise computation. 22/22 FPGA, 20/20 MCU. + + + e93bc33 v0.1.4-prod-fixes + 7 production-quality fixes: detection bugs, digital gain, watchdog, dead code removal + Detection sticky flag + magnitude lag fix, rename cfar→threshold_detect, host-configurable digital gain control (power-of-2 shift), Doppler/chirps mismatch protection (clamp + error flag), decimator watchdog timeout, bypass_mode dead code removal, range-mode register (0x20). Real-data co-sim framework added. 22/22 FPGA. + 2efab23 v0.1.4-build21 Build 21: FFT opts + E2E RTL fixes + Vivado DRC fix + MMCM LOCKED false_path fix @@ -117,7 +132,10 @@

    Tagged releases

      -
    • v0.1.4-build21 (2efab23) — Current production baseline. WNS +0.156 ns, WHS +0.064 ns. Includes FFT opts, E2E RTL fixes, Vivado DRC fix, MMCM LOCKED XDC fix. 139 DSP48E1 (-1 vs Build 20).
    • +
    • v0.1.6-mti (ed629e7) — Current production baseline. WNS +0.132 ns, WHS +0.058 ns. MTI canceller + DC notch filter. 9,252 LUTs, 12,488 FFs, 142 DSP48E1, 17 BRAM. 0.753 W.
    • +
    • v0.1.5-cfar (075ae1e) — Prior production baseline. WNS +0.179 ns. CA-CFAR detector (CA/GO/SO modes) with pipelined noise computation.
    • +
    • v0.1.4-prod-fixes (e93bc33) — 7 production fixes + real-data co-sim framework. WNS same as Build 21 (simulation-only changes).
    • +
    • v0.1.4-build21 (2efab23) — Pre-CFAR production baseline. WNS +0.156 ns, WHS +0.064 ns. Includes FFT opts, E2E RTL fixes, Vivado DRC fix, MMCM LOCKED XDC fix. 139 DSP48E1 (-1 vs Build 20).
    • v0.1.3-build20 (c6103b3) — Prior production baseline. WNS +0.426 ns, all timing met. Includes Gaps 3, 5, 7.
    • v0.1.2-build18 (3b7afba) — Prior production baseline. WNS +0.062 ns.
    • v0.1.1-build17 (ed6f79c) — FIR DSP48 + BRAM migration build.
    • @@ -137,7 +155,7 @@ 4USB Read PathDone (e5d1b3c) 2GUI SettingsDone (7cdfa48) 6CDC-15 USB BusesPost-bring-up - 1CFAR Real ImplementationPost-bring-up + 1CFAR Real ImplementationDone (075ae1e, Build 24 + MTI in ed629e7)
@@ -146,6 +164,12 @@

Open in GitHub