diff --git a/9_Firmware/9_2_FPGA/scripts/build21_fft_e2e.tcl b/9_Firmware/9_2_FPGA/scripts/build21_fft_e2e.tcl index d1965e1..e35c00f 100644 --- a/9_Firmware/9_2_FPGA/scripts/build21_fft_e2e.tcl +++ b/9_Firmware/9_2_FPGA/scripts/build21_fft_e2e.tcl @@ -309,7 +309,10 @@ if {[catch {report_exceptions -file "${report_dir}/13_exceptions.rpt"} err]} { puts " WARNING: report_exceptions failed: $err" puts " (Known Vivado 2025.2 issue — non-critical)" } -check_timing -verbose -file "${report_dir}/13_check_timing.rpt" +if {[catch {check_timing -verbose -file "${report_dir}/13_check_timing.rpt"} err]} { + puts " WARNING: check_timing failed: $err" + puts " (Known Vivado 2025.2 issue — non-critical)" +} # Compile configuration summary into a single text file set summary_fh [open "${report_dir}/00_build21_summary.txt" w] diff --git a/docs/implementation-log.html b/docs/implementation-log.html index 7dfed3c..4f777fd 100644 --- a/docs/implementation-log.html +++ b/docs/implementation-log.html @@ -30,6 +30,10 @@

Recent milestone timeline

+
+

Build 21 tagged v0.1.4-build21 — new 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.

+

E2E integration test + RTL fixes: mixer sequencing, USB data-pending, receiver wiring (0773001)

New end-to-end testbench (tb_system_e2e.v) with 46 checks across 12 groups covering reset, TX, safety, RX, USB R/W, CDC, beam scanning, reset recovery, stream control, latency budgets, and watchdog. RTL fixes discovered via E2E: chirp controller TX/RX mixer enables now mutually exclusive by FSM state; USB write FSM gains doppler/cfar data_pending sticky flags with stream-control reset default changed to range-only (3'b001); receiver gets STM32 toggle signal inputs and dynamic frame detection. USB unit tests 21/22/56 updated for data_pending architecture. Regression script PASS/FAIL parsing hardened. 19/19 FPGA, 20/20 MCU.

@@ -91,7 +95,8 @@

Build history and timing improvements

    -
  • Build 20 (v0.1.3-build20): Current production baseline. WNS +0.426 ns, WHS +0.058 ns. 400 MHz MMCM + CIC CREG pipeline. 0.730 W.
  • +
  • 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 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.
  • Build 17 (v0.1.1-build17): FIR DSP48 pipelining + matched filter BRAM migration.
  • diff --git a/docs/release-notes.html b/docs/release-notes.html index 969d1d3..eb629a6 100644 --- a/docs/release-notes.html +++ b/docs/release-notes.html @@ -39,6 +39,11 @@ + + 2efab23 v0.1.4-build21 + Build 21: FFT opts + E2E RTL fixes + Vivado DRC fix + MMCM LOCKED false_path fix + New production baseline. 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 4-cycle FFT butterfly (20% throughput), barrel-shift twiddle (-1 DSP), Vivado DRC multiple-driver fix for data_pending flags, MMCM LOCKED XDC false_path fix (-from → -through). 19/19 FPGA, 20/20 MCU. + 0773001 E2E integration test + RTL fixes: mixer sequencing, USB data-pending flags, receiver toggle wiring @@ -112,7 +117,8 @@

    Tagged releases

      -
    • v0.1.3-build20 (c6103b3) — Current production baseline. WNS +0.426 ns, all timing met. Includes Gaps 3, 5, 7.
    • +
    • 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.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.
    • v0.1.0-bringup — Initial bring-up tag.
    • @@ -140,6 +146,7 @@

      Open in GitHub

        +
      • 2efab23 Build 21: FFT opts + DRC fix + XDC fix (v0.1.4-build21)
      • 0773001 E2E test + RTL fixes
      • a3e1996 FFT engine optimizations
      • 7cdfa48 Gap 2 GUI Settings
      • diff --git a/docs/reports.html b/docs/reports.html index f3fd638..7390b33 100644 --- a/docs/reports.html +++ b/docs/reports.html @@ -34,10 +34,10 @@

        Current FPGA implementation status

          -
        • Build 20 (v0.1.3-build20) is the current production baseline for the XC7A200T target. All timing constraints met: WNS +0.426 ns, WHS +0.058 ns, WPWS +0.361 ns.
        • -
        • Utilization: 6,092 LUTs (4.5%), 9,024 FFs (3.4%), 16 BRAM (4.4%), 140 DSP48E1 (18.9%), 0.730 W total power.
        • -
        • Key improvements over Build 18: 400 MHz MMCM jitter cleaner, CIC comb DSP48E1 CREG pipeline, XDC clock-name fix. Setup slack improved 7x.
        • -
        • Build 20 reports are available on the remote Vivado host at ~/PLFM_RADAR_work/vivado_project/reports_build20/.
        • +
        • Build 21 (v0.1.4-build21) is the current production baseline for the XC7A200T target. All timing constraints met: WNS +0.156 ns, WHS +0.064 ns, WPWS +0.361 ns.
        • +
        • Utilization: 6,192 LUTs (4.6%), 9,064 FFs (3.4%), 16 BRAM (4.4%), 139 DSP48E1 (18.8%), 0.732 W total power.
        • +
        • Key improvements over Build 20: FFT 4-cycle butterfly (20% throughput gain), barrel-shift twiddle index (-1 DSP48), Gap 2 GUI Settings (runtime chirp timing, stream control, status readback), E2E RTL fixes, Vivado DRC multiple-driver fix, MMCM LOCKED XDC false_path correction.
        • +
        • Build 21 reports are available on the remote Vivado host at ~/PLFM_RADAR_work/vivado_project/reports_build21/.
        @@ -92,9 +92,9 @@

        FPGA implementation analysis

        -

        Status: Current engineering baseline — Build 20 (v0.1.3-build20)

        -

        Build 20 is the current production baseline. Full timing, utilization, power, DRC, methodology, CDC, and route reports are available on the remote Vivado host. Setup slack improved 7x from Build 18 (+0.062 ns to +0.426 ns) via MMCM jitter cleaner, CIC CREG pipeline, and XDC clock-name fix.

        -

        Build 18 (v0.1.2-build18) retained as prior reference. Build 19 failed timing (WNS -0.011 ns) due to conflicting XDC generated clock, root-caused and fixed in Build 20.

        +

        Status: Current engineering baseline — Build 21 (v0.1.4-build21)

        +

        Build 21 is the current production baseline. Full timing, utilization, power, DRC, methodology, CDC, and route reports are available on the remote Vivado host. Setup slack is +0.156 ns (tighter than Build 20's +0.426 ns due to Gap 2 register map additions, but comfortable and better than the intermediate Gap 2 build at +0.078 ns). Hold slack improved to +0.064 ns. DSP count dropped from 140 to 139 via barrel-shift twiddle optimization.

        +

        Build 20 (v0.1.3-build20) retained as prior reference. Build 19 failed timing (WNS -0.011 ns) due to conflicting XDC generated clock, root-caused and fixed in Build 20.

        @@ -111,11 +111,11 @@

        Report Currency Notice

          -
        • The current routed production-target baseline is Build 20 (v0.1.3-build20) with all timing constraints met and 7x setup slack improvement over Build 18.
        • +
        • The current routed production-target baseline is Build 21 (v0.1.4-build21) with all timing constraints met. WNS +0.156 ns, WHS +0.064 ns, 139 DSP48E1, 0.732 W.
        • Architectural gaps 2 (GUI Settings), 3 (Safety), 4 (USB Read Path), 5 (BRAM Reset), and 7 (MMCM) are closed. Gaps 1 (CFAR) and 6 (CDC-15) remain for post-bring-up.
        • FPGA regression: 19/19 pass (includes new E2E integration test). MCU regression: 20/20 pass (15 bug-fix + 5 Gap-3 safety).
        • -
        • FFT engine optimized: 4-cycle butterfly (20% throughput gain) + barrel-shift twiddle index (frees 1 DSP48). Pending Vivado build verification.
        • -
        • Detailed Build 20 engineering reports are on the remote Vivado host at ~/PLFM_RADAR_work/vivado_project/reports_build20/.
        • +
        • FFT engine optimized and Vivado-verified in Build 21: 4-cycle butterfly (20% throughput gain) + barrel-shift twiddle index (freed 1 DSP48, 140 → 139).
        • +
        • Detailed Build 21 engineering reports are on the remote Vivado host at ~/PLFM_RADAR_work/vivado_project/reports_build21/.
        • The artifact inventory above is intended to stabilize day-0 execution even when detailed internal engineering reports stay outside the public docs site.