kategorier: Mikrokontrollkretsar
Antal visningar: 21445
Kommentarer till artikeln: 0

Vad är FPGA ett enkelt språk för nybörjare

 

Vad är digital elektronik förknippad med? Först av allt, med logiska element OCH, ELLER, INTE. Vidare kommer skiftregister, avkodare, multiplexer etc. in i minnet. Men när komplexiteten hos elektroniska enheter och trenden mot miniatyrisering ökar, skapandet av enheter baserade på integrerade kretsar (IC) från ovanstående komponenter blev svårare, anpassade IC: er av den nödvändiga topologin och kretsarna visade sig vara värdefulla endast när enheten replikerades i stort antal, i andra fall var det orimligt dyrt.

Vägen ut ur denna situation var utvecklingen av programmerbara integrerade logiska kretsar (förkortade FPGA, utländsk förkortning som programmerbar logisk enhet, PLD). Vad är det och var används det kommer vi att berätta i den här artikeln.

Vad är FPGA ett enkelt språk för nybörjare

Skillnader från mikrokontroller

Med ordet "programmerbar" associerar de flesta nybörjare med mikrokontroller. Trots att de också är programmerade är FPGA: er en helt annan enhet.

För utvecklare av mikrokontroller finns en fast uppsättning lösningar och verktyg som är inneboende i ett visst chip, det fungerar inte på något sätt att dra sig tillbaka från arkitekturen. Du får en uppsättning kommandon som du utför interaktioner med miljön genom att läsa data från digitala och analoga ingångar och skicka signaler till ställdon med utgångar.

Dessutom kan du utföra beräkningar, spara data i register eller ROM-skivor samt fungera med data som blinkats in i mikrokontrollerns minne. På detta är i huvudsak syftet och funktionerna med att arbeta med mikrokontroller.

Programmerbar 769; log 769; heltal 769; lin 769; ma (FPGA, engelska programmerbar logisk enhet, PLD)

Programmerbara logiska integrerade kretsar (FPGA) är olika på det sättet att man programmerar en enhet man skapar en arkitektur från grundläggande logiska element. Således får du hög hastighet och flexibilitet i chipet. Detta gör det möjligt, utan att ändra ett chip, att göra ett antal projekt.

Generellt kan den interna FPGA-enheten delas in i tre huvudgrupper:

1. En rad logiska element (makroceller, logiska block).

2. Ingångs- / utgångsblock (IO).

3. Kommunikationslinjer mellan dem och enheten som styr dessa anslutningar.

Men en sådan struktur är mycket generaliserad, vi kommer att överväga denna fråga mer detaljerat nedan.

Genom att programmera ansluter du elementen på samma sätt som du skulle göra, montera en enhet från enskilda element och ansluta deras ingångar och utgångar med ledare.

Obs:

Den största skillnaden mellan FPGA: er och mikrokontroller är att man i en mikrokontroller inte kan ändra de interna anslutningarna mellan de enklaste elementen, och programmering och arbete med dem är baserat på att registrera anslutningar.

Valet av mikrokontroller baseras på många kriterier, till exempel:

  • Hastighet och klockhastighet;

  • Mängden ROM och RAM;

  • Antalet ingångar och utgångar.

Andra funktionella funktioner och kringutrustning, som stöd för kommunikationslinjer och protokoll (I2C, en-ledning, PWM-signal, etc.).

När du väljer en FPGA är huvudkriteriet antalet programmerbara block - de borde vara tillräckliga för att genomföra uppgiften.

Beroende på den specifika FPGA kan antalet block variera mycket och kostnaden ändras också.

Mikrokontrollern utför sekventiellt alla operationer som föreskrivs i sitt program, medan FPGA-block utför utförandet parallellt och oberoende av varandra, varför det är opraktiskt att jämföra dessa enheter med klockfrekvens. Deras princip är alltför annorlunda.

FPGA-typer

typer

För närvarande är det två huvudtyper av FPGA: er:


1. CPLD (komplex programmerbar logisk enhet - programmerbar logisk integrerad krets, i själva verket är detta FPGA i sin klassiska betydelse). Det har vanligtvis ett inbyggt icke-flyktigt minne som firmware laddas in i.

Den inre strukturen är byggd på en matris med makroceller eller logiska block, och antalet element i dem ligger i intervallet hundratusentals bitar. På grund av deras relativa enkelhet är de billigare än nästa typ av programmerbar logik. Allt detta leder till det faktum att CPLD används främst i kretsar där hög hastighet och ett stort antal utgångar behövs, samtidigt som enkla uppgifter utförs.


2. FPGA (Fältprogrammerbar Gate Array - Fält Programmerbar Gate Array, men den kallas ofta FPGA) - mer utvecklade och komplexa enheter jämfört med CPLD, är byggda på logiska block med flexibel omkoppling och innehåller ett större antal element (tiotals eller hundratusentals bitar).

Firmware lagras vanligtvis i externt icke-flyktigt minne. Förutom de enklaste logiska elementen kan FPGA: er innehålla färdiga block för att utföra alla operationer, till exempel DSP-signalbehandlingsblock. Allt detta gör att du kan implementera en processor, enheter för signalbehandling och andra komplexa enheter.


Jag undrar:

Även om närvaron av icke-flyktigt minne inte gör programmerbar logisk CPLD. Detta är delvis vilseledande. Den största skillnaden mellan CPLD och FPGA är den interna strukturen.

Skillnaden mellan CPLD och FPGA är den interna strukturen

Det interna CPLD visas mer i detalj i figuren nedan.

CPLD intern enhet

Och det ungefärliga schemat för dess makrocell ser så här ut:

Exempel på CPLD-makrocelllayout

Makrocellen består av programmerbara multiplexorer, triggers (en eller flera) och bildar en grupp av utgående FB-signaler i flera versioner.

Nedan är ett annat exempel - ett blockschema över CPLD-chipfamiljen för MAX II från Altera.

Altera MAX II CPLD Flödesschema

Och strukturplanen för chips i samma familj.

Altera MAX II CPLD-blockschema

Mellanhängande däck tilldelas makroceller med hjälp av en nod såsom en distributör på engelska. det låter som en Logic Allocator, som visas i diagrammet nedan, den visar också omkopplingsmatrisen (Global Routing Pool), och vid utgången har makroceller (makroceller) två återkopplingar.

Distributör och kopplingsmatris

De externa utgångarna från mikrokretsen är anslutna till utgångarna från makrocellerna genom ett annat block (matris) - ORP (Output Routing Pool). Observera att INPUT-logiken är ansluten till GRP, som visas i bilden nedan.

Obs:

Vissa CPLD: er har så kallade direkta ingångar (Direct Input) - de är direkt anslutna till cellernas ingångar, vilket minskar förseningar.

FPGA-strukturen har formen:

FPGA-struktur
  • L - logiskt konfigurerbart block;

  • S (substitutionsblock) - ett substitutionsblock, det tar emot ett visst antal bitar per drag, konverterar enligt en viss algoritm och matar ut ett annat antal bitar vid utgången. Med andra ord en avkodare, en krypterare och en switch.

  • C (anslutningsblock) - anslutningsblock.

S-blockschema:

 

S-blockschema



programmering


HDL (hårdvarubeskrivningsspråk) - detta är det språk som FPGA är programmerade på. Populära och mångsidiga är Verilog HDL och VHDL. Andra språk finns, till exempel de som är specifika för tillverkare, till exempel AHDL för ALTERA-produkter.

Grafisk programmering är tillgänglig för utvecklare som arbetar med FPGA: er. Det vill säga att du helt enkelt kan rita logiska kretsar eller kombinera kod med grafik. Den senare kallas den modulära utvecklingsmetoden, när specifika moduler föreskrivs, och den översta modulen, där allt kombineras, programmeras grafiskt.


Exempel på populära tillverkare och serier

I skrivande stund är de mest kända produkterna från två tillverkare.

  • Altera (grundades 1983);

  • Xilinx (grundades 1984).

Altera

Altera har flera stora serier av programmerbar logik:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • cyklon;

  • arria;

  • Stratix.

Låt oss överväga var och en av dem mer detaljerat. I tabellerna nedan ser du allmän information om familjens chips.

Egenskaper för huvudserien med programmerbar logik
Egenskaper för huvudserien med programmerbar logik

Altera 3 CPLD CPLD:

  • MAX är ett CPLD för användning i mobila enheter, kännetecknen är relativt låg strömförbrukning och värmeavledning. Beroende på komplexitet och utgivningsår åtskiljs följande ändringar:

  • 7000S är inaktuellt hittills, den släpptes 1995.

  • 3000A - släpptes 2002, tillverkas med 300nm-teknik. Består av ett litet antal makroceller (32-512)

  • MAX II släpptes 2004, tillverkas med 100 nm teknik, består av ett större antal enheter (240-2210) som arbetar med frekvenser upp till 304 MHz. Produkten är tillverkad i fall av typ TQFP 0,5 mill med 100 eller fler ben.

  • MAX IIZ - 2007, huvudfunktionen är reducerad energiförbrukning - detta är en positiv punkt, men frekvenserna reduceras till 152 MHz. Dessa mikrokretsar drivs från 1,8 V.

  • MAX V - år 2010. Den är tillverkad enligt 180nm-teknik, den kan innehålla 40 till 2210 block och fungera vid frekvenser upp till 152MHz eller vid 304MHz - det beror på antalet block.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone är ett budgetchip av FPGA-typ. Fem generationer skiljer sig, vilka är markerade med grekiska nummer (från I till V, respektive). Den första generationen släpptes 2002, producerad med 180nm-teknik, och den femte generationen kom ut 2011 och tillverkades med 28nm-teknik. Det är värt att notera att alla generationer förblir relevanta.

  • Arria - hänvisar också till mellanklass FPGA.

  • Stratix - Kraftfulla FPGA.

Nedan finns Altera FPGA programmerbara logiska pivottabeller.

FPGA-funktioner
FPGA-funktioner
FPGA-funktioner

Och hela tabellen vid länken:https://i.electricianexp.com/sv/tablitsa.docx

Tillverkaren Xilinx CPLD presenteras i serie:

  • XC9500XL av 36-288 makroceller. De arbetar med frekvenser upp till 178 MHz och modellerar vid 288 makroceller vid 208 MHz. Det utförs som i små fall med 44 stift (ledningar) på ett avstånd av 0,8 mm från varandra - sådana fall anses vara lättlödda. Finns också med 64 och 100 ben i steg om 0,5 mm samt modeller i kapslingar av PLCC-typ.

  • CoolRunner-II-serien är en energieffektiv men ändå produktiv CPLD. En funktion drivs av en spänning på 1,8 V, ingångar och utgångar är konstruerade för att arbeta i intervallet 1,5-3,3V. De består av 32-512 makroceller och produceras med 180 nm teknik. Beroende på antalet celler arbetar de i frekvensområdet 179-323 MHz, och ju mindre cellerna är, desto mer frekvens kan de arbeta i detta fall. De finns i olika fall, inklusive lättlödda, som i mikrokretsarna i serien ovan.

Xilinx-företaget gick inte förbi och FPGA:

  • Spartan-6 - består av 6-inmatade logikblock, deras antal ligger i intervallet 3840-147443 stycken. Intressant att de kan innehålla kontroller för utbyte av data som DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA osv ...

  • Vitrex-7-serien är komplex, mikrokretsar kan innehålla upp till 2 000 000 logiska block och 1 200 kontakter.

Nedan hittar du sammanfattningstabellerna med CPLD- och FPGA-specifikationerna från Xilinx 6 och 7-serien samt Zynq-7000.

Xilinx 6 och 7-serien FPGA-funktioner
Egenskaper för Virtex-6 FPGA
Egenskaper hos FPGA-familjen Spartan-6
Egenskaper hos FPGA-familjen Spartan-6
FPGA-funktioner
FPGA-funktioner

slutsats

FPGA och PPVM produceras också av andra företag som Lattice Semiconductor (2002 började man producera FPGA), Actel och dess välkända läsare av vår webbplats. mikrokontroller ATMEL och många andra. I den programmerbara logiken är det möjligt att implementera ett antal enheter, att implementera parallella beräkningar oberoende av varandra i en enhet, men för hemmaprojekt är deras köp ofta ekonomiskt orättvisa, men ganska rimliga i en produktionsskala, som ett alternativ till anpassade integrerade kretsar.

P.S.Se videon, i den ser du ett exempel på implementeringen av Nintendo-spelkonsolen på FPGA:

Se även på elektrohomepro.com:

  • Functional Block Diagram Language (FBD) och dess tillämpning
  • Typer av moderna integrerade kretsar - typer av logik, fall
  • Logikchips. Del 1
  • PIC-mikrokontroller för nybörjare
  • Programmerbara logikregulatorer för hemmeautomation

  •