Grunnleggende om FPGA-er – del 2: Komme i gang med FPGA-er fra Lattice Semiconductor

Av Clive "Max" Maxfield

Bidrag fra DigiKeys nordamerikanske redaktører

Merknad fra redaktør: Optimale behandlingsløsninger leveres ofte av en kombinasjon av RISC, CISC, grafikkprosessorer og FPGA-er, av FPGA-er alene, eller av FPGA-er som har harde prosessorkjerner som en del materialet sitt. Uansett, mange konstruktører er imidlertid ikke kjent med egenskapene til FPGA-er, hvordan de har utviklet seg og hvordan de kan brukes. Del 1 av denne flerpunktserien gir en introduksjon til FPGA-er og hvorfor de er nødvendige. Del 2 fokuserer på FPGA-enhetsseriene og konstruksjonsverktøyene som tilbys av FPGA-leverandøren Lattice Semiconductor. Del 3, del 4 og del 5 ser på FPGA-er fra Altera, Microchipog Xilinx.

Som vi så på i del 1, kan feltprogrammerbare portmatriser (FPGA-er) ha mange egenskaper som gjør dem til en uvurderlig databehandlingsressurs, enten frittstående eller i en heterogen arkitektur. Men mange konstruktører er ikke kjent med FPGA-er og hvordan man skal gå frem for å innlemme disse enhetene i konstruksjonene.

Én måte å overkomme dette hindret på er å se grundigere på FPGA-arkitekturer og tilknyttede verktøy fra store leverandører. Vi starter med utvalget til Lattice Semiconductor.

Oversikt over FPGA-alternativer på høyt nivå

Det finnes mange ulike typer FPGA-er på markedet, hver med ulike kombinasjoner av kapasiteter og funksjoner. Det programmerbare materialet er det viktigste i FPGA-er, og dette presenteres som en rekke programmerbare logiske blokker (figur 1a). Neste trinn i FPGA-materialet er å inkludere for eksempel SRAM-blokker, kalt blokk-RAM (BRAM), faselåste sløyfer (phase lock loops – PLL-er) og klokkeadministratorer (figur 1b). Vi kan også legge til blokker for digital signalbehandling (DSP) (DSP-skiver) og blokker for høyhastighets serialisering/deserialisering (SERDES) (figur 1c).

Skjema over FPGA-er som kun inneholder programmerbart materiale og konfigurerbar inngang/utgang for generell bruk (GPIO) Figur 1: De enkleste FPGA-ene inneholder kun programmerbart materiale og konfigurerbar inngang/utgang for generell bruk (GPIO) (a), ulike arkitekturer utvider dette grunnleggende materialet med SRAM-blokker, PLL-er og klokkeadministratorer (b), DSP-blokker og SERDES-grensesnitt (c) og hardprosessorkjerner og periferiutstyr (d). (Bildekilde: Max Maxfield)

Funksjoner for perifergrensesnitt som CAN, I2C, SPI, UART og USB kan implementeres som myke kjerner i det programmerbare materialet, men mange FPGA-er bruker dem som harde kjerner i silikonet. På samme måte kan mikroprosessorer implementeres som myke kjerner i det programmerbare materialet eller som harde kjerner i silikon (figur 1d). Ulike FPGA-er tilbyr ulike funksjonssamlinger, egenskaper og kapasiteter som er rettet mot ulike markeder og bruksområder.

Det finnes en rekke FPGA-leverandører, inkludert Altera (som ble oppkjøpt av Intel), Atmel (som ble oppkjøpt av Microchip Technology), Lattice Semiconductor, Microsemi (som også ble oppkjøpt av Microchip Technology) og Xilinx.

Alle disse leverandørene har flere FPGA-serier. Noen tilbyr SoC-FPGA-er (system-on-chip) (som inneholder harde prosessorkjerner), og noen tilbyr enheter som tåler stråling og som er rettet mot miljøer med høy stråling, som verdensrommet. Det kan være vanskelig å velge den beste enheten for oppgaven, da det er så mange serier som hver tilbyr ulike ressurser. Denne artikkelen fokuserer på enhetsseriene og konstruksjonsverktøyene som Lattice Semiconductor tilbyr.

FPGA-er fra Lattice Semiconductor

FPGA-er fra Lattice Semiconductor spenner fra lav til middels effekt, med fokus på laveffektsenheter som håndterer nettverksproblemer fra inngangspunktet til skyen, for de raskt voksende kommunikasjons-, databehandlings-, industri-, bil- og forbrukermarkedene.

Lattice har fire hovedserier for FPGA:

  • iCE (som de mener er verdens minste FPGA-er med ultralav effekt)
  • CrossLink og CrossLinkPlus (optimalisert for høyhastighets video- og sensorprogrammer)
  • MachXO (optimalisert for å sammenkobling, ekspansjon, plattformstyring og sikkerhetsprogrammer)
  • ECP (generelle formålsenheter rettet mot tilkoblings- og akselerasjonsprogrammer)

Lattice tilbyr også en rekke kontrsuksjons- og verifiseringsverktøypakker, inkludert Lattice Diamond-programvare (for CrossLink/CrossLinkPlus-, MachXO- og ECP-enheter) og Lattice Radiant-programvare (for iCE FPGA-er og fremtidige arkitekturer), samt LatticeMico (et grafisk verktøy for å opprette myke mikroprosessorbaserte konstruksjoner), Lattice sensAI-stabelen og nevralt nettverk-kompilator (for konstruksjon av kunstig intelligens (AI) og maskinlæring (ML)).

Vanlig: ECP-FPGA-er

Lattice sine ECP-enheter er det mange konstruktører ser på som «vanlige» FPGA-er. De kan inneholde opptil 85 000 oppslagstabeller med firerinngang (LUT-er) i en avstandspakke på 10 millimeter (mm) x 10 mm, 0,5 mm avstand. De har lavt statisk og dynamisk strømforbruk med enkanals SERDES-funksjoner med protokollagnostikk under 0,25 watt, og firekanals SERDES-funksjoner under 0,5 watt.

I tillegg til SRAM-blokker, blokker for digital signalbehandling (DSP), faselåste sløyfer (PLL-er) og klokkeadministratorer, kan ECP-FPGA-er bruke programmerbar I/O-støtte for inngangs-/utgangsgrensesnitt for LVCMOS 33/25/18/15/12, XGMII, LVTTL, LVDS, Bus-LVDS, 7:1 LVDS, LVPECL og MIPI D-PHY.

Konfigurasjonscellene i ECP-FPGA-ene er SRAM-baserte. Dette betyr at konfigurasjonen må lastes fra en ekstern kilde (f.eks. en flashminneenhet, mikroprosessor eller mikrostyring) når strømmen brukes på systemet, i likhet med andre SRAM-baserte FPGA-er.

Et godt eksempel på en ECP-enhet er LFE5UM5G-25F-8BG381C ECP5 5G SERDES-kompatible FPGA i en pakke på 10 mm x 10 mm. Lattice leverer også et tilsvarende ECP5-5G-utviklingskort, LFE5UM5G-45F-VERSA-EVN (figur 2), slik at konstruktører lettere kan undersøke og eksperimentere med funksjonene i ECP5 FPGA-serien.

Bilde av Lattice Semiconductor ECP5-evalueringskortFigur 2: ECP5-evalueringskortet er et prototypekort med rikelig logikk, I/O (inngang/utgang), 5G SERDES og ekspansjonshoder. (Bildekilde: Lattice Semiconductor)

Liten i størrelse, men kraftig: Lattice iCE-FPGA-er

iCE-enhetene er de minste FPGA-ene som er tilgjengelige, der den minste enheten i serien tilbyr 18 innganger/utganger i en pakke på 1,4 mm x 1,4 mm. Med iCE-FPGA-er får du en fleksibel logisk arkitektur med opptil 5000 LUT-er med firerinngang, opptil 128 kilobit (Kbit) med Lattice sin innebygde sysMEM BRAM og 1 megabit (Mbit) enports-RAM (SPRAM), DSP-blokker med høy ytelse og tilpassbare innganger/utganger.

Selv om de er små og laveffekt med dvalemodus på kun 75 mikroampere (µA) og aktivmodus fra 1 til 10 milliampere (mA) på de fleste bruksområder, er også iCE-FPGA-ene kraftige. De kan for eksempel implementere kunstige nevrale nettverk (ANN-er) for påkrevd matching av mønster for å bruke alltid-på-intelligens i Edge.

Konfigurasjonsdataene i iCE-FPGA-er lagres i et ikke-flyktig minne (NVM), noe som betyr at disse enhetene kun kan programmeres én gang (OTP). De inneholder også SRAM-baserte konfigurasjonsceller. Konstruksjonen testes i konstruksjonsprosessen ved å laste inn de SRAM-baserte konfigurasjonscellene direkte fra verden utenfor. Når konstruksjonen er utført, kan det lastes inn i NVM. Når enheten er slått på, kopieres konfigurasjonen som er lagret i NVM automatisk til de SRAM-baserte konfigurasjonscellene på en parallell måte.

En iCE-enhet kan være ICE40UL1K-SWG16ITR1K iCE40 UltraLite, som er verdens minste formfaktor-FPGA (når denne artikkelen publiseres), og gir 42 mikrowatt (μW) statisk strøm i en pakke på 1,4 mm x 1,4 mm. HM01B0-UPD-EVN Himax HM01B0 UPduino-skjerming og sensAI modulært demonstrasjonskort er eksempler på representative utviklingskort (figur 3).

Bilde av Lattice Semiconductor Himax HM01B0 UPduino-skjermingFigur 3: Himax HM01B0 UPduino-skjerming er et komplett utviklingssett for implementering av kunstig intelligens (AI) ved bruk av syn og lyd som sensoriske innganger. (Bildekilde: Lattice Semiconductor)

Settet er basert på UPduino 2.0-kortet, et raskt prototype-utviklingskort i Arduino-formfaktoren, med ytelses- og inngang/utgang-egenskapene til iCE40 UltraPlus FPGA. Den inkluderer også Himax HM01B0 laveffekt sensormodul og to I2S-mikrofoner.

Spesialisert: FPGA-er fra CrossLink og CrossLinkPlus

CrossLink- og CrossLinkPlus-seriene er spesialiserte FPGA-er som i tillegg til programmerbare logikk- og betydelige inngang/utgang-funksjoner, inneholder herdede versjoner av spesifikasjoner som er mye brukt i industri og bilbransje. Disse inkluderer mobilindustriens prosessorgrensesnitt (MIPI) D-PHY-standard for høyhastighets datakommunikasjon med fysiske lag, CSI2- (Camera Serial Interface 2) og DSI2-kjerner (Display Serial Interface 2). Disse fås i pakker på 6 mm x 6 mm (CrossLink) og 3,5 mm x 3,5 mm (CrossLinkPlus).

I likhet med iCE-FPGA-er, lagres konfigurasjonsdataene i CrossLink-enhetene i OTP NVM og inneholder SRAM-baserte konfigurasjonsceller som kan lastes direkte inn under utvikling for testing. Når konstruksjonen er valgt, lastes den inn i NVM og kopieres parallelt til de SRAM-baserte konfigurasjonscellene ved oppstart. Når vi sammenligner dem, er konfigurasjonscellene i CrossLinkPlus-enheter flash-baserte, som betyr at disse enhetene kan omprogrammeres etter behov. I tillegg får du umiddelbar tilgang på mindre enn 10 millisekunder (ms).

Et eksempel på en CrossLink-enhet er LIF-MD6000-6JMG80I, som har 5936 logikkelementer/-celler, 184 320 RAM-biter totalt og 37 innganger/utganger. Med det innebygde visjon-utviklingssettet, LF-EVDK1-EVN, kan konstruktører kombinere CrossLink-baserte MIPI-innganger med ECP5 FPGA-behandling til prototyper av innebygde visjonskontrsuksjon (figur 4), for å komme i gang med innebygde visjon-kontrsuksjon.

Bilde av Lattice LF-EVDK1-EVN innebygd visjon-utviklingssettFigur 4: Med det innebygde visjon-utviklingssettet, Lattice LF-EVDK1-EVN, får konstruktører av innebygde systemer en prototype av et programvare- og maskinvaremiljø som inkluderer muligheten til å kombinere inngangs- og utgangskort for grensesnittet, med flere bildesensorer og skjermer. (Bildekilde: Lattice Semiconductor)

For innganger-utganger og strømstyringsfunksjoner: FPGA-er fra MachXO

Med hundrevis av innganger-utganger er FPGA-er fra MachXO perfekte for en rekke bruksområder som krever GPIO-utvidelse, grensesnittsammenkobling og administrasjonsfunksjoner for oppstart. Nylige serieenheter er konstruert for NIST-samsvar og inkluderer flere sikkerhetsfunksjoner for å sikre at systemmaskinvaren og fastvaren er sikker.

FPGA-er fra MachXO har et robust sett med GPIO-er som inkluderer funksjoner som «hot socketing»-egenskaper. Dette betyr at spenningen kan brukes på innganger-utganger, uavhengig av tilstanden til strømforsyningsskinnene. Selv om de fleste FPGA-innganger settes til en standard opptrekkstilstand, settes MachXO-innganger til en standard nedtrekkstilstand. Dette gjør at de er egnet til kontrollfunksjoner. Med FPGA-er fra MachXO får du ideelle løsninger for «først på, sist av»-kontrollenheter som styrer og setter andre komponenter i rekkefølge ved systemoppstart og -avslutning, med umiddelbar tilgang på mindre enn 10 ms.

Konfigurasjonsdataene i MachXO-enheter lagres i flash-minnet. MachXO-enheter inneholder også SRAM-baserte konfigurasjonsceller. Når enheten er slått på, kopieres konfigurasjonsdataene som er lagret i flash automatisk til de SRAM-baserte konfigurasjonscellene på en parallell måte. Når enheten kjører, kan du laste en ny konfigurasjon i flash, og deretter gjøre slik at denne nye konfigurasjonen kopieres til SRAM-cellene på et passende tidspunkt.

Et godt eksempel på en MachXO-enhet er LCMXO3LF-9400C-6BG256C med 9400 logikkelementer/-celler, 442 368 RAM-biter totalt og 206 innganger/utganger. LCMXO3LF-6900C-S-EVN MachXO3-startpakken (MachX03L-versjon) er et representativt utviklingskort.

Bilde av Lattice Semiconductor MachXO3L-oppstartssettFigur 5: MachXO3L-startpakken er et grunnleggende forgreningskort for å muliggjøre enkel evaluering og utvikling av en MachXO3L-basert konstruksjon. (Bildekilde: Lattice Semiconductor)

SPI-flash er tilgjengelig på settkortet for evaluering av eksterne oppstarts- eller dobbeltoppstartsfunksjoner. Vi anbefaler LCMXO3L-DSI-EVN MachXO3L DSI-forgreningskortet for MIPI DSI- og CSI2 inngangs/utgangs (I/O)-evaluering, og LCMXO3L-SMA-EVN MachXO3L SMA-forgreningskortet for differensial inngangs/utgangs (I/O)-evaluering med høy hastighet.

Konstruksjon og utvikling med FPGA-er fra Lattice Semiconductor

Språkdrevet konstruksjon (language-driven design – LDD) er en av de vanligste teknikkene som brukes til å utvikle med FPGA-er. Dette inkluderer å finne formålet med konstruksjonen på et abstraksjonsnivå, kalt registeroverføringsnivå (RTL). Dette utføres ved hjelp av et maskinvarebeskrivelsesspråk (HDL), for eksempel Verilog eller VHDL. Når vi har verifisert enheten med logikksimulering, mates denne representasjonen i en syntesemotor sammen med ytterligere informasjon, som for eksempel FPGA-måltype, pinnetilordninger og tidsbegrensninger (f.eks. maksimale inngangs- og utgangsforsinkelser). Resultatet fra syntesemotoren er en konfigurasjonsfil som enten lastes direkte inn i FPGA-en, eller som lastes inn i en ekstern minneenhet for SRAM-baserte FPGA-er (figur 6).

Skjema over RTL-konstruksjonsbeskrivelse matet inn i en syntesemotorFigur 6: Etter verifisering med logikksimulering, mates RTL-konstruksjonsbeskrivelsen inn i en syntesemotor sammen med flere konstruksjonsdetaljer, som FPGA-typen, pinnetilordninger og tidsbegrensninger. Resultatet fra syntesemotoren er en konfigurasjonsfil som lastes direkte inn i FPGA-en (for NVM- eller flash-baserte enheter), eller inn i en ekstern minneenhet (for SRAM-baserte enheter). (Bildekilde: Max Maxfield).

Lattice Diamond er inkludert i denne verktøyklassen og tilbyr en komplett GUI-basert FPGA-konstruksjon og verifiseringsmiljø for CrossLink-, MachXO- og ECP-enheter.

I likhet med Lattice Diamond, tilbyr også Lattice Radiant et komplett GUI-basert FPGA-konstruksjon og verifiseringsmiljø, men Lattice Radiant er rettet mot iCE-FPGA-er og fremtidig arkitektur.

Lattice Radiant har flere ulike funksjoner:

  • Bransjestandard IEEE 1735 for intellektuell eiendom-kryptering (IP) og konstruksjonsbegrensninger for synopsis (SDC) for maksimal interoperabilitet
  • Et integrert verktøysettmiljø sørger for enkel navigering og feilsøking i konstruksjonen
  • Enkel «ettklikk»-utførelse av implementering av konstruksjon i en ny prosessverktøylinje
  • Komplett fysisk til logisk implementering av konstruksjon med lukket sløyfe for kryssonding
  • En IP-pakkeegenskap som gjør det mulig for utviklere og tredjeparts IP-leverandører å pakke kryptert IP i et skjema som er egnet for distribuering

Systemutviklingsverktøy fra LatticeMico

Lattice tilbyr to myke prosessorkjerner – LatticeMico8 og LatticeMico32 – som begge kan implementeres i FPGAs programmerbare materiale.

LatticeMico8 er en 8-biters mikrostyring som er optimalisert og testet for MachXO2-serien med programmerbare logiske enheter (PLD-er). Den kan også brukes som referansekonstruksjon for de andre FPGA-seriene. Mikrostyringskjernen kombinerer et fullstendig 18-biters instruksjonssett med 32 generelle formål-registre, og bruker minimalt med enhetsressurser – mindre enn 200 LUT-er i den minste konfigurasjonen – samtidig som den opprettholder et bredt funksjonssett.

LatticeMico32 er en 32-biters mikroprosessor med Harvard- og RISC-arkitektur. Ved å kombinere et 32-biters instruksjonssett med 32 generelle formål-registre leverer LatticeMico32 en ytelse og fleksibilitet som er egnet for flere markeder. Ved å bruke en RISC-arkitektur bruker kjernen minimalt med enhetsressurser, samtidig som den opprettholder ytelsen som er nødvendig for et bredt programsett. Vi kan bruke LatticeMicro32 til å integrere alternative WISHBONE-styringer som er kompatible med periferikomponenter for å øke utviklingen av mikroprosessorsystemer.

LatticeMico-systemutviklingsverktøy gir et grafisk brukergrensesnitt, slik at brukere kan dra og slippe LatticeMico-prosessorkjerner og periferienheter, koble dem til busser og definere ulike parametere for hver komponent, for eksempel plassering i prosessorens adresseområde. Når systemet er definert, kan verktøyene automatisk generere tilsvarende RTL som skal simuleres og syntetiseres. Systemet inkluderer også verktøy som gjør det mulig for brukere å generere programvaren som skal kjøres på prosessorkjernene.

Verktøy for maskinlæring: Lattice sensAI-stabel og nevralt nettverk-kompilator

Programmer for maskinlæring (ML) og kunstig intelligens (AI) blir for øyeblikket distribuert på en rekke innebygde systemer og over hele IoT (internet of Things), inkludert IIoT (Industrial Internet of Things).

Lattice sensAI-stabelen inkluderer alt som er nødvendig for å evaluere, utvikle og distribuere FPGA-baserte ML/AI-løsninger, inkludert modulære maskinvareplattformer, eksempeldemonstrasjoner, referansekonstruksjon, nevrale nettverks-IP-kjerner, programvareverktøy for utvikling og tilpassede konstruksjonstjenester. Denne stabelen er konstruert for raskere leveringstid til markedet for utviklere av fleksibel maskinlæring som brukes i IoT-programmer for forbrukere og industrien.

Lattice akselerasjons-IP-kjerne for konvolusjonsnevrale nettverk (CNN) er en beregningsmotor for dype nevrale nettverk (DNN). Motoren er optimalisert for konvolusjonsnevrale nettverk, slik at den kan brukes til visjonsbaserte bruksområder, for eksempel klassifisering eller objektgjenkjenning og -sporing. CNN IP-kjernen krever ikke en ekstra prosessor, da den kan utføre de nødvendige beregningene.

Samtidig gjør Lattice sin nevralt nettverk-kompilator det mulig for konstruktører å ta nevrale nettverk som er opprettet i vanlige utviklingsrammeverk – som TensorFlow, Caffe og Keras – og kompilere dem for implementering i Lattice CNN og kompakte CNN-akselerasjons-IP-kjerner.

Konklusjon

Optimale konstruksjonsløsninger leveres ofte av en kombinasjon av prosessorer og FPGA-er, av FPGA-er alene, eller av FPGA-er som har harde prosessorkjerner som en del materialet sitt. Som teknologi har FPGA-er utviklet seg raskt de siste årene, og er i stand til håndtere mange av dagens konstruksjonskrav når det gjelder fleksibilitet, behandlingshastighet og effekt, noe som gjør dem svært nyttige for en rekke bruksområder, fra intelligente grensesnitt til maskinvisjon og kunstig intelligens.

Som vist tilbyr Lattice Semiconductor FPGA-er fra lav til middels effekt, med fokus på laveffektsenheter som håndterer nettverksproblemer fra inngangspunktet til skyen, for de raskt voksende kommunikasjons-, databehandlings-, industri-, bil- og forbrukermarkedene. Lattice tilbyr også flere konstruksjoner- og verifiseringsverktøyspakker som ser på flere konstruksjonsflyt, alt fra språkbasert konstruksjon til grafisk prosessorbasert konstruksjon, og konstruksjon som fokuserer på programmer for maskinlæring og kunstig intelligens.

DigiKey logo

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.

Om skribenten

Image of Max Maxfield

Clive "Max" Maxfield

Clive «Max» Maxfield fikk sin Bachlorgrad (BSc) i kontrollteknikk i 1980 fra Sheffield Hallam University, England og startet sin karriere som konstruktør for sentrale prosesseringsenheter (CPU-er) for stormaskiner (mainframe computers). Gjennom årene har Max designet alt fra silisiumbrikker til kretskort, samt fra hjernebølgeforsterkere til steampunk Prognostication Engines (ikke spør). Han har også vært i spissen for elektronisk designautomasjon (electronic design automation – EDA) i mer enn 30 år.

Max er forfatter og/eller medforfatter av en rekke bøker, inkludert Designus Maximus Unleashed (forbudt i Alabama), Bebop to the Boolean Boogie (En ukonvensjonell guide til elektronikk), EDA: Where Electronics Begins, FPGA-er (Hvor elektronikk begynner, field programmable gate arrays): Instant Access (Umiddelbar tilgang), og How Computers Do Math (hvordan datamaskiner gjør matematikk). Sjekk ut hans «Max's Cool Beans»-blogg.

Om denne utgiveren

DigiKeys nordamerikanske redaktører