categorii: Circuite de micro-controler
Număr de vizualizări: 21445
Comentarii la articol: 0

Ce este FPGA un limbaj simplu pentru începători

 

Cu ce ​​este asociată electronica digitală? În primul rând, cu elemente logice ȘI, SAU, NU. În plus, intră în memorie registrele de schimb, decodificatoarele, multiplexoarele etc. Cu toate acestea, pe măsură ce complexitatea dispozitivelor electronice și tendința spre miniaturizare cresc, crearea dispozitivelor bazate pe circuite integrate (CI) din componentele de mai sus a devenit mai dificilă, IC-urile personalizate ale topologiei și circuitelor necesare s-au dovedit a fi valabile doar atunci când dispozitivul a fost replicat în număr mare, în alte cazuri a fost în mod rezonabil scump.

Calea de ieșire din această situație a fost dezvoltarea circuitelor logice integrate programabile (prescurtate ca FPGA, abreviere străină ca dispozitiv logic programabil, PLD). Ce este și unde este folosit vom spune în acest articol.

Ce este FPGA un limbaj simplu pentru începători

Diferențe față de microcontrolere

Cu cuvântul „programabil”, majoritatea începătorilor se asociază cu microcontrolere. În ciuda faptului că sunt programate, FPGA-urile sunt un dispozitiv complet diferit.

Pentru dezvoltatorii de microcontrolere, este disponibil un set fix de soluții și mijloace care sunt inerente unui anumit cip, nu va funcționa în niciun fel pentru a se retrage din arhitectură. Vi se oferă un set de comenzi cu care efectuați operațiuni de interacțiune cu mediul, citind date de la intrările digitale și analogice și trimiteți semnale către actuatoare cu ajutorul ieșirilor.

În plus, puteți efectua calcule, puteți salva date în registre sau ROM-uri, precum și operați cu date intermitente în memoria microcontrolerului. În esență, se află scopul și caracteristicile de lucru cu microcontrolere.

Programabil 769; jurnal 769; număr întreg 769; in 769; ma (FPGA, dispozitiv logic logic, englez, PLD)

Circuitul integrat logic (FPGA) programabil este diferit de faptul că atunci când programați un dispozitiv, creați o arhitectură din elemente logice de bază. Astfel, obțineți viteză mare și flexibilitate a cipului. Acest lucru face posibil, fără a schimba un cip, realizarea unui număr de proiecte.

În general, dispozitivul intern FPGA poate fi împărțit în trei grupe principale:

1. O serie de elemente logice (macrocelluri, blocuri logice).

2. Blocuri de intrare / ieșire (IO).

3. Linii de comunicare între ele și dispozitivul care controlează aceste conexiuni.

Cu toate acestea, o astfel de structurare este foarte generalizată, vom analiza mai jos această problemă.

Programând, conectați elementele în același mod ca și dvs., asamblați un dispozitiv din elemente individuale și conectați intrările și ieșirile lor cu conductoarele.

Notă:

Principala diferență între FPGA și microcontrolere este că în microcontroler nu puteți modifica conexiunile interne între cele mai simple elemente, iar programarea și lucrul cu ele se bazează pe înregistrarea conexiunilor în FPGA.

Alegerea microcontrolerelor se bazează pe mai multe criterii, cum ar fi:

  • Viteza și viteza ceasului;

  • Cantitatea de ROM și RAM;

  • Numărul de intrări și ieșiri.

Alte caracteristici funcționale și periferice, cum ar fi suportul pentru liniile și protocoalele de comunicație (I2C, un fir, semnal PWM, etc.).

Atunci când alegeți un FPGA, principalul criteriu este numărul de blocuri programabile - acestea ar trebui să fie suficiente pentru a implementa sarcina.

În funcție de FPGA specific, numărul de blocuri poate varia în limite largi, iar costul în consecință.

Microcontrolerul execută secvențial toate operațiunile prescrise în programul său, în timp ce blocurile FPGA îndeplinesc sarcina în paralel și independent unul de celălalt, prin urmare, compararea acestor dispozitive în funcție de frecvența de ceas nu este practic. Principiul lor de funcționare este prea diferit.

Tipuri de FPGA

tipuri

În prezent sunt relevante două tipuri principale de FPGA:


1. CPLD (Device Logic Programabil Complex - Circuitul Integrat Logic Programabil, de fapt, acesta este FPGA în sensul său clasic). De obicei are o memorie integrată non-volatilă în care este încărcat firmware-ul.

Structura internă este construită pe o matrice de macrocelluri sau blocuri logice, iar numărul de elemente din ele se situează în intervalul de sute și mii de bucăți. Datorită simplității relative, acestea sunt mai ieftine decât următorul tip de logică programabilă. Toate acestea conduc la faptul că CPLD este utilizat mai ales în circuite unde este nevoie de viteză mare și un număr mare de ieșiri, în timp ce efectuează sarcini simple.


2. FPGA (Gate-Programmable Gate Array - Field Programmable Gate Array, însă este adesea denumit FPGA) - dispozitive mai dezvoltate și complexe în comparație cu CPLD, sunt construite pe blocuri logice cu comutare flexibilă și conțin un număr mai mare de elemente (zeci sau sute de mii de bucăți).

Firmware-ul este de obicei stocat în memoria externă non-volatilă. În plus față de cele mai simple elemente logice, FPGA-urile pot conține blocuri gata pregătite pentru efectuarea oricăror operațiuni, de exemplu, blocuri de procesare a semnalului DSP. Toate acestea vă permit să implementați un procesor, dispozitive de procesare a semnalului și alte dispozitive complexe.


I mirare:

Deși prezența memoriei non-volatile nu face logică programabilă CPLD. Acest lucru este parțial înșelător. Principala diferență între CPLD și FPGA este structura internă.

Diferența dintre CPLD și FPGA este structura internă

Dispozitivul CPLD intern este prezentat mai detaliat în figura de mai jos.

Dispozitiv intern CPLD

Și schema aproximativă a macrocelului său arată astfel:

Schemă de macrocellella CPLD de probă

Macrocellul este format din multiplexoare programabile, declanșatoare (unul sau mai multe) și formează un grup de semnale FB de ieșire în mai multe versiuni.

Următorul este un alt exemplu - o diagramă bloc a unui cip CPLD din familia de cipuri Altera MAX II.

Organigrama Altera MAX II CPLD

Și planul structural al jetoanelor din aceeași familie.

Diagrama bloc Altera MAX II CPLD

Anvelopele intermediare sunt atribuite macrocellurilor folosind un nod, cum ar fi un distribuitor în engleză. sună ca un Logic Allocator, care este prezentat în diagrama de mai jos, arată de asemenea matricea Global Routing Pool, iar la ieșire macrocellurile au două feedback-uri.

Distribuitor și matrice de comutare

Ieșirile externe ale microcircuitului sunt conectate la ieșirile macrocelelor printr-un alt bloc (matrice) - ORP (Output Routing Pool), rețineți că prin intermediul acestuia logica INPUT este conectată la GRP, așa cum se arată în ilustrația de mai jos.

Notă:

Unele CPLD au așa-numitele intrări directe (intrare directă) - sunt conectate direct la intrările celulelor, ceea ce reduce întârzierile.

Structura FPGA are forma:

Structura FPGA
  • L - bloc configurabil logic;

  • S (bloc de substituție) - un bloc de substituție, primește un anumit număr de biți pe mișcare, se convertește, conform unui anumit algoritm, și produce un număr diferit de biți la ieșire. Cu alte cuvinte, un decoder, un criptor și un comutator.

  • C (bloc de conexiune) - bloc de conexiune.

Diagrama blocului S:

 

Diagrama blocului S



programare


HDL (limbă de descriere hardware) - acesta este limbajul cu care sunt programate FPGA. Populare și versatile sunt Verilog HDL și VHDL. Există și alte limbi, precum cele specifice producătorilor, cum ar fi AHDL pentru produsele ALTERA.

Programarea grafică este disponibilă dezvoltatorilor care lucrează cu FPGA. Adică puteți desena pur și simplu circuite logice sau combina cod cu grafică. Aceasta din urmă se numește metoda de dezvoltare modulară, atunci când sunt prescrise module specifice, iar modulul superior, în care totul este combinat, este programat grafic.


Exemple de producători și serii populare

În momentul scrierii, cele mai cunoscute sunt produsele a doi producători.

  • Altera (fondată în 1983);

  • Xilinx (fondată în 1984).

Altera

Altera are câteva serii majore de logică programabilă:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Ciclonul;

  • Arria;

  • Stratix.

Să luăm în considerare fiecare dintre ele în detaliu. În tabelele de mai jos vedeți informații generale despre jetoanele familiei.

Caracteristicile seriei principale a logicii programabile
Caracteristicile seriei principale a logicii programabile

CP Altera 3 CPLD:

  • MAX este un CPLD pentru utilizare în dispozitive mobile, caracteristicile caracteristice sunt consumul relativ redus de energie și disiparea căldurii. În funcție de complexitatea și anii de lansare, se disting următoarele modificări:

  • 7000S este învechit până în prezent, a fost lansat în 1995.

  • 3000A - lansat în 2002, este fabricat folosind tehnologia 300nm. Constă într-un număr mic de macrocelluri (32-512)

  • MAX II lansat în 2004, este fabricat folosind tehnologia 100nm, constă dintr-un număr mai mare de unități (240-2210) care funcționează la frecvențe de până la 304 MHz. Produsul este fabricat în cutii de tip TQFP 0,5 moară cu 100 sau mai multe picioare.

  • MAX IIZ - 2007, caracteristica principală este consumul redus de energie - acesta este un punct pozitiv, însă frecvențele sunt reduse la 152 MHz. Aceste microcircuite sunt alimentate de la 1,8 V.

  • MAX V - anul 2010. Este produs conform tehnologiei 180nm, poate conține între 40 și 2210 blocuri și funcționează la frecvențe de până la 152MHz sau la 304MHz - depinde de numărul de blocuri.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone este un cip de tip FPGA bugetar. Există cinci generații care sunt marcate cu numere grecești (de la I la V, respectiv). Prima generație a fost lansată în 2002, produsă cu ajutorul tehnologiei 180nm, iar a cincea generație a ieșit în 2011 și fabricată cu ajutorul tehnologiei 28nm. De remarcat este faptul că toate generațiile rămân relevante.

  • Arria - se referă și la FPGA de gamă medie.

  • Stratix - FPGA puternice.

Mai jos sunt tabele pivoturi logice programabile Altera FPGA.

Caracteristici FPGA
Caracteristici FPGA
Caracteristici FPGA

Și masa completă este aici:https://i.electricianexp.com/ro/tablitsa.docx

Producătorul Xilinx CPLD a prezentat în serie:

  • XC9500XL din 36-288 macrocelluri. Ei funcționează la frecvențe de până la 178 MHz, și modele la 288 macrocelluri la 208 MHz. Se realizează ca în cazuri mici, cu 44 de pini (cârme) la o distanță de 0,8 mm unul de altul - astfel de cazuri sunt considerate a fi ușor lipite. De asemenea, este disponibil cu 64 și 100 de picioare în pași de 0,5 mm, precum și modele în carcase tip PLCC.

  • Seria CoolRunner-II este un CPLD eficient din punct de vedere energetic și productiv. O caracteristică este alimentată de o tensiune de 1,8 V, intrările și ieșirile sunt proiectate să funcționeze în intervalul 1,5-3,3 V. Ele constau din 32-512 macrocelluri și sunt produse folosind tehnologia 180nm. În funcție de numărul de celule, acestea funcționează în intervalul de frecvență 179-323 MHz, iar cu cât celulele sunt mai mici, cu atât mai multe frecvențe pot funcționa în acest caz. Se găsesc în diferite cazuri, inclusiv ușor de lipit, ca în microcircuitele seriei considerate mai sus.

Compania Xilinx nu a trecut și FPGA:

  • Spartan-6 - constă din blocuri logice cu 6 intrări, numărul acestora se află în gama de 3840-147443 bucăți. Interesant este faptul că acestea pot conține controlere pentru schimbul de date precum DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA etc ...

  • Seria Vitrex-7 este complexă, microcircuitele pot conține până la 2.000.000 blocuri logice și 1.200 de contacte.

Mai jos puteți găsi tabelele de rezumat cu specificațiile CPLD și FPGA din seria Xilinx 6 și 7, precum și Zynq-7000.

Seria Xilinx 6 și 7 Caracteristici FPGA
Caracteristicile FPGA-urilor Virtex-6
Caracteristicile familiei FPGA Spartan-6
Caracteristicile familiei FPGA Spartan-6
Caracteristici FPGA
Caracteristici FPGA

concluzie

FPGA și PPVM sunt produse și de alte companii precum Lattice Semiconductor (în 2002 au început să producă FPGA), Actel și cititorii săi cunoscuți ai site-ului nostru. microcontrolere ATMEL și multe altele. Pe logica programabilă, este posibil să implementăm o serie de dispozitive, să implementăm calcule paralele, independente unul de celălalt într-un dispozitiv, cu toate acestea, pentru proiecte de acasă, achiziția lor este adesea nejustificată financiar, dar destul de rezonabilă pe o scară de producție, ca o alternativă la circuitele integrate personalizate.

P.S.Urmăriți videoclipul, în el veți vedea un exemplu de implementare a consolei de jocuri Nintendo pe FPGA:

Consultați și la i.electricianexp.com:

  • Limbajul diagrama bloc funcțional (FBD) și aplicația sa
  • Tipuri de circuite integrate moderne - tipuri de logică, carcase
  • Jetoane logice. Partea 1
  • Microcontrolere PIC pentru începători
  • Controlere logice programabile pentru automatizarea caselor

  •