Grunnleggende om FPGA-er – del 4: Kom i gang med FPGA-er fra Xilinx
Bidrag fra DigiKeys nordamerikanske redaktører
2020-04-01
Merknad fra redaktør: Optimale behandlingsløsninger blir ofte oppgitt ved kombinasjoner av RISC, CISC, grafikkprosessorer og FPGA-er, av FPGA-er alene, eller med FPGA-er som har hardprosessorkjerner som del av materialet sitt. Mange utviklere er imidlertid ikke kjent med egenskapene til FPGA-ene, hvordan de er utviklet og hvordan de kan brukes. Del 1 av denne serien bestående av flere deler gir en introduksjon av FPGA-er på et høyt nivå. Del 2 fokuserer på FPGA-tilbud fra Lattice Semiconductor, og del 3 er omhandler FPGA-enhetsfamilier og designverktøy og fra Microchip Technology (fra dets datterselskap Microsemi Corporation). Her, i del 4, blir komponenter og verktøy fra Xilinx diskutert. I del 5 blir tilbudene fra Altera vurdert.
Som vi så på i del 1, kan feltprogrammerbare portmatriser (Field-programmable gate arrays – FPGA) ha mange egenskaper som gjør dem til en uvurderlig databehandlingsressurs, enten brukt frittstående eller i en heterogen arkitektur. Men mange utviklere er ikke kjent med FPGA-er og hvordan man skal gå frem for å innlemme disse enhetene i designene deres.
Én måte å overvinne dette hindret på, er å se grundigere på FPGA-arkitekturer og tilknyttede verktøy fra store leverandører. Denne artikkelen ser på utvalget fra Xilinx.
Oversikt over FPGA-alternativer på høyt nivå
Det finnes mange ulike typer FPGA-er på markedet, hver med ulike kombinasjoner av egenskaper og funksjoner. Det sentrale ved alle FPGA-er er den programmerbare strukturen. Den er presentert som en matrise av programmerbare logikkblokker, også kjent som logikkelementer (LE-er) (figur 1a). Neste trinn opp i FPGA-strukturen er å inkludere for eksempel SRAM-blokker, kalt blokk-RAM (BRAM), faselåssløyfer (PLL-er) og klokkeadministratorer (figur 1b). Vi kan også legge til digitale signalbehandlede (DSP) blokker (kalt DSP-skiver) og høyhastighets serielle/deserielle (SERDES) blokker (figur 1c).
Figur 1: De enkleste FPGA-ene inneholder kun programmerbart materiale og konfigurerbar IO 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)
Ekstra grensesnittfunksjoner 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 silisiumet. På samme måte kan mikroprosessorer implementeres som myke kjerner i det programmerbare materialet eller som harde kjerner i silisium (figur 1d). FPGA-er med harde prosessorkjerner omtales som system-på-brikke (SoC)-FPGA-er. Ulike FPGA-er tilbyr ulike samlinger av funksjoner og egenskaper som er rettet mot ulike markeder og applikasjoner.
Det finnes en rekke FPGA-leverandører, inkludert Altera (som ble kjøpt opp av Intel), Atmel (som ble kjøpt opp av Microchip Technology),Efinix, Lattice Semiconductor, Microsemi (som også ble kjøpt opp av Microchip Technology) og Xilinx.
Alle disse leverandørene har flere FPGA-familier. Noen tilbyr SoC-FPGA-er, og noen tilbyr enheter som er målrettet mot applikasjoner med kunstig intelligens (KI) og maskinlæring (ML), mens andre tilbyr strålingstolerante enheter som er målrettet mot miljøer med høy stråling, for eksempel verdensrommet. Det kan være vanskelig å velge den beste enheten for oppgaven, da det er så mange familier som hver tilbyr ulike ressurser.
Introduksjon av Xilinx FPGA-er, SoC-er, MPSoC-er, RFSoC-er, og ACAP-er
Ytelsen og egenskapene til de programmerbare enhetstilbudene fra Xilinx spenner fra beskjedne til ekstremt høye. Fra tradisjonelle FPGA-er til SoC-er (FPGA-programmerbart materiale med én hardkjerneprosessor), MPSoC-er (FPGA-programmerbart materiale med flere hardkjerneprosessorer), RFSoC-er (MPSoC-er med RF-egenskaper), og ACAP-er (Adaptive Compute Acceleration Platforms) (Figur 2).
Figur 2: Med tiden har Xilinx’ arkitektoniske portefølje utviklet seg fra enkle FPGA-er som inneholder kun programmerbart materiale, til SoC-enheter der det programmerbare materialet er forsterket med en hardkjerneprosessor, til MPSoC-er med flere prosessorer, til RFSoC med RF-egenskaper, til den siste generasjonen med ACAP-er, som er målrettet mot applikasjoner som KI. (Bildekilde: Max Maxfield)
Xilinx har en så omfattende produktportefølje, adresserer så mange markedssegmenter, og oppgir et så bredt utvalg med distribusjonsmetoder at det kan være utfordrende for noen som er nye med FPGA-er å forstå det «store bildet».
I henhold til markedene som Xilinx adresserer, men er ikke begrenset til, datasentre (databehandling, nettverk, lagring), kommunikasjon (kablet, trådløs), luft- og romfart og forsvar, industri, vitenskap og medisin (ISM), testing, måling og emulering (TME), og bilindustri, kringkasting og forbrukere.
I henhold til distribusjonsmetoder, inkluderer disse det Xilinx kaller maskinvaretilpassbare enheter, som inkluderer brikker, evalueringskort og utviklingssett, distribuerbare sluttsystemer, som inkluderer system-moduler (SoM-er) og PCIe-akseleratorkort, og FPGA som en tjeneste (FAAS), som inkluderer evaluering og utnyttelse av Xilinx-teknologier via ledende leverandører i nettskyen, inkludert Amazon Web Services (AWS), Alibaba.com og Nimbix.net
Når det gjelder Xilinx FPGA-tilbudene, så er prosessteknologinoden (figur 3) en måte å kategorisere disse på.
Figure 3: Xilinx FPGA-tilbud gir en omfattende flernode-portefølje for å adressere krav over et bredt sett med applikasjoner. (Bildekilde: Max Maxfield)
Avhengig av målapplikasjonen, kan utviklere velge en FPGA med liten monteringsflate som blir implementert på en eldre teknologinode, eller eventuelt på en moderne nettverksapplikasjon, for eksempel velge en høyeffektsenhet med god kapasitet og god båndbredde implementert på en nyere teknologinode.
I henhold til design som krever én eller flere hardprosessorkjerner (og andre harde funksjoner som GPU-er, kodek-er og soft decision-dekoding, samt kjerner som videresender feilkorreksjon (SD-FEC)), tilbyr Xilinx en portefølje av enheter under paraplynavnet Zynq. Et sammendrag av tilbud på Zynq SoC, MPSoC, og RFSoC er vist i figur 4. Denne pakken med løsninger gir utviklere et bredt utvalg med egenskaper de kan bruke til å forenkle optimaliseringen for strøm, ytelse, kostnader og tid til markedet.
Figur 4: Tilbud på Xilinx SoC, MPSoC og RFSoC ved å integrere programvare-programmerbarheten til en prosessor med maskinvare-programmerbarheten til en FPGA, får utviklere systemytelse, fleksibilitet og skalerbarhet. (Bildekilde: Max Maxfield)
De nyeste tilbudene fra Xilinx er enheter med Versal Adaptive Compute Acceleration Platform (ACAP), som alle er implementert på en syv nanometers (nm) prosessteknologinode. ACAP-er er godt integrerte, flerkjerners databehandlingsplattformer som kan tilpasse seg til utviklende og mangfoldige algoritmer. De kan tilpasses dynamisk til maskinvare- og programvarenivåer, slik at de er egnet til et bredt utvalg applikasjoner og arbeidsbelastninger. ACAP-ers arkitektur er laget rundt et programmerbart nettverk på brikke (NoC), og kan enkelt programmeres av både maskinvare- og programvareutviklere.
Nye funksjoner i Versal-enhetene inkluderer intelligente motorer (en enorm matrise med vektorprosessorer for arbeidsbelastninger med ML og DSP); stor båndbredde, lav latenstid, og strømsparende, programmerbar NoC som kan flytte flere terabyte med data, og et integrert skall som gir forbedret ytelse, utnyttelse og produktivitet med en forhåndsbygget kjerneinfrastruktur og systemtilkobling.
En oversikt over Versal ACAP-porteføljen er vist i Figur 5.
Figur 5: Xilinx Versal ACAP-er er godt integrerte, flerkjerners databehandlingsplattformer som kan tilpasse seg til utviklende og mangfoldige algoritmer. ACAP-er kan tilpasses dynamisk til maskinvare- og programvarenivåer, slik at de er egnet til et bredt utvalg av applikasjoner og arbeidsbelastninger. (Bildekilde: Max Maxfield)
Som det vil bli drøftet i designverktøy-delen, er en nøkkel-differensiator tilknyttet Versal-enhetene en ny programvaregruppe som er målrettet mot dataforskere og programvareingeniører, så vel som tradisjonelle maskinvareutviklings-ingeniører.
Det finnes nå store mengder med tilgjengelige Xilinx-enheter. Noen få representative tilbud kan være en Artix-7 FPGA, en Kintex UltraScale FPGA, en Kintex UltraScale+ FPGA, en Zynq-7000 SoC-modul fra Trenz Electronic GmbH, og en Zynq UltraScale+ MPSoC.
Samtidig finnes det et bredt utvalg evaluerings- og utviklingskort. Noen representative tilbud kunne være et Artix-7 FPGA-evalueringskort fra Digilent, et Kintex UltraScale FPGA-evalueringskort fra Analog Devices, et Kintex UltraScale+ FPGA-evalueringskort fra Xilinx, et Zynq-7000 SoC FPGA-evalueringskort fra Digilent, og et Zynq UltraScale+ MPSoC FPGA-evalueringskort, også fra Xilinx.
Design og utvikling med Xilinx FPGA-er, SoC-er, og ACAP-er
Et område der Xilinx virkelig skiller seg ut, er bredden og dybden i designverktøyene og designflyten.
I del 1 av denne serien om FPGA-er, la vi merke til at den vanlige måten å designe disse enhetene på er at ingeniører bruker et maskinvarebeskrivelsesspråk (HDL), som Verilog eller VHDL, for å fange intensjonen med utformingen på et abstraksjonsnivå kjent som registeroverføringsnivå (RTL). Disse RTL-beskrivelsene kan først simuleres for å bekrefte at de fungerer slik man ønsker, deretter sendes de til et synteseverktøy som genererer konfigurasjonsfilen som brukes til å programmere FPGA-en.
Neste trinn opp i abstraksjonen er å fange designets intensjon ved å bruke et programmeringsspråk som C/C++, eller en spesiell implementering som SystemC, som er et sett med C++-klasser og makroer som gir et hendelsesdrevet simuleringsgrensesnitt. Dette forenkler simuleringen av samtidige prosesser, der hver er beskrevet ved å bruke vanlig C++-syntaks. Slike beskrivelser kan analyseres og profileres ved å kjøre dem som vanlige programmer, og deretter blir de sendt videre til en syntesemotor med høyt nivå (HLS), som sender ut RTL som mates inn i den vanlige syntesemotoren.
All denne funksjonaliteten brukes av Vivado Design Suite HLx Editions, og dens utgang er strømmen av konfigurasjonsbits som blir lastet inn i de målrettede FPGA-, SoC-, MPSoC-, RFSoC- eller ACAP-enhetene. I tillegg til å la maskinvareutviklere utnytte C-basert design og optimalisert gjenbruk, gir Vivado også gjenbruk av IP-delsystemet, integreringsautomasjon og akselerert designlåsing (figur 6).
Figur 6: En høynivåvisning av Xilinx Vivado- og Vitis-designverktøy viser hvordan brukere kan jobbe med verktøyene på de mest passende abstraksjonsnivåene. Maskinvareutviklere arbeider med Vivado, programvareutviklere arbeider med Vitis, og KI- og dataforskere arbeider med Vitis AI. (Bildekilde: Max Maxfield)
Det neste abstraksjonsnivået støttes av Vitis Unified Software Platform, som gir programvareutviklere muligheten til å sømløst bygge akselererte applikasjoner. Det som begrepsmessig «sitter på toppen» for Vitis er Vitis AI, som gir KI- og dataforskere muligheten til å arbeide på abstraksjonsnivået TensorFlow. Vitis AI er en utviklingsplattform for KI-inferens på Xilinx-maskinvareplattformer, som inkluderer både inngangspunktenheter og Alveo PCIe-kort. Den består av optimalisert IP, verktøy, biblioteker, modeller og designeksempler, og er utviklet for å utnytte det fulle potensialet for KI-akselerasjon på Xilinx FPGA- og ACAP-enheter.
Vitis AI mates inn i Vitis, som igjen mates inn i Vivado. Den viktigste lærdommen fra figur 6 er at brukere bare «ser» hva de trenger å «se». Det vil si at maskinvareutviklere bare «ser» Vivado, programvareutviklere bare «ser» Vitis, og KI- og dataforskere bare «ser» Vitis AI. På denne måten kan brukere arbeide med verktøyene på det abstraksjonsnivået som egner seg best.
Ved å gi programvareutviklere en verktøyserie som Vitis, som isolerer dem fra den underliggende maskinvaren, blir FPGA-er tilgjengelige for en mye større gruppe med utviklere. På samme måte blir FPGA-er tilgjengelige for en ny klasse med utviklere når KI- og dataforskere får tilgang til en verktøyserie som Vitis AI, som gjør at de kan fokusere på sitt eget abstraksjonsnivå og isolere dem fra den underliggende programvaren.
Ved å tilby disse egenskapene er Xilinx den ledende innenfor en bransje som presser sterkt på for å heve FPGA-verktøyene til stadig høyere nivåer av designabstraksjon, noe som vil bidra til at utviklere lettere kan dra nytte av egenskapene til disse enhetene og integrere dem i sitt neste design.
Konklusjon
Optimale prosessdesignløsninger leveres ofte av en kombinasjon av prosessorer og FPGA-er, av FPGA-er alene, eller av FPGA-er som har hardprosessorkjerner som en del materialet sitt. Som teknologi har FPGA-er utviklet seg raskt de siste årene, og de er i stand til håndtere mange designkrav når det gjelder fleksibilitet, behandlingshastighet og strøm, noe som gjør dem svært nyttige for et bredt utvalg av applikasjoner, fra intelligente grensesnitt til maskinsyn og kunstig intelligens.
Som vist er spenner ytelsen og egenskapene til de programmerbare enhetstilbudene fra Xilinx seg langt. De spenner fra tradisjonelle FPGA-er til SoC-er (FPGA-programmerbart materiale med en enkel hardkjerneprosessor), MPSoC-er (FPGA-programmerbart materiale med flere hardkjerneprosessorer), RFSoC-er (MPSoC-er med RF-egenskaper), og ACAP-er (Adaptive Compute Acceleration Platforms).
Xilinx tilbyr en verktøypakke for å oppfylle behovene til maskinvareutviklere (Vivado), programvareutviklere (Vitis), og KI- og dataforskere (Vitis AI) for å hjelpe utviklere med å lage design med disse enhetene.
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.



