# Systems Perspective Description Language — Aerospace Avionics (SPDL-AERO) **Specification Document ID:** `SPDL-AERO-SPEC-2026-v4.2` **Classification:** Open Epistemic Standard / Hard Real-Time Flight-Critical Substrate **Principal Architect:** Asse van Nix | Systems Perspective Framework & Proof-Driven Architecture Group **Target Environment:** Zig 0.16.0 Freestanding Bare-Metal · Lockstep ARM Cortex-R5F / PowerPC · ARINC 429 / AFDX Replacement **Applied Standards:** ISO/IEC 14977 EBNF · GBNF Maskable · DO-178C (DAL-A Software) · DO-254 (DAL-A Hardware) · ARP4754A · ARINC 429/664 Replacement --- ## 1. Epistemic Architecture: Why ARINC 429, AFDX, and AADL Must Be Replaced 1. **Archaic Bit-Packed Words (ARINC 429):** ARINC 429 uses 32-bit words with 8-bit labels, 2-bit SSM, and raw BCD/BNR payloads. They possess no semantic metadata, no native runtime typing, and zero awareness of aerodynamic envelope boundaries. 2. **AFDX Switch Jitter:** ARINC 664 (AFDX) requires complex central switch scheduling and Bandwidth Allocation Gaps (BAG). It remains vulnerable to queue latency spikes during sensor data bursts. 3. **AADL Disconnect:** The Architecture Analysis & Design Language (SAE AS5506) provides formal academic modeling, but its toolchains are heavyweight and cannot be compiled to zero-heap silicon micro-kernels. **SPDL-AERO** brings continuous aerodynamic flight envelope protection directly into the runtime instruction stream. --- ## 2. Physical Invariants, DAEs & Mathematical Proof Gates ``` SPDL-AERO FLIGHT MANIFOLD ┌─────────────────────────────────────────────────────────────────────────────┐ │ AERO RIGID AIRCRAFT 6-DOF EQUATIONS OF MOTION │ │ m * (V_dot + Omega x V) = F_aero + F_thrust + m * g │ ├─────────────────────────────────────────────────────────────────────────────┤ │ AERODYNAMIC ANGLE-OF-ATTACK (AOA) STALL BARRIER │ │ h_stall(alpha, M) = alpha_max(Mach) - alpha >= 0 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ STRUCTURAL LOAD FACTOR (G-LOAD) LIMIT BARRIER │ │ h_gload(n_z) = n_z_max - (L_total / (m * g)) >= 0 │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 3. Formal ISO/IEC 14977 EBNF Grammar ```ebnf AeroManifest = { Line } ; Line = [ Whitespace ] , ( Comment | AeroRecord ) , Newline ; Whitespace = { " " | "\t" | "\r" } ; Newline = "\n" | "\r\n" ; Comment = "#" , { AnyChar - Newline } ; AeroRecord = "(I) @AERO_INVARIANT" , " " , InvariantFields | "(M) @FLIGHT_ENVELOPE" , " " , EnvelopeFields | "(B) @STALL_BARRIER" , " " , StallFields | "(B) @GLOAD_BARRIER" , " " , GloadFields | "(M) @SURFACE_ACTUATION" , " " , SurfaceFields | "(T) @AIR_DATA_OBSERVER" , " " , ObserverFields ; InvariantFields = "id:" , Token , " dal_level:DAL_A" , " cycle_us:" , Integer , " alloc_policy:ZERO_HEAP" ; EnvelopeFields = "id:" , Token , " max_mach:" , Number , " vmo_knots:" , Number , " ceiling_ft:" , Number ; StallFields = "id:" , Token , " alpha_stall_deg:" , Number , " recovery_margin_deg:" , Number ; GloadFields = "id:" , Token , " max_pos_g:" , Number , " max_neg_g:" , Number ; SurfaceFields = "id:" , Token , " elevator_deg:" , Number , " aileron_deg:" , Number , " rudder_deg:" , Number ; ObserverFields = "id:" , Token , " ias_knots:" , Number , " mach:" , Number , " alpha_deg:" , Number , " g_load:" , Number ; Token = Letter , { Letter | Digit | "_" | "-" } ; Number = [ "-" ] , Digit , { Digit } , [ "." , { Digit } ] ; Integer = [ "-" ] , Digit , { Digit } ; Letter = "A".."Z" | "a".."z" ; Digit = "0".."9" ; AnyChar = ? Any valid Unicode code point ? ; ``` --- ## 4. GBNF Structured Sampling Grammar ```gbnf root ::= AeroRecord "\n" AeroRecord ::= "(I) @AERO_INVARIANT" " " InvariantFields | "(M) @FLIGHT_ENVELOPE" " " EnvelopeFields | "(B) @STALL_BARRIER" " " StallFields | "(B) @GLOAD_BARRIER" " " GloadFields | "(M) @SURFACE_ACTUATION" " " SurfaceFields | "(T) @AIR_DATA_OBSERVER" " " ObserverFields InvariantFields ::= "id:" [A-Za-z0-9_-]+ " dal_level:DAL_A cycle_us:" [0-9]+ " alloc_policy:ZERO_HEAP" EnvelopeFields ::= "id:" [A-Za-z0-9_-]+ " max_mach:" [0-9.]+ " vmo_knots:" [0-9.]+ " ceiling_ft:" [0-9.]+ StallFields ::= "id:" [A-Za-z0-9_-]+ " alpha_stall_deg:" [0-9.]+ " recovery_margin_deg:" [0-9.]+ GloadFields ::= "id:" [A-Za-z0-9_-]+ " max_pos_g:" [0-9.]+ " max_neg_g:" [0-9.-]+ SurfaceFields ::= "id:" [A-Za-z0-9_-]+ " elevator_deg:" [0-9.-]+ " aileron_deg:" [0-9.-]+ " rudder_deg:" [0-9.-]+ ObserverFields ::= "id:" [A-Za-z0-9_-]+ " ias_knots:" [0-9.]+ " mach:" [0-9.]+ " alpha_deg:" [0-9.-]+ " g_load:" [0-9.]+ ``` --- ## 5. Production SPDL-AERO Manifest Exemplar ```spdl # ============================================================================== # SPDL-AERO v4.2 MANIFEST: FLY-BY-WIRE FLIGHT CONTROL COMPUTER (FCC-1) # Standard: DO-178C DAL-A | Hardware: Lockstep Cortex-R5F | Cycle: 500 us # ============================================================================== (I) @AERO_INVARIANT id:INV-FCC-PRIMARY dal_level:DAL_A cycle_us:500 alloc_policy:ZERO_HEAP # --- AIRFRAME ENVELOPE BOUNDS --- (M) @FLIGHT_ENVELOPE id:ENV_WIDEBODY max_mach:0.86 vmo_knots:350.0 ceiling_ft:43000.0 # --- AERODYNAMIC SAFETY BARRIERS --- (B) @STALL_BARRIER id:BAR_AOA_PROTECT alpha_stall_deg:14.2 recovery_margin_deg:2.0 (B) @GLOAD_BARRIER id:BAR_STRUCTURAL_LIMIT max_pos_g:2.5 max_neg_g:-1.0 # --- SURFACE COMMANDS --- (M) @SURFACE_ACTUATION id:SURF_TRIM elevator_deg:-1.2 aileron_deg:0.4 rudder_deg:0.0 # --- AIR DATA COMPUTATION TELEMETRY --- (T) @AIR_DATA_OBSERVER id:TEL_ADIRU_1 ias_knots:285.4 mach:0.78 alpha_deg:3.2 g_load:1.02 ``` --- ## 6. Standards Compliance Matrix ``` ╔═════════════════════════════════╦══════════════════════╦═════════════════════════════════════════════════════╗ ║ Dimension │ Verification Standard│ Enforced Implementation Evidence ║ ╠═════════════════════════════════╬══════════════════════╬═════════════════════════════════════════════════════╣ ║ Flight Software Certification │ DO-178C Level A │ Deterministic execution; WCET verified <= 500us. ║ ║ Aerodynamic Envelope Protection │ FAA/EASA Part 25 │ AoA stall barrier prevents excursions via QP filter.║ ║ Memory Execution Bound │ Freestanding Silicon │ Zero heap allocations (M_aux <= 128 bytes stack). ║ ║ Deterministic Serialization │ GBNF Structured Mask │ Eliminates syntactic hallucination in flight plans. ║ ╚═════════════════════════════════╩══════════════════════╩═════════════════════════════════════════════════════╝ ```