Grundlæggende om FPGA'er - Del 2: Kom godt i gang med Lattice Semiconductors FPGA'er
Bidraget af DigiKeys nordamerikanske redaktører
2019-12-18
Redaktørens note: Optimale behandlingsløsninger leveres ofte af kombinationer af RISC, CISC, grafikprocessorer og FPGA'er, FPGAer på egen hånd eller af FPGA'er, der kan prale af hårde processorkerner som en del af deres stof. Imidlertid er mange designere ikke bekendt med FPGA'ers kapacitet, hvordan de har udviklet sig, og hvordan de bruges. Del 1 af denne flerdelsserie giver en introduktion på højt niveau til FPGA'er, og hvorfor de er nødvendige. Her fokuserer del 2 på FPGA-enhedsfamilierne og designværktøjer, der tilbydes af FPGA-leverandøren, Gitter Semiconductor. Del 3, Del 4 og del 5 vil se på FPGA'er fra Altera, Microchip, og Xilinx.
Som diskuteret i del 1 har feltprogrammerbare gate-arrays (FPGA'er) mange karakteristika, der gør dem til et uvurderligt computerværdi, enten standalone eller i en heterogen arkitektur; men mange designere er ikke bekendt med FPGA'er, og hvordan man kan arbejde på at integrere disse enheder i deres design.
En måde at overvinde denne hindring på er at se mere dybt på FPGA-arkitekturer og tilhørende værktøjer fra større leverandører, her med start fra Lattice Semiconductors.
Oversigt over FPGA-indstillinger på højt niveau
Der er mange forskellige typer FPGA'er på markedet, hver med forskellige kombinationer af funktioner og funktioner. Kernen i enhver FPGA er dens programmerbare stof, der præsenteres som en række programmerbare logiske blokke (figur 1a). Det næste trin op i FPGA-stoffet er at inkludere ting som blokke af SRAM, kaldet block RAM (BRAM), faselåseslynge (PLL'er) og urstyring (figur 1b). Digital signalbehandling (DSP) blokke (DSP skiver) og højhastigheds-serienummer / deserializer (SERDES) blokke kan også tilføjes (figur 1c).
Figur 1: De enkleste FPGA'er indeholder kun programmerbart stof og konfigurerbar IO (GPIO) (a); forskellige arkitekturer forstærker dette grundlæggende stof med SRAM-blokke, PLL'er og uradministratorer (b), DSP-blokke og SERDES-grænseflader (c) og hårde processorkerner og perifere enheder (d). (Billedkilde: Max Maxfield)
Perifere interfacefunktioner som CAN, I2C, SPI, UART og USB kan implementeres som bløde kerner i det programmerbare stof, men mange FPGA'er inkluderer dem som hårde kerner i silicium. Tilsvarende kan mikroprocessorer implementeres som bløde kerner i det programmerbare stof eller som hårde kerner i silicium (figur 1d). Forskellige FPGA'er tilbyder forskellige samlinger af funktioner, funktioner, kapaciteter og kapaciteter målrettet mod forskellige markeder og applikationer.
Der er en række FPGA-leverandører, herunder Altera (som blev købt af Intel), Atmel (som blev erhvervet af Microchip Technology), Lattice Semiconductor, Microsemi (som også blev erhvervet af Microchip Technology) og Xilinx.
Alle disse leverandører felt flere FPGA-familier; nogle tilbyder FPGA'er til system-on-chip (SoC) (der indeholder hard processor), og nogle tilbyder strålingstolerante enheder, der er målrettet mod miljøer med høj stråling som rum. Det kan være vanskeligt at vælge den bedste enhed til den aktuelle opgave, fordi der er så mange familier, der hver tilbyder forskellige ressourcer. Denne artikel fokuserer på enhedsfamilierne og designværktøjer, der tilbydes af Lattice Semiconductor.
Introduktion af LPPs Semiconductor FPGA'er
Lattice Semiconductors FPGA-tilbud spænder over det lave til mellemklasse med fokus på enheder med lav effekt, der adresserer kundeproblemer på tværs af netværket, fra kanten til skyen, i det hurtigt voksende kommunikations-, computing-, industri-, bil- og forbrugermarked .
Lattice tilbyder fire vigtigste FPGA-familier:
- iCE (som det citerer som verdens mindste FPGA'er med ultra-lav effekt)
- CrossLink og CrossLinkPlus (optimeret til højhastigheds video- og sensorapplikationer)
- MachXO (optimeret til bro-, ekspansions- og platformstyring og sikkerhedsapplikationer)
- ECP (enheder til generelle formål, der er målrettet mod tilslutnings- og accelerationsapplikationer)
Gitter tilbyder også en række design- og verificeringsværktøjssuiter, inklusive Lattice Diamond-software (til CrossLink / CrossLinkPlus-, MachXO- og ECP-enheder) og Gitterstrålingssoftware (til iCE FPGA'er og fremtidige arkitekturer) sammen med LatticeMico (et grafisk værktøj til at oprette bløde mikroprocessorbaserede design) og Gitter sensAI Stack og Neural Network Compiler (til kunstig intelligens (AI) og maskinlæring (ML)).
Traditionel: ECP FPGA'er
Lattice's ECP-enheder er det, som mange designere ville betragte som "traditionelle" FPGA'er. De kan indeholde op til 85.000 (k) fire-input opslagstabeller (LUT) i en 10 millimeter (mm) x 10 mm, 0,5 mm tonepakke. De har lavt statisk og dynamisk strømforbrug med en-kanals protokoll agnostiske SERDES-funktioner under 0,25 watt og quad-kanals SERDES-funktioner under 0,5 watt.
Foruden SRAM-blokke, DSP-blokke (digital signalbehandling), faselåseslynge (PLL'er) og urstyring, kan ECP FPGAs prale af programmerbar I / O-understøttelse til LVCMOS 33/25/18/15/12, XGMII, LVTTL, LVDS , Bus-LVDS, 7: 1 LVDS, LVPECL og MIPI D-PHY input / output interface.
Konfigurationscellerne i ECP FPGA'er er SRAM-baserede, hvilket betyder, at - ligesom alle andre SRAM-baserede FPGAer - deres konfiguration skal indlæses fra en ekstern kilde (f.eks. Flashhukommelsesenhed, mikroprocessor, mikrocontroller), når der tilføres strøm til system.
Et godt eksempel på en ECP-enhed er LFE5UM5G-25F-8BG381C ECP5 5G SERDES-kapabel FPGA i en 10 mm x 10 mm pakke. For at give designere mulighed for bedre at undersøge og eksperimentere med funktionerne i ECP5 FPGA-familien leverer Lattice også et tilsvarende ECP5-5G-udviklingspanel, LFE5UM5G-45F versa-EVN (Figur 2).
Figur 2: ECP5 Evaluation Board er et prototypetavle med rigelig logik, I/O, 5G SERDES og ekspansionsoverskrifter. (Billedkilde: Lattice Semiconductor)
Lille i størrelse, men kraftfuld: Gitter iCE FPGA'er
ICE-enhederne er de mindste FPGA'er, der er tilgængelige, og det mindste medlem af familien tilbyder 18 I/Os i en pakning på 1,4 mm x 1,4 mm. iCE FPGAs tilbyder en fleksibel logisk arkitektur med op til 5 k fire-input LUT'er, op til 128 kilobits (Kbits) af Lattices indlejrede sysMEM BRAM og 1 megabit (Mbit) enkelt-port RAM (SPRAM), højtydende DSP-blokke og tilpasses I/Os.
Selvom de er små og lavt med strømstyrke så lavt som 75 mikroampler (µA) og aktiv strøm fra 1 til 10 milliamper (mA) til de fleste applikationer, er iCE FPGA'er også kraftfulde. For eksempel er de i stand til at implementere kunstige neurale netværk (ANN'er) til det mønster, der er nødvendigt for at bringe altid-on intelligens til kanten.
Konfigurationsdataene i iCE FPGA'er gemmes i ikke-flygtig hukommelse (NVM), hvilket betyder, at disse enheder er engangsprogrammerbare (OTP). Når det er sagt, indeholder de også SRAM-baserede konfigurationsceller. Under udvikling kan designet testes ved direkte indlæsning af SRAM-baserede konfigurationsceller fra omverdenen. Når designet er begået, kan det indlæses i NVM. Når enheden tændes, kopieres konfigurationen, der er gemt i NVM, automatisk til de SRAM-baserede konfigurationsceller på en massivt parallel måde.
Et eksempel på iCE-enhed er ICE40UL1K-SWG16ITR1K iCE40 UltraLite, som er verdens mindste formfaktor FPGA (på tidspunktet for denne artikels udsendelse), giver 42 mikrotatt (µW) statisk effekt i en pakning på 1,4 mm x 1,4 mm. Et repræsentativt udviklingsudvalg ville være HM01B0-UPD-EVN Himax HM01B0 UPduino skjold og sensAI modulopbygget demonstrationsplade (figur 3).
Figur 3: Himax HM01B0 UPduino-skjoldet er et komplet udviklingssæt til implementering af kunstig intelligens (AI) ved hjælp af vision og lyd som sensoriske input. (Billedkilde: Lattice Semiconductor)
Sættet er baseret på UPduino 2.0-kortet, en hurtig prototypeudviklingsplade i Arduino-formfaktoren med ydeevne og I/O-kapaciteter i iCE40 UltraPlus FPGA. Det inkluderer også Himax HM01B0 laveffekt billedsensormodul og to I2S mikrofoner.
Specialiseret: CrossLink og CrossLinkPlus FPGA'er
CrossLink- og CrossLinkPlus-familierne er specialiserede FPGA'er, der ud over programmerbar logik og betydelige I/O-kapaciteter indeholder hærdede versioner af specifikationer, der er vidt brugt i industrielle og bilindustrielle applikationer. Disse inkluderer Mobile Industry Processor Interface (MIPI) D-PHY højhastigheds datakommunikation fysisk lagstandard, Camera Serial Interface 2 (CSI2) og Display Serial Interface 2 (DSI2) kerner, alt sammen i pakker, der måler 6 mm x 6 mm (CrossLink ) og 3,5 mm x 3,5 mm (CrossLinkPlus).
Ligesom iCE FPGA'er gemmes konfigurationsdataene i CrossLink-enheder i OTP NVM, og de indeholder også SRAM-baserede konfigurationsceller, der kan indlæses direkte under udvikling til test. Når designet er begået, indlæses det i NVM og kopieres automatisk til de SRAM-baserede konfigurationsceller på en massivt parallel måde ved opstart. Til sammenligning er konfigurationscellerne i CrossLinkPlus-enheder flashbaserede, hvilket betyder, at disse enheder kan omprogrammeres efter behov; de giver også øjeblikkelig kapacitet på mindre end 10 millisekunder (ms).
Et eksempel på CrossLink-enheden er LIF-MD6000-6JMG80I med 5.936 logiske elementer / celler, 184.320 samlede RAM-bits og 37 I/Os. For at komme i gang med indlejret vision-design, LF-EVDK1-EVN Embedded Vision Development Kit giver designere mulighed for at kombinere CrossLink-baserede MIPI-indgange med ECP5 FPGA-behandling til prototype indlejret vision-design (figur 4).
Figur 4: Lattice LF-EVDK1-EVN Embedded Vision Development Kit giver indbyggede systemdesignere et software- og hardware-prototyperingsmiljø, der inkluderer muligheden for at blande og matche input- og outputboards til at interface med en række billedsensorer og skærme. (Billedkilde: Lattice Semiconductor)
Til I/O- og strømstyringsfunktioner: MachXO FPGA'er
Med hundreder af I/Os er MachXO FPGA'er perfekte til en lang række applikationer, der kræver GPIO-udvidelse, interfaceovergang og power-up-styringsfunktioner. Nylige familiemedlemmer er designet til NIST-overholdelse og inkluderer yderligere sikkerhedsfunktioner for at sikre, at systemhardware og firmware holdes sikkert.
MachXO FPGA'er har et robust sæt GPIO'er, der indeholder funktioner som "hot socketing" -kapacitet, hvilket betyder, at der kan anvendes spænding til I/Os uanset tilstanden i strømforsyningsskinnerne. Mens de fleste FPGA-indgange som standard er en pull-up-tilstand, indfører MachXO standard til pull-down, hvilket gør dem velegnet til kontrol af funktionsapplikationer. Med øjeblikkelig aktivering på mindre end 10 ms giver MachXO FPGA'er ideelle løsninger til "først til, sidst-fra" kontrolenheder, der administrerer og sekvenserer andre komponenter under opstart og nedlukning af systemet.
Konfigurationsdataene på MachXO-enheder gemmes i flashhukommelsen. MachXO-enheder indeholder også SRAM-baserede konfigurationsceller. Når enheden tændes, kopieres konfigurationsdata, der er gemt i flash, automatisk til de SRAM-baserede konfigurationsceller på en massivt parallel måde. Mens enheden kører, er det endvidere muligt at indlæse en ny konfiguration i flash og derefter forårsage, at denne nye konfiguration kopieres til SRAM-cellerne på et passende tidspunkt.
Et godt eksempel på en MachXO-enhed er LCMXO3LF-9400C-6BG256C med 9.400 logiske elementer/celler, 442.368 samlede RAM-bits og 206 I / Os. Et repræsentativt udviklingsudvalg ville være LCMXO3LF-6900C-S-EVN MachXO3 startsæt (MachX03L version).
Figur 5: MachXO3L-startkit er et grundlæggende breakout-kort, der tillader enkel evaluering og udvikling af MachXO3L-baserede design. (Billedkilde: Lattice Semiconductor)
SPI-flash er tilgængelig på kittavlen til evaluering af ekstern start- eller dual-boot-funktion. Det LCMXO3L-DSI-EVN MachXO3L DSI breakout board anbefales til MIPI DSI og CSI2 I/O evaluering, og LCMXO3L-SMA-EVN MachXO3L SMA breakout-kort anbefales til højhastighedsdifferential I / O-evaluering.
Design og udvikling med Lattice Semiconductor FPGAs
En af de mest almindelige teknikker, der bruges til at udvikle med FPGA’er, er den af sprogdrevet design (LDD). Dette involverer indfangning af designintentionen på et abstraktionsniveau kendt som registeroverførselsniveau (RTL) ved hjælp af et hardwarebeskrivelsessprog (HDL), såsom Verilog eller VHDL. Efter verifikation via logisk simulering føres denne repræsentation derefter ind i en syntesemotor sammen med yderligere information såsom mål-FPGA-typen, pin-tildelinger og tidsbestemmelser (f.eks. Maksimal input til output-forsinkelser). Outputet fra syntesemotoren er en konfigurationsfil, der enten indlæses direkte i FPGA eller indlæses i en ekstern hukommelsesenhed i tilfælde af SRAM-baserede FPGA'er (figur 6).
Figur 6: Efter verifikation via logikssimulering indføres RTL-designbeskrivelsen i en syntesemotor sammen med yderligere designdetaljer som FPGA-typen, pin-tildelinger og tidsbestemmelser. Outputet fra syntesemotoren er en konfigurationsfil, der indlæses direkte i FPGA (i tilfælde af NVM eller flash-baserede enheder) eller i en ekstern hukommelsesenhed (i tilfælde af SRAM-baserede enheder). (Billedkilde: Max Maxfield).
Lattice Diamond falder ind i denne værktøjsklasse og tilbyder et komplet GUI-baseret FPGA design og verifikationsmiljø til CrossLink, MachXO og ECP enheder.
Lattice Radiant tilbyder ligesom Lattice Diamond også et komplet GUI-baseret FPGA design og verifikationsmiljø, men Lattice Radiant er målrettet mod iCE FPGAs og fremtidige arkitekturer.
Lattice Radiant tilbyder en række funktioner:
- Industristandard IEEE 1735 kryptering af intellektuel ejendom (IP) og Synopsys Design Constraints (SDC) for maksimal interoperabilitet
- Brugervenlighed af designnavigation og debugging aktiveret af et integreret værktøjssæt-miljø
- Enkel "ét klik" -designimplementering, der er aktiveret med en ny procesværktøjslinje
- Komplet fysisk til logisk designimplementering med lukket sløjfe afsluttet
- En IP-emballagefunktion, der giver udviklere og tredjeparts IP-udbydere mulighed for at pakke krypteret IP i en form, der er egnet til distribution
LatticeMico systemudviklingsværktøjer
Lattice tilbyder to bløde processor-kerner - LatticeMico8 og LatticeMico32 - som begge kan implementeres i en FPGAs programmerbare stof.
LatticeMico8 er en 8-bit mikrocontroller optimeret og testet fuldt ud til MachXO2-familien af programmerbare logiske enheder (PLD'er). Det kan også bruges som et referencedesign til de andre FPGA-familier. Mikrokontrollerkernen kombinerer et komplet 18-bit bredt instruktionssæt med 32 generelle registre og forbruger minimale enhedsressourcer - mindre end 200 LUT'er i den mindste konfiguration - samtidig med at der opretholdes et bredt funktionssæt.
LatticeMico32 er en 32-bit Harvard, RISC-mikroprocessor. Ved at kombinere et 32-bit bredt instruktionssæt med 32 generelle registre giver LatticeMico32 ydeevnen og fleksibiliteten, der er egnet til en lang række markeder. Ved at bruge en RISC-arkitektur forbruger kernen minimale enhedsressourcer, mens den ydeevne, der kræves til et bredt applikationssæt, opretholdes. For at fremskynde udviklingen af mikroprocessorsystemer kan flere valgfri WISHBONE-controller-kompatible perifere komponenter integreres med LatticeMico32.
Det LatticeMico systemudviklingsværktøjer tilvejebringe en grafisk brugergrænseflade, der giver brugerne mulighed for at trække og slippe LatticeMico-processorkerner og perifere enheder, forbinde dem til busser og definere forskellige parametre for hver komponent, f.eks. dens placering i processorens adresserum. Når systemet er defineret, kan værktøjerne automatisk generere det tilsvarende RTL, der skal simuleres og syntetiseres. Systemet inkluderer også de værktøjer, der giver brugerne mulighed for at generere den software, der kører på processorens kerner.
Værktøj til maskinindlæring: Gitter sensAI Stack og Neural Network Compiler
Maskinindlæring (ML) og kunstig intelligens (AI) applikationer er i øjeblikket ved at blive distribueret i en lang række indlejrede systemer og over Internet of Things (IoT), herunder Industrial IoT (IIoT).
Lattice sensAI Stack inkluderer alt, hvad der kræves for at evaluere, udvikle og distribuere FPGA-baserede ML/AI-løsninger, herunder modulopbyggede hardwareplatforme, eksempelvis demonstrationer, referencedesign, neurale netværks IP-kerner, softwareværktøjer til udvikling og tilpassede designtjenester. Denne stak er designet til at fremskynde tid til markedet for udviklere af fleksibel maskinlæring inferencing i forbrugere og industrielle IoT applikationer.
Lattice convolutional neural network (CNN) accelerator IP core er en beregningsmotor til dybe neurale netværk (DNN'er). Motoren er optimeret til indviklede neurale netværk, så den kan bruges til visionbaserede applikationer som klassificering eller objektdetektion og sporing. CNN IP-kernen kræver ikke en ekstra processor, da den kan udføre de krævede beregninger.
I mellemtiden giver Lattice Neural Network Compiler designere mulighed for at tage neurale netværk oprettet i fælles udviklingsrammer - såsom TensorFlow, Caffe og Keras - og sammenstille dem til implementering i Lattice CNN og kompakte CNN-accelerator IP-kerner.
Konklusion
Optimale designløsninger leveres ofte af kombinationer af processorer og FPGA'er, af FPGAer alene eller af FPGA'er, der kan prale af hårde processorkerner som en del af deres stof. Som en teknologi har FPGA'er udviklet sig hurtigt gennem årene og er i stand til at imødekomme mange af nutidens designkrav med hensyn til fleksibilitet, behandlingshastighed og magt, hvilket gør dem meget nyttige til en lang række applikationer fra intelligente grænseflader til maskinsyn og AI .
Som vist spænder Lattice Semiconductors FPGA-tilbud over det lave til det mellemste interval, med fokus på enheder med lav effekt, der adresserer netværksproblemer fra kanten til skyen på det hurtigt voksende kommunikations-, computer-, industri-, bil- og forbrugermarked. Lattice tilbyder også adskillige design- og verificeringsværktøjssuiter, der adresserer flere designstrømme, lige fra sprogbaseret design til grafisk processor-baseret design, til design, der er fokuseret på maskinlæring og applikationer til kunstig intelligens.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.


