FPGA: totul despre aceste cipuri și programarea lor

Cip FPGA

L FPGA-urile au devenit din ce în ce mai populare în ultimele vremuri. Chiar și pentru aplicații profesionale, aceste cipuri sunt adesea folosite, dar și pentru bricolaje și producători care doresc să implementeze un circuit discret în interiorul unui cip cu toate avantajele pe care le implică acest lucru. Nu este ieftin sau ușor să găsești o fabrică care să-ți trimită machetele sau modelele și să-ți fabrice un cip personalizat.

Este adevărat că unele turnătorii permit face napolitane sau napolitane multiproiect pentru a face jetoane de la persoane fizice sau universități pentru a testa cu ele. Aceste tipuri de fabrici sunt, așa cum spun, dificil de găsit, sunt de obicei în străinătate și nu sunt ieftine. După un timp, mostre de cipuri sunt trimise la adresa convenită, dar nu sunt responsabile de testarea acestora sau de verificarea funcționării acestora. Totul depinde de designul tău ...

o o soluție alternativă la aceasta este achiziționarea unui FPGA și programează tot ce ai nevoie pentru a implementa în interiorul cipului ...

Ce este un FPGA?

 

Celule programabile

FPGA înseamnă Field Programmable Gate Array. Sunt dispozitive digitale sau cipuri care pot fi configurate pentru a permite implementarea practic a oricărui lucru. Adică, cu alte cuvinte, este un cip gol în care poți „scrie”. Asta înseamnă că puteți implementa un procesor, o memorie, un controler, orice logică etc., realizând o operație foarte rapidă și cu toate avantajele de a fi integrat într-un cip și nu cu elemente electronice.

Ross Freeman și Bernard Vonderschmitt, cofondatori ai Xilinx, au fost cei care au inventat FPGA în 1984. Au făcut-o ca o evoluție la jetoanele CPLD din acea vreme. Cipurile programabile CPLD au avut unele neajunsuri care au rezolvat noile modele FPGA și de atunci au evoluat până în prezent.

Piața FPGA este atât de fructuoasă încât companiilor le place Intel, Xilinx, Altera, Quick Logic, Lattice etc.au investit mult pentru a dezvolta FPGA-uri mai bune și, de asemenea, medii de programare încorporate sau IDE-uri pentru ei. Oferind astfel platforme foarte bune pentru a facilita sarcina dezvoltatorilor sau a factorilor de decizie.

În prezent, acești producători nu numai că furnizează un cip programabil, dar includ și numeroase elemente auxiliare pentru a aduce mai multe posibilități dezvoltatorilor. De exemplu, acestea includ celule de memorie flash, celule de memorie SDRAM și așa mai departe.

La ce se folosesc?

IDE pentru a programa FPGA

Prin urmare, un FPGA poate fi similar cu un ASIC, dar asta putem alege ce va fi. De exemplu, am putea crea un cod pentru a-l programa și a-l transforma într-un procesor, un GPU, un sumator, un controler de memorie sau orice alt circuit logic implementat pe un singur cip.

Posibilitățile sunt destul de nesfârșite. De fapt, vă recomand să vizitați site-ul web opencores.org, un site dedicat oferirii unei multitudini de proiecte hardware gratuite. Veți găsi coduri în VHDL, Verligo etc. pentru RAM, CPU, GPU, controlere, ALU-uri, FPU-uri, decodoare, etc..

Cum este programat?

Programator FPGA

Pentru a programa un FPGA o putem face din sistemul nostru de operare preferat, cum ar fi GNU / Linux, Windows și MacOS, deși există cu siguranță mai multe medii de dezvoltare pentru Windows. În general, aceleași companii care fac FPGA oferă o IDE foarte complet pentru a lucra și unde să găsiți toate instrumentele de care aveți nevoie în aceeași suită software.

Veți avea nevoie și de Cip sau placă FPGA și cablul sau programatorul necesar cu care puteți conecta FPGA la computerul dvs. pentru a transmite codul scris către FPGA și astfel este programat. Este ceva similar cu ceea ce faceți cu placa Arduino, scriind programul Arduino IDE în memoria programabilă a microcontrolerului.

Numai în cazul FPGA, ceea ce avem este o matrice sau o serie de componente elementare, cum ar fi celulele de memorie, porțile ȘI, SAU, NU, Flip-flops și altele. elemente de bază sau blocuri de electronică digitală pe care le putem folosi. Cu programul scris, ceea ce vom face este să impunem modul în care aceste blocuri esențiale trebuie grupate pentru a forma micul circuit pe care îl dorim, cum ar fi un ALU.

Adică, dacă programăm un sumator în IDE-ul nostru, blocurile necesare pentru implementarea acestui sumator ei vor face legătura în modul corect în interiorul FPGA, astfel încât cipul să funcționeze ca un adder. Simplu nu? În general, sunt utilizate mai multe metode pentru această programare la nivel fizic, cum ar fi amintiri sau siguranțe pentru a face o legătură permanentă în acest caz.

Viteza la care funcționează va depinde frecvența ceasului la care FPGA am achiziționat funcționează. De exemplu, cele mai de bază funcționează de obicei la 50 Mhz, altele o vor face la frecvențe mult mai mari. În cazul FPGA de 50 Mhz, asta înseamnă că va funcționa la o rată de 50.000.000 de ori pe secundă. Dacă vom continua cu sumatorul pe care l-am dat ca exemplu, veți putea face acea sumă într-o secundă ...

Continuând cu tema ProgramareaOdată ce știm că puteți scrie cod așa cum am face în Arduino IDE sau să dezvoltați orice alt program și văzând cum se face la nivel hardware, voi spune că într-adevăr nu programează ca atare. Mai degrabă este o descriere hardware. De fapt, sunt utilizate limbaje de descriere hardware, cum ar fi VHDL, Verilog etc.

cu acel program este descris la un nivel logic ce face micul circuit pe care vrem să îl implementăm. Și apoi merge la FPGA. Deși este adevărat că unele platforme permit programarea în limbaje de programare, cum ar fi C, să poată implementa un procesor în FPGA și apoi să genereze programe care să fie încărcate în memorie și să fie procesate de către respectivul procesor.

Integrare cu Arduino

Arduino-FPGA

FPGA-urile sunt utilizate de obicei separat, dar este adevărat că există multe instrumente și truse pe piață care vă vor face viața mai ușoară pentru a vă integra FPGA cu platforma Arduino. Un exemplu de placă pentru a aduce FPGA-uri la proiectele dvs. cu Arduino este MKR Vidor 4000, deși există și altele.

MKR Vidor 4000 este o placă cu trei jetoane. Unul dintre ele este un FPGA, în special un Intel Cyclone 10. Există, de asemenea, alte cipuri pentru Bluetooth LE sau conectivitate cu consum redus și, de asemenea, compatibilitate WiFi. Un complement bun pentru a oferi Arduino funcționalități de conectivitate și pentru a putea implementa ceea ce aveți nevoie în FPGA.

Cu el ai un hardware personalizabil, configurat de dvs. în scopul dorit. Asta oferă posibilități nesfârșite.


Conținutul articolului respectă principiile noastre de etică editorială. Pentru a raporta o eroare, faceți clic pe aici.

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.