FPGA: kõik nende kiipide ja nende programmeerimise kohta

FPGA kiip

osa FPGA-d on muutunud üha populaarsemaks viimastel aegadel. Isegi professionaalsete rakenduste jaoks kasutatakse neid kiipe sageli, aga ka isetegijate ja tegijate jaoks, kes soovivad kiibi sees rakendada diskreetset voolu kõigi selle eeliste abil. Ei ole odav ega lihtne leida tehast oma kujunduste või mustrite saatmiseks ja teie jaoks kohandatud kiibi laskmiseks.

Tõsi, mõned valukojad lubavad valmistada vahvleid või mitme projektiga vahvleid teha üksikisikutelt või ülikoolidelt nende proovimiseks kiipe. Seda tüüpi tehaseid on, nagu ma ütlen, raske leida, nad asuvad tavaliselt välismaal ja pole odavad. Mõne aja pärast saadetakse teie kiipide näidised kokkulepitud aadressile, kuid nad ei vastuta nende testimise ega töö kontrollimise eest. Kõik sõltub teie disainist ...

A. alternatiivne lahendus on FPGA ostmine ja programmeerige kõik, mida vajate kiibi rakendamiseks ...

Mis on FPGA?

Programmeeritavad lahtrid

FPGA tähistab Field Programmable Gate Array. Need on digitaalsed seadmed või kiibid, mida saab konfigureerida võimaldama praktiliselt kõike rakendada. See tähendab, et see on tühi kiip, kus saate "kirjutada". See tähendab, et saate rakendada protsessorit, mälu, kontrollerit, mis tahes loogikat jne, saavutades väga kiire toimimise ja kõigi eeliste, kui see integreeritakse kiibi, mitte elektrooniliste elementidega.

Xilinxi kaasasutajad Ross Freeman ja Bernard Vonderschmitt olid need, kes leiutasid FPGA 1984. aastal. Nad tegid seda evolutsioonina tolleaegsetele CPLD kiipidele. CPLD programmeeritavatel kiipidel oli mõningaid puudusi, mis lahendasid uued FPGA kujundused ja sellest ajast alates on need tänaseks arenenud.

FPGA turg on nii viljakas, et ettevõtetele meeldib Intel, Xilinx, Altera, Quick Logic, Lattice jne., on nad palju investeerinud paremate FPGA-de väljatöötamiseks ja nende jaoks sisseehitatud programmeerimiskeskkondadesse või IDE-desse. Pakkudes seega väga häid platvorme arendajate või tegijate ülesannete hõlbustamiseks.

Praegu pakuvad need tootjad mitte ainult programmeeritavat kiipi, vaid ka arvukad abielemendid arendajatele rohkem võimalusi tuua. Näiteks sisaldavad need välkmälurakke, SDRAM-mälurakke ja nii edasi.

Milleks neid kasutatakse?

IDE programmeerib FPGA

Seetõttu võib FPGA olla sarnane ASIC-iga, kuid see saame valida mis saab. Näiteks võiksime selle programmeerimiseks luua koodi ja muuta selle protsessoriks, GPU-ks, liitjaks, mälukontrolleriks või muuks loogikaahelaks, mis on rakendatud ühel kiibil.

Võimalusi on päris lõputult. Tegelikult soovitan teil külastada veebisaiti opencores.org, sait, mis on pühendatud paljude projektide pakkumisele hardware libre. Koodid leiate VHDL-ist, Verligost jne RAM, CPU, GPU, kontrollerid, ALU-d, FPU-d, dekoodrid ja pikk jne..

Kuidas seda programmeeritakse?

FPGA programmeerija

FPGA programmeerimiseks saame seda teha oma lemmikoperatsioonisüsteemist, näiteks GNU / Linux, Windows ja MacOS, kuigi Windowsi jaoks on kindlasti rohkem arenduskeskkondi. Üldiselt pakuvad samad ettevõtted, kes teevad FPGA, a Väga täielik IDE, millega töötada ja kust leiate kõik vajalikud tööriistad samast tarkvarakomplektist.

Teil on vaja ka FPGA kiip või plaat ja vajalik kaabel või programmeerija millega saate FPGA ühendada arvutiga, et edastada kirjutatud kood FPGA-le ja nii see on programmeeritud. See on midagi sarnast sellele, mida teete Arduino plaadiga, kirjutades Arduino IDE programmi mikrokontrolleri programmeeritavasse mällu.

Ainult FPGA puhul on olemas põhikomponentide maatriks või massiiv nagu mälurakud, JA väravad, VÕI EI, Flip-flopid jt. digitaalse elektroonika põhielemendid või plokid mida saame kasutada. Kirjaliku programmiga kehtestame viisi, kuidas need olulised plokid grupeeritakse, moodustades soovitud väikese vooluringi, näiteks ALU.

See tähendab, et kui programmeerime oma IDE-sse lisamooduli, siis selle lisaja rakendamiseks vajalikud plokid nad hakkavad linkima õigesti FPGA-s, nii et kiip töötab liitjana. Lihtne eks? Üldiselt kasutatakse selle programmeerimise jaoks füüsilisel tasandil mitut meetodit, näiteks mälud või kaitsmed, et sellisel juhul püsiv link luua.

Nende töötamise kiirus sõltub kella sagedus millele meie ostetud FPGA töötab. Näiteks töötavad kõige elementaarsemad tavaliselt 50 Mhz juures, teised teevad seda palju kõrgematel sagedustel. 50 Mhz FPGA puhul tähendab see, et see töötab kiirusega 50.000.000 XNUMX XNUMX korda sekundis. Kui jätkame liitjaga, mille ma näitena näitasin, saate selle summa summas teha ühe sekundiga ...

Jätkates teemaga ProgrammeerimineKui teame, et saate koodi kirjutada nagu Arduino IDE-s või mõne muu programmi arendamiseks, ja nähes, kuidas seda riistvaratasemel tehakse, ütlen, et see pole tegelikult programmeerimine kui selline. Pigem on see riistvara kirjeldus. Tegelikult kasutatakse riistvara kirjelduskeeli nagu VHDL, Verilog jne.

koos seda programmi kirjeldatakse loogilisel tasemel mida see väike ringrada, mida soovime rakendada, teeb. Ja siis läheb see FPGA-le. Kuigi on tõsi, et mõned platvormid võimaldavad programmeerimiskeeles, näiteks C, programmeerida FPGA-s keskprotsessori ja seejärel genereerida mällu laaditavad programmid, mida protsessor töötleb.

Integreerimine Arduinoga

Arduino-FPGA

FPGA-sid kasutatakse tavaliselt eraldi, kuid on tõsi, et turul on palju tööriistu ja komplekte, mis muudavad teie elu lihtsamaks oma Arduino platvormiga FPGA. Näide tahvlist FPGA-de toomiseks teie projektidesse Arduinoga on MKR Vidor 4000, kuigi on ka teisi.

MKR Viewer 4000 see on kolme kiibiga laud. Üks neist on FPGA, täpsemalt Intel Cyclone 10. Bluetooth LE või vähese energiatarbega ühenduvuse ja ka WiFi ühilduvuse jaoks on olemas ka muid kiipe. Hea täiendus teie Arduino ühenduvusfunktsioonide pakkumiseks ja FPGA-s vajaliku rakendamiseks.

Sellega on teil kohandatav riistvara, mille olete ise konfigureerinud soovitud eesmärgil. See pakub lõputult võimalusi.


Ole esimene kommentaar

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.