Aufbau eines Breitband-SDR-Frontends: Signalkette vom ADC zum FPGA
Das Kernprinzip von Software Defined Radio (SDR): Das HF-Signal so früh wie möglich digitalisieren und die Signalverarbeitung dem FPGA überlassen. Eine typische Breitband-SDR-Frontend-Kette lautet: Antenne → LNA → Mischer → ADC → FPGA (DDC + FFT + Demodulation). In dieser Kette bestimmen FPGA-Transceiver-Bandbreite, DDR-Pufferung und DSP-Leistung, welche momentane Bandbreite Sie erreichen.
1. SDR-Frontend-Signalkette
Eine vollständige Breitband-SDR-Empfangskette:
1. Antenne + HF-Frontend: Empfang von Funksignalen, Verstärkung durch LNA, Bandpassfilterung.
2. Mischung / Direktabtastung: entweder Down-Mischen auf ZF dann Abtastung, oder direkte HF-Abtastung (Breitband-ADC abtastet DC~6 GHz).
3. ADC-Abtastung: Analoges Signal digitalisieren, JESD204B-Seriendaten ausgeben.
4. FPGA-Verarbeitung: JESD204B empfangen → DDC (digitale Abwärtsmischung) → FFT / Demodulation → über PCIe zum Host übertragen.
Der FPGA übernimmt in dieser Kette drei Aufgaben: Hochgeschwindigkeits-Seriendaten aufnehmen, Echtzeit-digitale Abwärtsmischung durchführen und Daten über PCIe zum Host übertragen. Diese drei Aufgaben bestimmen die FPGA-Auswahl.
2. Berechnung der momentanen Bandbreite
Die wichtigste SDR-Kennzahl ist die momentane Bandbreite (Instantaneous Bandwidth, IBW) — die Bandbreite, die der FPGA nach der ADC-Abtastung in Echtzeit verarbeiten kann.
| Kennzahl | Formel | Beispiel (AD9680 14-Bit 1 GSPS) |
|---|---|---|
| ADC-Abtastrate | f_s | 1 GSPS |
| Theoretische Nyquist-Bandbreite | f_s / 2 | 500 MHz |
| DDC-Ausgangsbandbreite | f_s / Decimation | dec=4 → 125 MHz |
| JESD204B-Lane-Rate | f_s × 14 Bit × Rahmen-Overhead | ≈ 10,24 Gbps/Lane |
| FPGA-Transceiver-Paare | Lanes pro ADC | AD9680 → 4 Lanes |
Bandbreitenbudget-Beispiel
Projektanforderung: 100 MHz momentane Bandbreite, Doppelkanal-ADC.
- ADC: AD9680 (14-Bit, 1 GSPS, JESD204B), 4 Lanes pro Kanal @ 10,24 Gbps.
- Zwei ADC-Kanäle: benötigt 8 Transceiver-Paare.
- Datenrate nach DDC: 100 MHz × 2 Kanäle × 16 Bit (I/Q) = 3,2 GB/s.
- PCIe Gen2 x8 theoretische Bandbreite ≈ 3,2 GB/s → voll ausgelastet, Puffer erforderlich.
- Fazit: DUK7410T wählen (8× GTP + PCIe Gen2 x8) reicht gerade, aber DMA-Ping-Pong-Pufferung erforderlich.
3. FPGA-seitiger Ressourcenbedarf
SDR-Frontend-FPGA-Ressourcenbedarf:
| Ressource | Zweck | Typischer Bedarf (2×100 MHz IBW) |
|---|---|---|
| Hochgeschwindigkeits-Transceiver | JESD204B-RX + PCIe-Upload | 8 (ADC) + 4 (PCIe) = 12 Paare |
| DSP-Slice | DDC-NCO + FIR-Filter + FFT | ~500~800 |
| BRAM | FIFO-Puffer + Ping-Pong | ~20~40 MB |
| DDR-Bandbreite | Großpuffer + PCIe-DMA | ≥ 5 GB/s |
| Logikelemente | JESD204B-IP + DDC + PCIe-DMA | ~100K~150K LC |
4. Board-Auswahl nach Szenario
Einsteiger: DUK7410T (¥9,999) — Einkanal-100-MHz-SDR
8× GTP reichen für eine AD9680-Mezzanine (4 Lanes), restliche 4 Paare für PCIe Gen2 x8. 4 GB DDR3 für Ping-Pong-Pufferung. Geeignet für Ausbildung, Einkanal-Spektrumsmessung.
Mainstream: DUF7690T (¥24,999) — Zweikanal-200-MHz-SDR
36× GTH @10,3G, zwei FMC-HPC für zwei ADC-Mezzanines. 3.600 DSP-Slices bewältigen 8-Kanal-DDC problemlos. PCIe Gen3 x8 verdoppelt die Bandbreite. Geeignet für Breitband-Spektrumsmessung, Prototypen für elektronische Gegenmaßnahmen.
High-End: XCKU15P (¥15,999) — Direkte-HF-Abtastung-SDR
GTY-28G-Transceiver unterstützen JESD204C-Lane-Rate 24 Gbps. 8 GB DDR4 ECC 19,2 GB/s. Geeignet für direkte HF-Abtastung (6-GHz-ADC), Mehrkanal-MIMO, Phased-Array-Prototypen.
5. Drei häufige Fallstricke
Fallstrick 1: JESD204B-Lane-Rate überschreitet Transceiver-Limit
AD9680 bei vollen 1 GSPS hat Lane-Rate ≈ 10,24 Gbps. DUK7410T GTP endet bei 6,6 Gbps — keine Verbindung möglich! Muss auf 250 MSPS heruntergesetzt werden (Lane-Rate ≈ 2,5 Gbps). Oder zu DUF7690T aufsteigen (GTH @10,3G).
Fallstrick 2: Unzureichende DDR-Bandbreite verursacht Datenverlust
Post-DDC-Daten von 3,2 GB/s müssen in DDR geschrieben und über PCIe ausgelesen werden. DDR3 14,9 GB/s reicht theoretisch, aber die tatsächliche Lese-/Schreibwechsel-Effizienz beträgt nur 60 % — ≈ 9 GB/s. Für Zweikanalbetrieb sorgfältig berechnen; reicht nicht, auf DDR4 aufsteigen.
Fallstrick 3: Takt nicht ausgerichtet, JESD204B sperrt nicht
JESD204B erfordert Device Clock + SYSREF-Ausrichtung. Der ADC-Mezzanine-Takt muss über den FMC-CLK0-Pin zu den FPGA-MRCC/SRCC-Global-Takteingängen geführt werden. Ist das PCB-Routing falsch, hilft auch der teuerste Chip nicht.
Beim SDR-Frontend geht es nicht um den teuersten FPGA, sondern um die korrekte Berechnung von ADC-Lane-Rate, momentaner Bandbreite, DDR-Pufferung und PCIe-Upload. Drei Berechnungen — Transceiver-Paare, DSP, DDR-Bandbreite — und die Board-Wahl ergibt sich von selbst.
