Artifacts

Published Reports and Visuals

Central access point for antenna simulations, implementation summaries, timing baselines, and board-day artifact references.

Current FPGA implementation status

Build 25 — 15-Point Engineering Report

Status: PASS — Production-safe bitstream generated

Date: 2026-03-20  |  Commit: ed629e7  |  Device: XC7A200T-2FBG484I  |  Vivado 2025.2

1. Timing Summary

Clock DomainPeriod (ns)WNS (ns)WHS (ns)WPWS (ns)Status
clk_100m10.000+0.634+0.058+3.870PASS
clk_mmcm_out0 (400 MHz)2.500+0.304+0.115+0.684PASS
adc_dco_p+0.904+0.361PASS
ft601_clk_in10.000+0.132+0.121+4.500PASS
clk_120m_dac+0.773+0.151+3.666PASS

TNS = 0.000 ns, THS = 0.000 ns across all domains. Zero failing endpoints. Overall WNS +0.132 ns (ft601_clk_in domain, USB FSM path). Overall WHS +0.058 ns.

2. Utilization (Post-Route)

ResourceBuild 24 (CFAR)Build 25 (MTI)AvailableUtil%Delta
Slice LUTs8,5589,252134,6006.87%+694 (+8.1%)
Slice Registers (FFs)10,38412,488269,2004.64%+2,104 (+20%)
Block RAM Tiles17173654.66%0
  RAMB36E112123653.29%0
  RAMB18E110107301.37%0
LUT as Distributed RAM4846,2000.10%
DSP48E114214274019.19%0
Bonded IOBs17817828562.46%0
BUFGCTRL553215.63%0
MMCME2_ADV111010.00%0

MTI canceller added +694 LUTs (distributed RAM for chirp delay line + subtraction logic + DC notch comparators) and +2,104 FFs (I/Q pipeline registers, saturation logic, notch width comparators). Zero BRAM and DSP impact — MTI uses distributed RAM and fabric arithmetic only.

3. DSP48E1 Breakdown by Module

ModuleDSP48E1Notes
DDC (FIR I + FIR Q + CIC + NCO)117Dominant consumer: 47+47 FIR taps + 10+10 CIC + 2 DDC + 1 NCO
Matched Filter Processing Chain128 FFT butterflies + 4 freq-domain multiply
Doppler Processor + FFT108 FFT butterflies + 2 magnitude
CFAR Detector3alpha*noise multiply + GO/SO cross-multiply (pipelined)
MTI Canceller0Pure fabric arithmetic (subtraction + saturation)
Total14219.19% of 740 available

4. BRAM Breakdown by Module

ModuleRAMB36RAMB18TilesNotes
Doppler Processor404Range-Doppler accumulation buffers
Matched Filter (mf_dual)2107Coefficient + I/Q data BRAMs
CFAR Detector101Magnitude buffer (2048×17 bits)
Transmitter (chirp mem)101Chirp waveform storage
FFT Engines (2×)404Twiddle factor + butterfly BRAMs
MTI Canceller000Uses distributed RAM (LUTs), not BRAM
Total1210174.66% of 365 tiles

5. Power Estimate

CategoryBuild 24Build 25
Dynamic Power0.591 W0.590 W
Device Static0.163 W0.163 W
Total On-Chip0.754 W0.753 W

Power is essentially unchanged (-1 mW). MTI logic is lightweight fabric arithmetic; DC notch is combinational zeroing with negligible dynamic power.

6. Critical Path Analysis

The tightest path (WNS = +0.132 ns) is in the ft601_clk_in (100 MHz) domain: ft601_rxf input pad → 8 logic levels (IBUF + LUT1 + LUT3 + 4×LUT6 + LUT5) → usb_inst/FSM_sequential_current_state_reg[2]/D. This is the USB read FSM path and is unrelated to MTI or CFAR.

The clk_100m domain (where MTI, CFAR, and Doppler operate) has +0.634 ns slack — improved from Build 24's +0.287 ns. The MTI canceller adds no new critical paths.

7. Post-Synthesis vs Post-Route Comparison

MetricPost-SynthPost-Route (final)
WNS (setup)+0.123 ns+0.132 ns
WHS (hold)-0.076 ns (29 violations)+0.058 ns (0 violations)
LUTs9,3639,252
FFs12,53712,488

Post-route phys_opt resolved all 29 hold violations and improved setup slack by 9 ps. LUT/FF count reduced slightly by optimization passes.

8. DRC (Design Rule Checks)

184 checks performed. 0 errors, 0 critical warnings. Same advisory/warning profile as Build 24 (DPIP-1, DPOP-1/2, REQP-1839/1840, RPBF-3 etc.). No new DRC issues from MTI integration.

9. Methodology Report

Same methodology advisory profile as Build 24. No new methodology warnings from MTI or DC notch logic.

10. Congestion

No congestion windows found above level 5. The design remains well-placed at 6.87% LUT utilization.

11. Route Status

12. Hierarchical Utilization — MTI Module

InstanceLUTsFFsBRAMDSPNotes
radar_system_top (total)9,25212,48817142Full design
  cfar_inst2,2101,28213CA-CFAR detector
  rx_inst (receiver)6,73110,70310139Full receiver chain
    mti_inst5442,08200MTI canceller (new)
    doppler_proc681540410Doppler processor
    ddc6762,9590117DDC subsystem
    mf_dual2,4394,796712Matched filter
    range_decim21912900Range bin decimator
  usb_inst15921700USB data interface
  tx_inst1119110Transmitter

MTI canceller: 544 LUTs (0.40% device), 2,082 FFs (0.77% device), 0 BRAM, 0 DSP. The high FF count is from the chirp delay line (64 range bins × 16-bit I + 16-bit Q = 2,048 FFs for storage) implemented as distributed register file rather than BRAM.

13. Build-Over-Build Comparison

MetricBuild 21 (baseline)Build 23 (failed)Build 24 (CFAR)Build 25 (MTI)
WNS (ns)+0.156-0.309+0.179+0.132
WHS (ns)+0.064+0.056+0.058
LUTs6,1928,668 (synth)8,5589,252
FFs9,06410,411 (synth)10,38412,488
BRAM Tiles1617 (synth)1717
DSP48E1139142142
Power (W)0.7320.7540.753
BitstreamSafeUnsafeSafeSafe

14. MTI + DC Notch Integration Resource Cost

ResourceMTI + DC Notch% of DeviceNotes
LUTs~6940.52%MTI: 544 LUTs (subtraction, saturation, mux). DC notch: ~150 LUTs (bin compare, data zeroing) in system_top.
FFs~2,1040.78%MTI: 2,082 FFs (chirp delay line 64×32-bit + control). DC notch: ~22 FFs (registered width, active flags).
BRAM00%Chirp delay line fits in distributed registers (64 bins × 32 bits = 2,048 bits)
DSP48E100%Subtraction uses fabric adders, no multiply needed

Total MTI + DC notch cost: 0.52% of device LUTs, 0.78% of FFs. Very lightweight addition. Backward-compatible: host_mti_enable defaults to 0 (pass-through), host_dc_notch_width defaults to 0 (off).

15. Verification Summary

Test SuiteTestsChecksStatus
FPGA regression (run_regression.sh)2323/23 PASS
MTI standalone (tb_mti_canceller.v)112929/29 PASS
CFAR standalone (tb_cfar_ca.v)142323/23 PASS
Digital gain (tb_rx_gain_control.v)3232/32 PASS
Threshold fallback (tb_threshold_detector.v)2222/22 PASS
System E2E (tb_system_e2e.v, Group 14)136767/67 PASS
Real-data co-sim: Range FFT11,0241024/1024 exact
Real-data co-sim: Doppler12,0562056/2056 exact
Real-data co-sim: Full-chain12,0572057/2057 exact
MCU regression2020/20 PASS

5,310 individual data checks across all RTL test suites. Zero failures. MTI standalone test covers: pass-through, first-chirp mute, subtraction correctness, stationary target cancellation, moving target preservation, saturation (positive/negative), enable toggle, reset behavior, bin tracking, back-to-back chirps, and negative value handling.

Build 25 Artifacts

Note: TCL crashed at step 13/15 (extract_files missing parameter) after all reports were generated. Same non-critical scripting bug as Build 24.

Build 24 — 15-Point Engineering Report

Status: PASS — Production-safe bitstream generated

Date: 2026-03-20  |  Commit: 0745cc4  |  Device: XC7A200T-2FBG484I  |  Vivado 2025.2

1. Timing Summary

Clock DomainPeriod (ns)WNS (ns)WHS (ns)WPWS (ns)Status
clk_100m10.000+0.287+0.056+3.870PASS
clk_mmcm_out0 (400 MHz)2.500+0.179+0.092+0.684PASS
adc_dco_p+0.904+0.361PASS
ft601_clk_in10.000+0.347+0.094+4.500PASS
clk_120m_dac+1.755+0.056+3.666PASS

TNS = 0.000 ns, THS = 0.000 ns across all domains. Zero failing endpoints.

2. Utilization (Post-Route)

ResourceBuild 21 (baseline)Build 24AvailableUtil%Delta
Slice LUTs6,1928,558134,6006.36%+2,366 (+38%)
Slice Registers (FFs)9,06410,384269,2003.86%+1,320 (+15%)
Block RAM Tiles16173654.66%+1
  RAMB36E1123653.29%
  RAMB18E1107301.37%
DSP48E113914274019.19%+3
Bonded IOBs17828562.46%
BUFGCTRL53215.63%
MMCME2_ADV11010.00%

CFAR added +1 BRAM18 (magnitude buffer, 2048×17), +3 DSP48E1 (alpha multiply + cross-multiply for GO/SO), +2,366 LUTs (sliding window logic, state machine, mode mux), +1,320 FFs (pipeline registers, counters, window sums).

3. DSP48E1 Breakdown by Module

ModuleDSP48E1Notes
DDC (FIR I + FIR Q + CIC + NCO)117Dominant consumer: 47+47 FIR taps + 10+10 CIC + 2 DDC + 1 NCO
Matched Filter Processing Chain128 FFT butterflies + 4 freq-domain multiply
Doppler Processor + FFT108 FFT butterflies + 2 magnitude
CFAR Detector3alpha*noise multiply + GO/SO cross-multiply (pipelined)
System Top + Other0
Total14219.19% of 740 available

4. BRAM Breakdown by Module

ModuleRAMB36RAMB18TilesNotes
Doppler Processor404Range-Doppler accumulation buffers
Matched Filter (mf_dual)2107Coefficient + I/Q data BRAMs
CFAR Detector101Magnitude buffer (2048×17 bits)
Transmitter (chirp mem)101Chirp waveform storage
FFT Engines (2×)404Twiddle factor + butterfly BRAMs
Total1210174.66% of 365 tiles

5. Power Estimate

CategoryBuild 21Build 24
Dynamic Power0.591 W
Device Static0.163 W
Total On-Chip0.732 W0.754 W
Junction Temperature26.9°C
Max Ambient (TJA)83.1°C

+22 mW (+3%) from CFAR logic. Well within thermal budget.

6. Critical Path Analysis

The tightest path (WNS = +0.179 ns) is in the clk_mmcm_out0 (400 MHz) domain: NCO sine LUT index register → LUT6 → sin_abs_reg. This is the same path that was critical in Build 21 and is unrelated to CFAR.

The clk_100m domain (where CFAR operates) has +0.287 ns slack. The Build 23 critical path (cfar_inst/leading_sum → cross-multiply → alpha*noise DSP, WNS = -0.309 ns) has been completely eliminated by the pipeline fix.

7. Post-Synthesis vs Post-Route Comparison

MetricPost-SynthPost-Route (final)
WNS (setup)+0.123 ns+0.179 ns
WHS (hold)-0.076 ns (29 violations)+0.056 ns (0 violations)
LUTs8,6718,558
FFs10,43310,384

Post-route phys_opt resolved all 29 hold violations and improved setup slack by 56 ps. LUT/FF count reduced slightly by optimization passes.

8. DRC (Design Rule Checks)

184 checks performed. 0 errors, 0 critical warnings. Advisory/warning breakdown:

9. Methodology Report

10. Congestion

No congestion windows found above level 5. The design is well-placed with no routing pressure. XC7A200T provides ample routing resources at 6.36% LUT utilization.

11. Route Status

12. Logic Level Distribution (Top 1000 Worst Paths)

ClockPeriodLvl 0Lvl 1Lvl 2Lvl 3Lvl 4Lvl 5
clk_100m10.000 ns2500000
clk_mmcm_out02.500 ns80810831983
ft601_clk_in10.000 ns0002123

The clk_100m domain has only level-0 paths in the top-1000 worst — CFAR pipeline fix reduced logic depth to register-to-register transfers. The 400 MHz DDC domain remains the most timing-critical area.

13. Build-Over-Build Comparison

MetricBuild 21 (baseline)Build 23 (CFAR, failed)Build 24 (CFAR + pipeline)
WNS (ns)+0.156-0.309+0.179
WHS (ns)+0.064+0.056
LUTs6,1928,668 (post-synth)8,558
FFs9,06410,411 (post-synth)10,384
BRAM Tiles1617 (post-synth)17
DSP48E1139142
Power (W)0.7320.754
BitstreamSafeUnsafe (timing fail)Safe

14. CFAR Integration Resource Cost

ResourceCFAR Module Only% of DeviceNotes
LUTs2,2291.66%Sliding window sums, GO/SO cross-multiply, state machine, mode mux
FFs1,2810.48%Pipeline registers, window counters, sum accumulators, noise_sum_reg
RAMB36E110.27%Magnitude buffer: 2048 entries × 17 bits
DSP48E130.41%alpha×noise, leading cross-multiply, lagging cross-multiply

Total CFAR cost: 2.82% of device LUTs, 0.48% of FFs, 0.27% of BRAM, 0.41% of DSPs. Minimal impact on headroom.

15. Verification Summary

Test SuiteTestsChecksStatus
FPGA regression (run_regression.sh)2222/22 PASS
CFAR standalone (tb_cfar_ca.v)142323/23 PASS
Digital gain (tb_rx_gain_control.v)3232/32 PASS
Threshold fallback (tb_threshold_detector.v)2222/22 PASS
System E2E (tb_system_e2e.v, Group 14)136767/67 PASS
Real-data co-sim: Range FFT11,0241024/1024 exact
Real-data co-sim: Doppler12,0562056/2056 exact
Real-data co-sim: Full-chain12,0572057/2057 exact
MCU regression2020/20 PASS

5,281 individual data checks across all RTL test suites. Zero failures. Real-data co-simulation confirms bit-exact match with Python golden reference across the entire signal processing chain.

Build 24 Artifacts

Note: TCL crashed at step 13/15 (extract_files missing parameter) after all reports were generated. Non-critical scripting bug; all implementation, optimization, and bitstream generation completed successfully.

Board-day artifact inventory

Artifact Source path Day-0 use Status / note
Production-target XDC9_Firmware/9_2_FPGA/constraints/xc7a200t_fbg484.xdcConstraint source of truth for the production FPGA targetTracked and validated after Build 16 cleanup port
FPGA programming flow9_Firmware/9_2_FPGA/scripts/program_fpga.tclPrograms the device and reports DONE / INIT_COMPLETE / probes presencePrimary operator-facing programming script
Debug probe insertion flow9_Firmware/9_2_FPGA/scripts/insert_ila_probes.tclUsed when generating or refreshing debug-capable imagesKeep matched with the selected debug bitstream
FPGA regression runner9_Firmware/9_2_FPGA/run_regression.shPre-arrival regression evidence for the tracked FPGA baseline23 / 23 passing on the current tracked branch (includes CFAR + MTI + E2E tests)
MCU regression harness9_Firmware/9_1_Microcontroller/tests/MakefilePre-arrival firmware regression evidence before flashing hardware20 / 20 passing on the current tracked branch
Bring-up logging macros9_Firmware/9_1_Microcontroller/9_1_1_C_Cpp_Libraries/diag_log.hDefines the main first-power-on log vocabulary used over USART3Observation-only instrumentation layer
Board-day worksheetdocs/board-day-worksheet.htmlRecord pass/fail, measurements, and blockers during first sessionsUse with this page and the bring-up plan
Bring-up execution plandocs/bring-up.htmlOperator checklist, abort criteria, observability targets, and open risksPrimary readiness document

Antenna Simulation Report

Status: Mostly current (historical Phase-0 context)

File: AERIS_Antenna_Report.pdf

Notes: Valid for 10.5 GHz patch-element simulation and array projection context. Treat as element-level evidence, not full current hardware bring-up sign-off.

Open PDF Download

Python Simulation Report

Status: Legacy (needs refresh)

File: AERIS_Simulation_Report.pdf

Notes: Contains older architecture assumptions (e.g., XC7A100T-centric narrative). Use as historical reference only until Simulation Report v2 is published.

Open PDF Download

FPGA implementation analysis

Status: Current engineering baseline — Build 25 (MTI + DC notch)

Build 25 is the current production baseline. Includes MTI canceller (2-pulse clutter cancellation) and DC notch filter on top of CA-CFAR detector. Full 15-point report above. WNS +0.132 ns, WHS +0.058 ns. DSP count 142 (unchanged). BRAM 17 (unchanged). LUTs 9,252 (+694 from Build 24). FFs 12,488 (+2,104). Power 0.753 W (unchanged).

Build 24 (v0.1.5-cfar) integrated CA-CFAR with pipelined noise computation. Build 23 failed timing (WNS -0.309 ns) due to combinational critical path — fixed by pipelining.

Build 21 (v0.1.4-build21) retained as pre-CFAR reference. Build 20 (v0.1.3-build20) and earlier retained for historical reference.

Latest Simulation Report (Recommended)

Status: Current baseline (v2)

File: AERIS_Simulation_Report_v2.pdf

Aligned to the active project baseline: XC7A200T target, firmware regression closure, FPGA regression/timing gates, USB range-profile integration, and TE0712/TE0713 split-target flow.

Open PDF Download

Report Currency Notice

Antenna concept snapshot

Antenna array concept