Despre FPGA-uri: Diferență între versiuni

De la YO3ITI
Sari la navigare Sari la căutare
 
(Nu s-au afișat 43 de versiuni intermediare efectuate de același utilizator)
Linia 5: Linia 5:


Nu în ultimul rând trebuie menționat că există pe piața producătorilor de FPGA jucători mai mici decât [https://www.intel.com/content/www/us/en/products/programmable.html Intel] (fost Altera) și [https://www.xilinx.com Xilinx]. [http://www.latticesemi.com/ Lattice], de pildă, este specializat pe nișa circuitelor cu logică programabilă compacte, pentru dispozitive mobile și dedicate DSP ceea ce le face să fie foarte atrăgătoare pentru multe proiecte de radioamatorism care nu necesită complexitatea unor circuite cu foarte multe circuite logice.
Nu în ultimul rând trebuie menționat că există pe piața producătorilor de FPGA jucători mai mici decât [https://www.intel.com/content/www/us/en/products/programmable.html Intel] (fost Altera) și [https://www.xilinx.com Xilinx]. [http://www.latticesemi.com/ Lattice], de pildă, este specializat pe nișa circuitelor cu logică programabilă compacte, pentru dispozitive mobile și dedicate DSP ceea ce le face să fie foarte atrăgătoare pentru multe proiecte de radioamatorism care nu necesită complexitatea unor circuite cu foarte multe circuite logice.
==Toolchains — Suite de dezvoltare==
'''8/02/2026'''


Cred că cel mai bun echivalent în limba română pentru ''toolchains'' este ''suite de dezvoltare'' sau ''instrumente de dezvoltare'' și reprezintă un ansamblu de instrumente a căror utilizare permite realizarea unor aplicații de la cap la coadă.
'''1/11/2026'''
Aceste pagini reprezintă o colecție de informații obținute din diverse experimente personale. Deoarece volumul de informații a crescut, pe 1 noiembrie 2026 le-am organizat mai structurat, pe domenii de experimente.  


Personal prefer termenul de ''suite de dezvoltare'' deoarece este mai ilustrativ pentru imaginea unui grup de aplicații și alte instrumente, hardware și software, care conlucrează pentru realizarea produsului finit.
==Tutoriale==
Documente complete și consistente despre diverse subiecte, orientate strict către activitea practică.


Cel mai mult am lucrat cu Quartus Prime de la Altera (Intel a re-promovat recent brand-ul '''Altera''' pentru divizia sa de circuite programabile). Nu am deloc experiență cu platformele similare de la Xilinx ([https://www.xilinx.com/support/download.html Vivado] & co.) sau Lattice ([https://www.latticesemi.com/icecube2 IceCube2]). Dar diferențele nu trebuie să fie mari, poate diferă doar anumite detalii de implementare a unor funcționalități specifice. Indiferent de platformă (Intel-Altera, AMD-Xilinx sau Lattice etc) toate trec obligatoriu prin aceleași etape:
* [[FPGA Toolchains — Suite de dezvoltare: TerosHDL|Toolchains — Suite de dezvoltare FPGA]] — în aceste pagini sunt informații despre diverse suite de dezvoltare care pot fi utilizate pe diverse platforme. Aici se găsesc și informații despre setarea mediului TerosHDL pentru dezvoltare HDL pe Mac.
#Design — Proiectare
* [[Comenzi TCL în Vivado]] — Informații despre documentația oficială AMD foarte detaliată pentru comenzile Tcl utilizate în Vivado Design Suite. Aceasta acoperă atât comenzile individuale, cât și programarea scripturilor pentru automatizarea proiectelor FPGA.  
#Sinteză
* [[Interfața Tcl în Vivado]] — Un tutorial tehnic, cu exemple Tcl executabile în Vivado și un studiu de caz pentru Arty Z7-20. Comenzile de interogare, modificarea proprietăților, constrângerile XDC și automatizarea fluxului de implementare sunt separate. Sintaxa e verificată în documentația AMD, în special acolo unde diferă între obiectele proiectului și obiectele designului.
#Plasare și rutare
* [[Copierea unui proiect vivado prin Tcl]]
#Analiza duratelor (timing analysis)
* [[Crearea unei imagini petalinux]]
#Programarea FPGA-ului
#Testarea și verificarea
 
Pentru Windows și Linux există instrumente care includ atât sinteza cât și plasarea și rutarea circuitelor. Pentru Mac nu există ''toolchain'' care să facă asta. Cel mai apropiat este TerosHDL, modul pentru Visual Studio Code. Recent l-am instalat și utilizat cu success, nu fără bătaie de cap. Mai jos sunt câteva lucruri de care trebuie ținut cont pentru o bună funcționare:
 
#Instalare edalize
#Instalare vunit
 
===Edalize===
Edalize este o bibliotecă Python pentru interacțiunea cu instrumente EDA. Poate crea fișiere-proiect pentru instrumentele suportate și le poate rula în mod batch sau GUI (acolo unde modul GUI este suportat). Aici este [https://github.com/olofk/edalize pagina github pentru edalize] iar aici un link direct către un [https://github.com/olofk/edalize?tab=readme-ov-file#edalize fișier README]
 
===Vunit===
VUnit is an open source unit testing framework for VHDL/SystemVerilog. It features the functionality needed to realize continuous and automated testing of your HDL code.
[https://github.com/VUnit/vunit ]
[https://github.com/VUnit/vunit?tab=readme-ov-file#vunit fișier README]


==Documentație==
==Documentație==
Informații disparate, fragmentate, adunate din diverse surse și nestructurate. E o colecție de informații realizată drept ''aide mémoire'', ca să-mi amintesc anumite noțiuni.
* [[Comparație între diverse plăci de dezvoltare cu FPGA|Comparație între diverse plăci de dezvoltare cu FPGA]]
* [[Comparație între diverse plăci de dezvoltare cu FPGA|Comparație între diverse plăci de dezvoltare cu FPGA]]
* [[Digilent Arty A7-100T vs Arty Z7 (Zynq-7000 Z7020)|Comparație între Digilent Arty A7-100T și Arty Z7 (Zynq-7000 Z7020)]]
* [[Bazele arhitecturii FPGA pentru începători|Bazele arhitecturii FPGA presupunând că ești un începător]]
* [[Ce este conceptul de "hardware lichid"|Ce face conceptul de „hardware lichid” atât de special?]]
* [[Proiecte FPGA pentru radioamatori]]
==Utile==
* [[Extragerea unei partiții rootfs din imaginea petalinux]]
* [[Montare rapidă a card-ului SD pentru imaginea petalinux]]


==Exemple==
==Exemple==
Linia 40: Linia 34:
* [[Divizor cu 16]] – [[Verilog]]
* [[Divizor cu 16]] – [[Verilog]]
* [[Sincronizare verticală pentru semnal video]] – [[Verilog]]
* [[Sincronizare verticală pentru semnal video]] – [[Verilog]]
* [[Porți logice]] - [[Verilog]]


==Cursuri recomandate==
==Cursuri recomandate==
Linia 52: Linia 47:
* [https://www.fpgarelated.com/showthread/comp.arch.fpga/51980-1.php Hilbert Transform in verilog or VHDL]
* [https://www.fpgarelated.com/showthread/comp.arch.fpga/51980-1.php Hilbert Transform in verilog or VHDL]
* [https://www.intel.com/content/www/us/en/programmable/quartushelp/17.0/reference/glossary/glosslist.htm Glosar termeni Intel]
* [https://www.intel.com/content/www/us/en/programmable/quartushelp/17.0/reference/glossary/glosslist.htm Glosar termeni Intel]
Vezi și aceste două articole publicate pe [https://www.radioamator.ro radioamator.ro]:
* [https://www.radioamator.ro/articole/view.php?id=1397 Despre FPGA-uri și radioamatorism - partea I]
* [https://www.radioamator.ro/articole/view.php?id=1404 Despre FPGA-uri și radioamatorism - partea a II-a]
[[Category:FPGA]]

Versiunea curentă din 5 noiembrie 2026 16:47

Recent m-a cuprins "febra" circuitelor reprogramabile. Pentru cei mai puțin familiarizați cu acest domeniu, un circuit reprogramabil este compus dintr-un număr foarte mare de porți logice care se pot interconecta prin programarea unor conexiuni la nivelul matricei de siliciu. Programarea se face cu ajutorul unor platforme dedicate și printr-un limbaj cu care se poate proiecta un circuit la nivel hardware – HDL. Interconectarea suportă un număr aproape infinit de configurații. Astfel se poate proiecta la nivel hardware o configurație completă de porți logice care, împreună, generează o anumită funcționalitate. Marele avantaj este că, spre deosebire de circuitele cu logică predefinită, configurația unui circuit programabil poate fi modificată hardware prin... software. Circuitele cu logică [re]programabilă au mai multe avantaje, dar cele mai importante sunt cele legate de timpul și costul de implementare. De pildă, costurile de producție ale unui circuit specializat (ASIC – Application Specific Integrated Circuit) sunt de ordinul milioanelor de dolari din cauză că producția matricei de siliciu este foarte scumpă. În cazul unor erori, această matrice practic se aruncă la coș și trebuie luat totul de la capăt. Aceeași logică poate fi creată într-un circuit cu logică programabilă iar, în cazul unor erori, pur și simplu trebuie doar schimbat codul software care definește partea de hardware. Avantajul este evident. Din seria circuitelor cu logică programabilă, cele mai importante sunt CPLD-urile (Complex Programmable Logic Device[s]) și FPGA-urile (Field Programmable Graphic Arrays). Sunt mai multe diferențe între cele două categorii, dar principala diferență funcțională este că FPGA-urile au nevoie de o memorie externă (poate fi chiar un microcontroller) pentru a stoca configurația, care se încarcă în circuit la pornire. Pentru mai multe detalii aici, în secțiunea "Features".

În radioamatorism, FPGA-urile reprezintă alegerea ideală pentru o serie de proiecte care implică procesarea digitală a semnalelor. Se pot realiza arhitecturi DSP complexe cu un efort de programare mult mai mic decât în cazul DSP-urilor dedicate (care necesită cunoștințe serioase de C sau C++). Există, evident, un compromis între gradul de complexitate al circuitului și logicii sale și decizia de a alege între implementarea pe un FPGA sau pe un circuit DSP dedicat. Lărgimea de bandă pentru bus-ul de date este un factor determinant pentru alegere (mare = FPGA; mică–moderată = DSP). Decizia mai este ajutată și de oferta extrem de bogată de plăci de experimentare și prototipare cu FPGA-uri, cu prețuri extrem de avantajoase în comparație cu oferta similară pentru DSP-uri. Vezi, de pildă oferta de la Terasic și Digilent pentru plăci pe bază de FPGA-uri Intel (fost Altera) respectiv Xilinx.

Nu în ultimul rând trebuie menționat că există pe piața producătorilor de FPGA jucători mai mici decât Intel (fost Altera) și Xilinx. Lattice, de pildă, este specializat pe nișa circuitelor cu logică programabilă compacte, pentru dispozitive mobile și dedicate DSP ceea ce le face să fie foarte atrăgătoare pentru multe proiecte de radioamatorism care nu necesită complexitatea unor circuite cu foarte multe circuite logice.

1/11/2026 Aceste pagini reprezintă o colecție de informații obținute din diverse experimente personale. Deoarece volumul de informații a crescut, pe 1 noiembrie 2026 le-am organizat mai structurat, pe domenii de experimente.

Tutoriale

Documente complete și consistente despre diverse subiecte, orientate strict către activitea practică.

  • Toolchains — Suite de dezvoltare FPGA — în aceste pagini sunt informații despre diverse suite de dezvoltare care pot fi utilizate pe diverse platforme. Aici se găsesc și informații despre setarea mediului TerosHDL pentru dezvoltare HDL pe Mac.
  • Comenzi TCL în Vivado — Informații despre documentația oficială AMD foarte detaliată pentru comenzile Tcl utilizate în Vivado Design Suite. Aceasta acoperă atât comenzile individuale, cât și programarea scripturilor pentru automatizarea proiectelor FPGA.
  • Interfața Tcl în Vivado — Un tutorial tehnic, cu exemple Tcl executabile în Vivado și un studiu de caz pentru Arty Z7-20. Comenzile de interogare, modificarea proprietăților, constrângerile XDC și automatizarea fluxului de implementare sunt separate. Sintaxa e verificată în documentația AMD, în special acolo unde diferă între obiectele proiectului și obiectele designului.
  • Copierea unui proiect vivado prin Tcl
  • Crearea unei imagini petalinux

Documentație

Informații disparate, fragmentate, adunate din diverse surse și nestructurate. E o colecție de informații realizată drept aide mémoire, ca să-mi amintesc anumite noțiuni.

Utile

Exemple

Cursuri recomandate

Coursera

Vezi și aceste două articole publicate pe radioamator.ro: