QLI Protocol Specification

DYBER-QLI-ARCH-001 Rev 0.1 — December 2025

Complete QLI v0.1 protocol reference: 128-bit parallel DDR PHY, packet format, credit-based flow control, CRC-32/KMAC-128 integrity, and QLI-SHORT/STANDARD/EXTENDED configurations. This page provides the formal protocol specification; for integration guidance see the QLI Interface Reference.

Protocol Overview #

QLI Protocol Stack
LayerFunctionKey Parameters
Transaction LayerCommand dispatch, completion, register access10 opcodes, 16-bit tags
Data Link LayerCredit flow control, CRC-32, optional KMAC-12832 initial credits, 8-bit counters
Physical Layer128-bit DDR parallel signaling, clock forwarding1.8V I/O, 50Ω impedance

Physical Layer Specification #

ParameterValue
Data width128 bits TX + 128 bits RX (full-duplex)
SignalingSingle-ended CMOS, DDR (data valid on both clock edges)
Clock forwardingSource-synchronous, 1 TX_CLK + 1 RX_CLK
Per-clock bandwidth256 bits/edge × 2 edges = 512 bits/cycle
Bandwidth @ 100 MHz6.4 GB/s per direction, 12.8 GB/s aggregate
Bandwidth @ 200 MHz (GF22FDX)12.8 GB/s per direction, 25.6 GB/s aggregate
Lane grouping4 × 32-bit lanes with per-lane valid signals
Voltage levels1.8V CMOS (VDD_IO)

Packet Format #

QLI Packet Structure (64-byte aligned):
┌──────────┬──────────────────────────┬────────────┬──────────────┐
│ Header   │ Payload                  │ CRC-32     │ KMAC-128     │
│ (8 bytes)│ (variable: 0–4068 bytes) │ (4 bytes)  │ (16 bytes,   │
│          │                          │ mandatory  │  optional)   │
└──────────┴──────────────────────────┴────────────┴──────────────┘

Header (8 bytes):
┌─────────┬─────────┬──────────┬─────────┬───────────┐
│ OPCODE  │ FLAGS   │ LENGTH   │ TAG     │ RESERVED  │
│ [7:0]   │ [15:8]  │ [31:16]  │ [47:32] │ [63:48]   │
│ 8 bits  │ 8 bits  │ 16 bits  │ 16 bits │ 16 bits   │
└─────────┴─────────┴──────────┴─────────┴───────────┘
Packet Configurations
TypeTotalHeaderPayloadCRCMACUse Case
QLI-SHORT64 B8 B52 B4 B—Register access, commands
QLI-STANDARD256 B8 B244 B4 B—Single polynomial transfer
QLI-EXTENDED4096 B8 B4068 B4 B16 BBulk key/ciphertext transfer

Opcode Definitions #

OpcodeNameDirPacket TypeDescription
0x01WRITE_REGH→QSHORTWrite 32-bit value to MMIO register
0x02READ_REGH→QSHORTRequest register read
0x03READ_RSPQ→HSHORTRegister read response with data
0x10DATA_WRITEH→QSTD/EXTBulk write to SRAM (public key, seed)
0x11DATA_READH→QSHORTRequest bulk SRAM read
0x12DATA_RSPQ→HSTD/EXTBulk read response with data
0x20CMD_DISPATCHH→QSHORTSubmit ML-KEM operation
0x21CMD_COMPLETEQ→HSHORTOperation completion notification
0x30CREDIT_UPDATEBothSHORTCredit return (piggyback or dedicated)
0xF0LINK_MGMTBothSHORTTraining, power state transitions

Credit-Based Flow Control #

Credit Flow Control Protocol:

  Host                                    QCORE-C1
    │                                        │
    │──── LINK_MGMT(credits=32) ───────────→│  Initial credit exchange
    │←─── LINK_MGMT(credits=32) ────────────│  at link-up
    │                                        │
    │──── DATA_WRITE (credit−1) ───────────→│  Each TX consumes 1 credit
    │──── DATA_WRITE (credit−1) ───────────→│
    │                                        │
    │←─── CREDIT_UPDATE(+2) ────────────────│  Receiver returns credits
    │                                        │  as buffers are freed
    │──── CMD_DISPATCH (credit−1) ─────────→│
    │                                        │
    │←─── CMD_COMPLETE ─────────────────────│  Completions are
    │←─── CREDIT_UPDATE(+1) ────────────────│  credit-free (reserved pool)
ParameterValueNotes
Initial credits32Exchanged during CONFIG phase of link training
Max credits2558-bit counter per direction
Credit granularity1 packetRegardless of packet size (SHORT/STD/EXT)
Stall behaviorTX blockedTransmitter pauses until credit received
Credit timeout1 msLink error if no credits returned within timeout

Integrity Verification #

CRC-32 (mandatory, all packets): Polynomial 0x04C11DB7 (IEEE 802.3). Computed over header + payload bytes. Appended as 4-byte little-endian trailer. Detects all burst errors ≤32 bits.

KMAC-128 (optional, QLI-EXTENDED): NIST SP 800-185 KMAC with customization string "QLI-v0.1". 128-bit MAC appended after CRC-32. Per-session key derived during link training via Keccak-based key agreement. Required for all transfers containing secret key material.

StateCodeTimeoutNext StateAction
RESET0x00—DETECTPOR complete, release RESET_N
DETECT0x011 μsPOLLINGDetect partner presence via TX/RX activity
POLLING0x0210 μsTRAININGLock PLL to received clock, verify frequency
TRAINING0x0350 μsCONFIGSend/receive PRBS-7 pattern, measure BER
CONFIG0x0410 μsACTIVEExchange credits, negotiate packet sizes
ACTIVE0x05——Normal operation, LINK_UP asserted