![]() |
|
|
Despre FPGA-uri și radioamatorismPartea a II-a — Ghid practic
https://www.alauda.ro
Articol în două părți adresat radioamatorilor care doresc să exploreze lumea FPGA, de la alegerea plăcii de
dezvoltare până la instrumentele software disponibile. Aceasta este partea a doua și ultima. Un FPGA (Field-Programmable Gate Array) este un circuit integrat al cărui comportament hardware poate fi
definit și redefinit prin programare. Spre deosebire de un microcontroler care execută instrucțiuni secvențial,
FPGA-ul implementează logică paralelă: poți construi simultan un contor de frecvență, un filtru digital și un
generator de semnal, toate funcționând în paralel, la viteze de zeci sau sute de megaherți. Pentru radioamatori, această caracteristică este extrem de valoroasă. Procesarea digitală a semnalelor radio
(DSP) implică operații repetitive, cu latență redusă, care beneficiază enorm de paralelism hardware. Un receptor
SDR simplu, un analizor de spectru FFT sau un modem APRS implementat în FPGA vor funcționa net superior față de
o soluție software pe un procesor general. Înainte de a discuta despre plăci, este util să înțelegem ce fel de proiecte sunt realistice, clasificate pe
niveluri de complexitate: Piața plăcilor de dezvoltare FPGA este dominată de trei ecosisteme majore: Intel (Altera),
AMD (Xilinx) și Lattice Semiconductor. Fiecare are propriul lanț de
instrumente software, propriile convenții de proiectare și o comunitate distinctă. Alegerea plăcii înseamnă,
implicit, alegerea ecosistemului.
Terasic este principalul producător de plăci de evaluare cu FPGA-uri Intel (fostul Altera). Instrumentul de
dezvoltare este Quartus Prime. Digilent este principalul producător de plăci cu FPGA-uri AMD (fostul Xilinx). Instrumentul de dezvoltare este
Vivado sau Vitis.
Lattice Semiconductor oferă FPGA-uri de capacitate mică și medie, cu un avantaj major: există un lanț de
instrumente complet open-source (Yosys + nextpnr + Project IceStorm / Project Trellis), ceea ce
le face preferate de comunitatea maker și de cei care evită software proprietar de câteva zeci de GB. Un sfat important, din propria experiență: nu începeți cu
achiziționarea unei plăci. Primele proiecte vor fi inevitabil rudimentare, iar riscul demotivării
este real. Instalați mai întâi un mediu de simulare gratuit (Quartus Prime Lite sau Vivado ML Edition sunt
gratuite pentru dispozitivele de capacitate medie), experimentați cu simulări, și abia după ce v-ați
familiarizat cu limbajele HDL (VHDL sau Verilog) și cu conceptele de bază, achiziționați o placă. Când vine momentul achiziției, ghidați-vă după aceste criterii: Achiziționarea unei plăci de dezvoltare FPGA este o investiție în educație, nu o cheltuială. Pe
termen lung, competențele dobândite sunt direct aplicabile. Atât în proiecte radio avansate, de la receptoare
digitale până la transceivere software-defined complete, dar poate deveni o profesie extrem de bine plătită. Această secțiune compară trei plăci reprezentative din ecosistemele Intel și AMD/Xilinx, acoperind un spectru
larg de prețuri și capabilități: Terasic DE10-Lite (~675 RON), Digilent Arty
A7 (35T ~700–900 RON, 100T ~900–1.200 RON) și Digilent Arty Z7-20 (~1.346 RON).
Comparația este orientată exclusiv spre proiectele radio descrise în Partea I, de la contoare simple până la
receptoare SDR. DE10-Lite și Arty A7 sunt plăci FPGA pure — conțin exclusiv fabric programabil,
fără procesor integrat.
Arty Z7-20 face un pas calitativ diferit: conține un SoC Zynq-7020, adică un FPGA Artix-7
combinat cu un procesor ARM Cortex-A9 dual-core pe același chip. Aceasta nu este doar o diferență cantitativă,
ci una arhitecturală: Arty Z7-20 poate rula Linux și permite combinarea procesării hardware (FPGA) cu procesarea
software (ARM), un model utilizat în receptoarele SDR profesionale. DE10-Lite folosește un Intel MAX 10 10M50DAF484C7G. Familia MAX 10 este
non-volatilă: configurația se păstrează în flash intern și nu necesită reîncărcare la fiecare
pornire. Placa pornește imediat cu ultimul design programat. MAX 10 include și ADC-uri analogice
integrate (două blocuri ADC de 12 biți, 8 canale total), ceea ce o face unică în această comparație
pentru achiziția directă a semnalelor analogice fără hardware extern. Instrumentul de dezvoltare este
Quartus Prime Lite (gratuit).
Arty A7-35T / A7-100T folosesc Xilinx Artix-7 (SRAM-based, necesită reîncărcare
la pornire). Artix-7 dispune de blocuri DSP48E1 dedicate (multiplicatoare 18×25 biți cu
acumulator și cascadare), semnificativ mai performante decât blocurile DSP ale MAX 10 pentru filtre FIR lungi,
FFT și DDS. Diferența dintre 35T (90 blocuri DSP, 33k LUT) și 100T (240 blocuri DSP, 101k LUT) este substanțială
pentru proiectele radio avansate. Instrumentul de dezvoltare este Vivado ML Edition (gratuit
pentru seria 7). Arty Z7-20 folosește un Xilinx Zynq-7020 SoC: fabric FPGA echivalent
cu un
Artix-7 XC7A85T (85k LUT, 220 blocuri DSP48E1) combinat cu un procesor ARM Cortex-A9 dual-core la 667
MHz, memorie cache dedicată, controler DDR3 și periferice hard (Ethernet, USB, SPI, I2C, UART)
integrate în silicon, nu în fabric FPGA. Programarea Zynq implică două domenii distincte: PS
(Processing System — ARM) și PL (Programmable Logic — FPGA), care comunică printr-un bus
AXI1 de mare viteză. Instrumentul de dezvoltare este
Vivado + Vitis (varianta este gratuită pentru acest tip de FPGA). O observație importantă privind Arty Z7-20: XADC-ul (Xilinx/AMD on-chip analog-to-digital
converter) integrat în Zynq are doar 2 canale diferențiale de intrare
accesibile pe pinii plăcii (față de cele 8 canale de pe DE10-Lite), dar este suficient pentru aplicații radio de
bază la frecvențe joase (sub 500 kHz). Pentru achiziție la frecvențe mai mari, ambele plăci necesită un
front-end extern (PMOD ADC sau modul SDR dedicat — vezi aici https://digilent.com/reference/pmod/ DE10-Lite are 64 MB SDRAM SDR, cu lățime de bandă ~200–300 MB/s. Suficient pentru un buffer FFT
de 4k–16k puncte sau pentru un decodor CW, dar insuficient pentru capturi lungi de IQ sau istoric
waterfall
extins. Arty A7 (ambele variante) are 256 MB DDR3L cu lățime de bandă ~800 MB/s–1 GB/s. Accesul se face
prin MIG (Memory Interface Generator) din Vivado, cu o configurare inițială mai complexă, dar cu performanță net
superioară. Potrivit pentru buffere mari de date IQ și waterfall cu rezoluție înaltă. Arty Z7-20 are 1 GB DDR3, partajat între procesorul ARM (PS) și fabric-ul FPGA (PL)
prin porturi AXI. Aceasta este cea mai generoasă configurație de memorie din comparație și, crucial,
procesorul ARM
poate accesa aceeași memorie ca și logica FPGA. Pentru un receptor SDR, aceasta înseamnă că FPGA-ul
poate scrie samplerele IQ direct în DDR3, iar ARM-ul le poate procesa imediat în software (Python, GNU Radio,
C++), fără a muta datele printr-o interfață externă. Gigabit Ethernet de pe Arty Z7-20 este o diferență calitativă față de celelalte plăci: este implementat ca hard
IP în procesorul ARM (PS), nu prin fabric FPGA, ceea ce înseamnă că funcționează independent de
proiectul FPGA
și poate fi folosit direct din Linux pentru streaming de date IQ, control remote sau integrare cu GNU Radio. HDMI-ul de pe Arty Z7-20 este, de asemenea, un avantaj pentru proiecte de vizualizare: un analizor de spectru
waterfall poate genera imaginea în FPGA și o poate afișa direct pe un monitor HDMI, fără module externe. DE10-Lite folosește exclusiv Quartus Prime Lite. Fluxul de lucru este liniar și
mai ușor de asimilat: sinteză → place-and-route → programare. Instrumentul SignalTap II este inclus și
funcționează excelent pentru debugging în chip. Suportul nativ pentru ADC-ul MAX 10 (IP core ADC Intel)
simplifică achiziția analogică. Dezavantaj: nu există mediu de programare software (nu există procesor ARM pe
care să rulezi cod). Arty A7 folosește Vivado ML Edition. IP core-urile DSP (FIR Compiler, DDS
Compiler, FFT) sunt superioare calitativ față de echivalentele Quartus. Documentația Digilent este excelentă.
Dezavantaj similar cu DE10-Lite: nu există procesor integrat, deci tot ce rulezi pe placă trebuie implementat în
hardware HDL. Arty Z7-20 folosește Vivado + Vitis. Vivado gestionează logica FPGA (PL), Vitis
gestionează software-ul ARM (PS). Configurarea inițială a unui proiect Zynq este semnificativ mai complexă:
trebuie definit blocul PS în Vivado IP Integrator, exportat hardware-ul în Vitis, și scris codul C/C++ sau
configurat Linux (prin PetaLinux sau Yocto). Odată depășită această curbă de învățare inițială, flexibilitatea
este remarcabilă: poți rula GNU Radio pe ARM și procesa semnalele IQ produse de fabric-ul FPGA în timp
real. Cele trei plăci diferă nu doar în capabilități hardware, ci și în complexitatea pe care o impun proiectantului:
DE10-Lite are cea mai blândă curbă de învățare. Tot ce implementezi este în HDL (VHDL sau
Verilog), fără concepte software suplimentare. Quartus Prime Lite este mai compact și mai direct decât Vivado.
Eu îl recomand pentru primele 6–12 luni de lucru cu FPGA. Sau, cel puțin, până stăpâniți niște concepte de bază
și fluxul de lucru standard. Arty A7 adaugă complexitatea Vivado față de Quartus, dar rămâne în paradigma FPGA pur. IP
Integrator și FIR Compiler sunt mai complexe de configurat decât echivalentele Quartus, dar
documentația Digilent (EXCELENTĂ !!!) compensează. Potrivit după acumularea unor baze solide cu Quartus sau
direct, dacă utilizatorul are experiență cu Xilinx. Arty Z7-20 introduce o complexitate suplimentară substanțială: pe lângă HDL pentru PL,
utilizatorul trebuie să înțeleagă arhitectura PS-PL, să configureze blocul PS în Vivado, să scrie drivere sau
aplicații în C/C++ în Vitis, și opțional să configureze Linux (PetaLinux). Aceasta este o investiție de timp
semnificativă, dar deschide posibilități care nu există pe celelalte plăci: rularea GNU Radio, interfațarea cu
Python, stocarea datelor pe SD card, accesul prin SSH la placă. Nu este recomandată ca primă placă FPGA, dar
este destinația naturală pentru un radioamator care a epuizat capabilitățile plăcilor FPGA pure. A fost alegerea
mea.
Sistemul meu Arty Z7 de la Digilent, o placă de dezvoltare bazată pe un FPGA Zynq-7020 CLG 400, și cu un procesor ARM Cortex-A9 dual-core 667 MHz; ~85.000 LUT (PL), 220 DSP48E1 (18×25), 4.900 Kb BRAM intern și 1 GB DDR3 (512 MB PS + 512 MB PL) DRAM extern. Am achiziționat-o de la Mouser și am ales-o în principal datorită oportunităților deosebite pe care le oferă. Se observă header-ul compatibil Arduino (cele două rânduri de contacte din partea central-dreaptă a imaginii) și conectorii PMOD, pentru accesorii (marginea de sus, dreapta). Digilent oferă o gamă extinsă de plăci de expansiune (PMOD). Vezi text.
DE10-Lite este alegerea potrivită dacă: Arty A7-35T este alegerea potrivită dacă: Arty A7-100T este o treaptă superioară față de 35T, cu triplu număr de LUT și blocuri DSP.
Merită luat în considerare direct dacă bugetul permite, deoarece elimină practic toate limitările pentru FFT și
SDR la nivel de FPGA pur. Arty Z7-20 este alegerea potrivită dacă: Din perspectiva unui radioamator care pornește de la zero și vrea să ajungă la un receptor SDR funcțional,
traseul natural este: DE10-Lite (fundamente HDL, proiecte nivel 1–2) → Arty
A7-100T (proiecte DSP avansate, FFT, filtre) → Arty Z7-20 (receptor SDR
complet cu procesare software). Nu este obligatoriu să parcurgi toate etapele — dacă ai experiență
software solidă și vrei să sari direct la SDR, Arty Z7-20 este o țintă validă de la început, cu condiția
acceptării curbei de învățare mai abrupte.
În această ultimă secțiune mă voi concentra exclusiv pe cele mai populare platforme de dezvoltare și nu voi mai
aminti alternativele OpenSource.
Alegerea plăcii de dezvoltare determină automat ecosistemul software. Nu există compatibilitate încrucișată: un
design compilat cu Quartus pentru un FPGA Intel nu poate fi sintetizat cu Vivado pentru un FPGA Xilinx, și
viceversa. Codul HDL (VHDL sau Verilog/SystemVerilog) este portabil, dar proiectele de nivel superior
(constraint files, IP cores, timing analysis) sunt specifice toolchain-ului. Această secțiune compară cele două
instrumente principale din perspectiva unui radioamator avansat. Quartus Prime este instrumentul de sinteză și implementare al Intel pentru FPGA-urile Altera. Există trei ediții:
Intel Quartus Prime - interfața pentru configurarea unui sistem NIOS, un procesor tip SoC (System On a Chip), parte a unui proiect mai vechi. Aici se observă configurarea magistralelor de tact (clock busses). Atât în Quartus cât și în Vivado, configurarea IP-urilor se poate face atât vizual, în UI, cât și în cod HDL. Quartus e rapid, compact și oferă o curbă mult mai lentă de învățare.
Vivado este suita de proiectare AMD pentru FPGA-urile Xilinx din generația 7 și ulterioare (Artix-7, Kintex-7,
Virtex-7, Zynq-7000, UltraScale). Există două ediții relevante pentru hobbyiști:
AMD Vivado - interfața grafică a unui proiect în curs de realizare. În partea stângă se observă secțiunile procedurale (compilare/ integrare - sinteză - implementare - programare). Personal, după o experiență prealabilă cu platforma de la Altera, Quartus Prime, Vivado mi se pare o suită mult mai matură și mai completă, deși extrem de voluminoasă și dificil de învățat.
AMD a extins ecosistemul Xilinx cu două instrumente adiționale relevante pentru proiectele radio avansate: Vitis este un IDE unificat pentru programarea dispozitivelor Xilinx heterogene (FPGA + ARM + AI
Engine). Dacă Vivado gestionează logica FPGA, Vitis gestionează software-ul care rulează pe procesoarele ARM din
Zynq sau pe motoarele AI din Versal. Pentru radioamatori care lucrează cu Zynq (cum ar fi Arty Z7-20), Vitis
simplifică scriere de drivere bare-metal sau Linux pentru a comunica cu logica FPGA de procesare radio.
Vitis include și suport pentru Vitis HLS (High-Level Synthesis), care permite scrierea algoritmilor DSP
în
C/C++ și sinteza lor automată în FPGA — o alternativă viabilă pentru radioamatorii/ programatorii care
preferă C față de VHDL/Verilog. Aici nu știu ce să zic. Este tentant să alegi un limbaj de programare familiar,
dar mie mi se pare mult mai complicat de scris un DSP în C decât în HDL. De gustibus. Un mare avantaj al
ecosistemului FPGA este oferta IP-urilor. Aceste nuclee de calitate industrială, prestabilite, incluse în
pachet, pot oferi o implementare aproape la cheie a unui DSP extrem de performant doar cu configurare în UI. Versal este o platformă hardware distinctă, nu doar software. Eu de-abia acum încep să fac
primii pași în acest univers Versal și nu mi se pare deloc simplu. Dispozitivele Versal (ACAP —
Adaptive Compute Acceleration Platform) combină FPGA fabric, procesoare ARM, motoare AI
dedicate și
blocuri NoC de mare viteză. Nu sunt relevante pentru un hobbyist la nivelul plăcilor discutate în acest articol,
dar reprezintă direcția în care se îndreaptă industria. Toolchain-ul Versal este complet diferit de Vivado
clasic și presupune un nivel de complexitate semnificativ mai mare.
Dacă lucrezi cu DE10-Lite, nu ai de ales: Quartus Prime Lite este singurul instrument
compatibil. Vestea bună este că Quartus este complet suficient pentru toate proiectele de nivel 1 și 2 descrise
în Partea I, și chiar pentru unele de nivel 3 (analizor de spectru de dimensiuni moderate, receptor SDR simplu).
Dacă lucrezi cu Arty A7, Vivado este alegerea naturală. IP core-urile DDS Compiler și FIR
Compiler de la Xilinx sunt superioare și documentate extensiv. Notele de aplicație de la AMD pentru SDR sunt
resurse valoroase. Dacă vrei să implementezi un receptor SDR complet cu procesare offline pe ARM, Vivado combinat
cu Vitis pe un Zynq (Arty Z7-20) oferă cel mai complet lanț de instrumente. Poți scrie algoritmul de demodulare
în C, sintetiza filtrul FIR și DDS în FPGA, și gestiona interfața dintre ele prin Vivado IP Integrator. Un sfat practic: indiferent de toolchain, folosiți simularea extensivă înainte de a
sintetiza și a programa placa. Atât Quartus (cu ModelSim-Intel) cât și Vivado (cu Xsim) includ simulatoare.
Pentru un filtru FIR destinat demodulării AFSK, de exemplu, simularea cu un semnal de test generat în Python și
exportat ca fișier de stimuli în VHDL este mult mai rapidă și mai informativă decât debugging-ul direct pe
hardware. Merită menționat că există o a treia cale: toolchain-ul complet open-source Yosys + nextpnr,
compatibil cu FPGA-urile Lattice (iCE40 și ECP5) și parțial cu unele FPGA-uri Xilinx (prin Project X-Ray). Dacă
folosești un iCEBreaker sau ULX3S, poți sintetiza, plasa și ruta designul fără niciun instrument proprietar,
folosind doar instrumente libere disponibile pe Linux, macOS sau Windows. Aceasta este o opțiune excelentă
pentru radioamatorii care preferă controlul complet al lanțului de instrumente și nu doresc să instaleze 50+ GB
de software proprietar.
Sper ca această scurtă introducere în lumea incredibilă a procesoarelor reprogramabile să fi avut măcar harul de a stârni curiozitatea. Este un domeniu extrem de vast, dar și extrem de interesant. Eu am fost atras de libertatea și controlul absolute pe care ți le oferă dezvoltarea în cod HDL. Filosofia este total diferită față de cea cu care am fost ani de zile obișnuit. Există în aceste două articole suficiente informații pentru a permite cuiva pasionat să meargă mai departe. "Amateurfunk — mehr als ein Hobby. Ein Beruf." - radioamatorismul e mai mult decât un hobby, e o profesie. Spunea un afiș DARC, la Friedrichshafen. Și cred că fraza asta rezumă esența oricărui hobby: o pasiune de timp liber poate deveni baza unei profesii viitoare.
Sunt, de asemenea, conștient de faptul că mulți radioamatori nu consideră aceste informații ca fiind de interes și le descalifică aprioric din tagma ocupațiilor reunite clasic sub denumirea de radioamatorism. Desigur, nimic rău în asta. Nu e nimic rău în a cumpăra o stație și de a face doar ragchew în eter, discuții cu amicii, de a vâna contacte și de a participa la concursuri. Am fost mereu de părere că orice activitatea din timpul liber trebuie să fie, în primul rând, recreațională, să te relaxeze și să te facă să te simți bine, dacă nu neapărat mai bun.
Dar eu am fost mereu atras să înțeleg de ce, de ce anumite lucruri funcționează sau funcționează într-un anumit mod. Să înțeleg ce se întâmplă cu adevărat în mintea unui om, în corpul unui pacient sau, de cealaltă parte, în circuitele dintre baterie și antenă — toate mă atrag infinit mai mult decât un concurs radio sau activarea unui parc. Nimic rău nici în asta, nici în cealaltă. Demonstrează complexitatea firilor, aspirațiilor și plăcerilor noastre. Astfe, proiectarea, construcția, experimentul și analiza m-au atras mereu mult mai mult decât alte activități conexe. Totuși, după acești ani de radioamator sunt convins că adevărata valoare a radioamatorismului sau a oricărui alt hobby nu stă nepărat în caracteristica lor recreațională ci în potențialul lor educațional. Din păcate, pentru asta se face foarte puțin. "Din păcate", pentru că educația este singurul lucru care ne poate face mai buni.
Articole compilate din surse tehnice publice, fișe de date producători și experiența comunității de
radioamatori. Prețurile sunt orientative și pot varia în funcție de distribuitor și perioadă. Verificați
întotdeauna disponibilitatea și prețul curent la distribuitori autorizați.
1
În contextul Xilinx (acum AMD), porturile AXI (Advanced eXtensible Interface) reprezintă interfețele standard de
comunicare folosite pentru a conecta diferite blocuri de proprietate intelectuală (IP) în cadrul unui design pe
FPGA sau SoC (cum ar fi Zynq sau Versal)
2
BRAM înseamnă Block Random Access Memory (sau Block RAM) și este un tip de memorie dedicată, integrată direct pe
cipul unui FPGA (Field Programmable Gate Array)
Articol aparut la 14-4-2026 1024 Inapoi la inceputul articolului | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comentariul trebuie sa se refere la continutul articolului. Mesajele anonime, cele scrise sub falsa identitate, precum si cele care contin (fara a se limita la) atac la persoana, injurii, jigniri, expresii obscene vor fi sterse iar dupa caz se va ridica dreptul de a posta comentarii.
| |||||
|
Copyright © Radioamator.ro. Toate drepturile rezervate. All rights reserved
Articole | Concursuri | Mica Publicitate | Forum YO | Pagini YO | Call Book | Diverse | Regulamentul portalului | Contact |