Grundlæggende om FPGA'er – del 3: Sådan kommer du i gang med Microchip Technologys FPGA'er
Bidraget af DigiKeys nordamerikanske redaktører
2020-01-30
Redaktørens bemærkning: Optimale processeringsløsninger leveres ofte af kombinationer af RISC, CISC, grafikprocessorer og FPGA'er, enten af FPGA'er på egen hånd eller af FPGA'er, der kan prale af hårde processorkerner som en del af deres struktur. Imidlertid er mange udviklere ikke bekendt med FPGA'ers egenskaber, hvordan de har udviklet sig, og hvordan de bruges. Del 1 af denne serie i flere dele giver en introduktion til FPGA'er på højt niveau. I del 2 er fokus rettet mod FPGA-tilbud fra Lattice Semiconductor. Her koncentrerer del 3 sig om FPGA-enhedsserierne og designværktøjer fra Microchip Technology (via datterselskabet Microsemi Corporation). I del 4 og del 5 ser vi på FPGA'er og værktøjer fra Alteraog Xilinx.
Som drøftet i del 1 har feltprogrammerbare gate arrays (FPGA'er) mange egenskaber, der gør dem til et uvurderligt computeraktiv, enten anvendt separat eller i en heterogen arkitektur, men mange udviklere er ikke bekendt med FPGA'er, og hvordan de kan integrere disse enheder i deres design.
En måde at løse denne udfordring på er at se mere indgående på FPGA-arkitekturer og relaterede værktøjer fra større leverandører. Denne artikel tager et kig på Microchip Technologys sortiment.
Oversigt over FPGA-alternativer på højt niveau
Der er mange forskellige typer FPGA'er på markedet, hver med forskellige kombinationer af egenskaber og funktioner. Den programmerbare struktur udgør hjertet i enhver FPGA. Dette præsenteres som en række programmerbare logikblokke, også kendt som logiske elementer (LE'er) (figur 1a). Det næste trin op ad FPGA-strukturen er at inkludere ting såsom SRAM-blokke, kaldet "block RAM" (BRAM), faselåseslynge (PLL'er) og urstyring (figur 1b). Digitale signalbehandlingsblokke (DSP) (kaldet DSP-skiver) og high-speed-blokke med serialiseringsfunktion/serie-parallel omsætter (SERDES) kan også tilføjes (figur 1c).
Figur 1: De enkleste FPGA'er indeholder kun programmerbar struktur og konfigurerbar almindelig IO (GPIO) (a), forskellige arkitekturer udvider denne grundlæggende struktur med SRAM-blokke, PLL'er og urstyring (b), DSP-blokke og SERDES-interfaces (c) samt 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 den programmerbare struktur, men mange FPGA'er inkluderer dem som hårde kerner i siliciummet. Tilsvarende kan mikroprocessorer implementeres som bløde kerner i den programmerbare struktur eller som hårde kerner i siliciummet (figur 1d). FPGA'er med hårde processorkerner kaldes for FPGA'er til System-on-Chip (SoC). Forskellige FPGA'er tilbyder forskellige samlinger af funktioner, egenskaber, kompetencer og kapaciteter målrettet mod forskellige markeder og applikationer.
Der er en række FPGA-leverandører, herunder Altera (som blev erhvervet af Intel), Atmel (som blev erhvervet af Microchip Technology), Lattice Semiconductor, Microsemi (som også blev erhvervet af Microchip Technology) samt Xilinx.
Alle disse leverandører opstiller flere FPGA-serier. Nogle tilbyder FPGA'er til System-on-Chip (SoC), og nogle tilbyder strålingstolerante enheder, der er rettet mod miljøer med høj stråling såsom rummet. Det kan være vanskeligt at vælge den bedste enhed til den relevante opgave, fordi der findes så mange serier, der hver tilbyder forskellige ressourcer.
Introduktion af FPGA'er fra Microchip Technology
Microchip Technologys FPGA-udvalg spænder fra lav til mellem rækkevidde og fokuserer på lavenergienheder med høj sikkerhed og enestående pålidelighed. Med udrulningen i kabelforbundet og trådløs kommunikation, forsvar og luftfart samt industrielt integrerede applikationer tilbyder FPGA'er fra Microchip solide DSP- og hukommelsesressourcer og demonstrerer værdi i applikationer såsom hardwareacceleration, kunstig intelligens, billedbehandling og edge computing.
Microchip tilbyder tre primære FPGA-serier:
- IGLOO®2-FPGA'er: Enheder med lav densitet med betydelige ressourcer
- SmartFusion®2-FPGA'er til SoC: Enheder med lav densitet med betydelige ressourcer og en 32-bit hård processorkerne
- PolarFire™-FPGA'er og FPGA'er til SoC: Omkostningsoptimerede, højtydende enheder implementeret på 28 nanometer (nm) procesteknologi
Alle FPGA'er er udstyrede med konfigurationsceller, der bestemmer funktionaliteten af hver af de programmerbare logikblokke samt måden, hvorpå logikblokkene er forbundet med hinanden og den omgivende verden. Disse celler bruges også til at konfigurere GPIO'ens standardinterface, indgangsimpedans og udgangshastighed osv.
Nogle FPGA'er bruger SRAM-baserede konfigurationsceller, men disse er flygtige, hvilket betyder, at de mister deres indhold, når strømmen tages af systemet. Det betyder til gengæld, at konfigurationsdataene skal indlæses fra en ekstern kilde – typisk en flash-hukommelsesenhed – når systemet tændes. Disse FPGA'er tager længst tid at starte op og blive klar til brug.
Nogle FPGA'er bruger flash-hukommelse på chip til at gemme konfigurationsdataene, men de har stadig SRAM-baserede konfigurationsceller. I dette tilfælde vil en controller på chip ved opstart kopiere konfigurationsdataene fra flash-konfigurationshukommelsen til SRAM-konfigurationscellerne. Disse FPGA'er er hurtigere end deres rene SRAM-søskende.
Microchips IGLOO2-FPGA'er og SmartFusion2-FGPA'er til SoC anvender en anden mekanisme, hvor både konfigurationshukommelsen på chip og konfigurationscellerne på chip implementeres ved hjælp af flash-teknologi. På PolarFire-enheder er konfigurationscellerne baseret på silicium-oxid-nitrid-oxid-silicium-teknologi (SONOS) for ikke-flygtig hukommelse (NVM), der kan opfattes "som flash, men bedre".
Da konfigurationsdataene gemmes i ikke-flygtige flash-celler (eller SONOS-celler), tilkobles Microchips FPGA'er og FPGA'er til SoC "uden ventetid". Det vil sige, at de tændes hurtigere end nogen anden type FPGA. Grunden til, at disse enheder også er udstyret med en flash-konfigurationshukommelse, er, at en ny konfiguration kan indlæses i denne konfiguration, mens FPGA'en fortsætter med at køre, ved hjælp af den eksisterende konfiguration i dens konfigurationsceller. Når overførslen af den nye konfiguration er gennemført og kontrolleret (konfigurationen kan krypteres og ledsages af en cyklisk redundanskontrol (CRC)), kan enheden sættes i en sikker tilstand, mens den nye konfiguration, der er gemt i konfigurationshukommelsen, bruges til at overskrive den oprindelige konfiguration, der er gemt i konfigurationscellerne.
Traditionelle enheder: IGLOO2-FPGA'er
IGLOO2 er gode, universelle FPGA'er med lav til mellem rækkevidde. De er, hvad mange udviklere vil betragte som "traditionelle" FPGA'er. Disse flash-FPGA-enheder er ideelle til generaliserede funktioner som f.eks. Gigabit Ethernet eller Dual PCI Express-styringsniveauer, brodannelsesfunktioner, input/output-udvidelse (I/O-udvidelse) og -konvertering, video- og billedbehandling, systemhåndtering og sikker opkobling. Applikationer dækker hele spektret, herunder kommunikation, industri, medicin, forsvar og luftfart.
Figur 2: IGLOO2-FPGA'er er ideelle til generaliserede funktioner, som f.eks. Gigabit Ethernet eller Dual PCI Express-styringsniveauer, brodannelsesfunktioner, I/O-udvidelse og -konvertering, video- og billedbehandling, systemhåndtering og sikker opkobling. (Billedkilde: Microchip Technology)
IGLOO2-FPGA'er byder på 5.000 til 150.000 LE'er med et højtydende hukommelsesdelsystem, integreret flash på op til 512 kilobyte (Kbyte), integreret statisk RAM-kredsløb på 2 x 32 Kbyte (SRAM), to motorer til direkte hukommelsesadgang (DMA) og to controllere med dobbelt datahastighed (DDR-controllere). Enhederne er desuden udstyret med op til 16 transceiver-baner, integrerede DSP-processorblokke og hukommelser beskyttet mod eller tolerante over for enkelt forstyrrelse (SEU). For en sikkerheds skyld er de styrket med differentieret effektanalyse (DPA) og bruger AES256- og SHA256-kryptering samt kontrol af dataintegritet.
Et godt eksempel på en IGLOO2-enhed er M2GL025-FGG484I med 27.696 LE'er, 1.130.496 bit RAM og 267 I/O. For give udviklere mulighed for at undersøge og eksperimentere med funktionerne i IGLOO2-FPGA-serien leverer Microchip også et tilsvarende IGLOO2-evalueringskit, M2GL-EVAL-KIT (figur 3).
Figur 3: M2GL-EVAL-KIT er et evalueringskit til IGLOO2 med et højt niveau af funktionsintegration sammenkoblet med lavt strømforbrug, høj pålidelighed og avanceret sikkerhed. (Billedkilde: Microchip Technology)
M2GL-EVAL-KIT gør det nemt at udvikle integrerede applikationer, der indbefatter motorstyring, systemhåndtering, industriel automatisering og high-speed serielle I/O-applikationer samt PCI Express og Gigabit Ethernet. Kittet byder på en høj grad af funktionsintegration samt høj pålidelighed og avanceret sikkerhed med lavt strømforbrug. Kortet er også i overensstemmelse med den lille formfaktor-PCIe, som gør det muligt for at udvikle prototyper ved hjælp af en hvilken som helst stationær pc eller bærbar computer med et PCIe-stik.
Entry-level-SoC'er: SmartFusion2 FPGA'er til SoC
SmartFusion2-FPGA'er til SoC er baseret på den traditionelle programmerbare struktur, som findes i IGLOO2-enheder, udvidet med en 32-bit hård processorkerne. Eftersom processoren er en kendt del af Arm® Cortex®-serien, giver SmartFusion2-serien et godt afsæt til SoC-FPGA'ernes verden.
Disse FPGA'er til SoC byder på 5.000 til 150.000 LE'er med en 166 megahertz (MHz) ARM Cortex-M3-processor, herunder integreret sporingsmakrocelle (ETM), instruktionscache med eSRAM på chip og integreret NVM (eNVM) samt et komplet microcontroller-delsystem, der er udvidet med en lang række af eksterne enheder, herunder CAN, TSE og USB.
Figur 4: SmartFusion2-FPGA'er til SoC byder på 5.000 til 150.000 LE'er med en 166 MHz ARM Cortex-M3-processor, herunder ETM, instruktionscache med eSRAM på chip og eNVM samt et komplet microcontroller-delsystem, der er udvidet med en lang række af eksterne enheder, herunder CAN, TSE og USB. (Billedkilde: Microchip Technology)
Disse flash-FPGA-enheder til SoC er ideelle til generaliserede funktioner som f.eks. Gigabit Ethernet eller Dual PCI Express-styringsniveauer, brodannelsesfunktioner, I/O-udvidelse og -konvertering, video-/billedbehandling, systemhåndtering og sikker opkobling. Endvidere er applikationerne mange og forskelligartede: lige fra kommunikation, industri og medicin til forsvar og luftfart.
Et godt eksempel på en SmartFusion2-enhed er M2S025-FCSG325I med 25.000 LE'er, 256 Kbytes flash, 64 Kbytes RAM og et 32-bit Arm Cortex-M3-processordelsystem, der kører ved 166 MHz. For at gøre det muligt for udviklere at undersøge og eksperimentere med funktionerne i SmartFusion2 FPGA-familien til SoC tilbyder Microchip også et tilsvarende SmartFusion2-makerboard, M2S010-MKR-KIT (figur 5).
Figur 5: SmartFusion2-makerboardet er et prisbilligt evalueringskit til SmartFusion2-FPGA'en til SoC, som kombinerer en Arm Cortex-M3-processor med flash-baseret FPGA-struktur på en enkelt chip, sammen med mange af de perifere enheder, SoC-brugere er vant til, såsom RAM- og DSP-blokke. (Billedkilde: Microchip Technology)
Det prisbillige SmartFusion2-makerboard, som udelukkende sælges af DigiKey, giver udviklere adgang til SmartFusion2-serien. Denne særlige enhed byder på en flash-baseret FPGA-struktur med 12.000 LE'er, en 32-bit ARM Cortex-M3-processor på 166 MHz, DSP-blokke, SRAM, eNVM og GPIO-interfaces på en enkelt chip.
SmartFusion2-makerboardet indeholder derudover et Ethernet-interface, en sensor for omgivende lys, SPI-flash, otte bruger-LED'er og to brugertrykknapper.Boardet omfatter også to tomme fritlagte forbindelser, der understøtter ESP32- og ESP8266-modulerne til Wi-Fi/Bluetooth (medfølger ikke). Det understøtter en USB-port til JTAG-programmering og UART-kommunikation, og det driver boardet. Boardet indeholder også SPI-flash, en clock-kilde på 50 MHz og Microchips fysiske lag (PHY)VSC8541 til Ethernet på 100 megabit pr. sekund (Mbit/s) eller 1 gigabit pr. sekund (Gbit/s).
Omkostningsoptimeret og højtydende: PolarFire-FPGA'er og FPGA'er til SoC
PolarFire FPGA'er er omkostningsoptimerede, højtydende enheder, der implementeres i procesteknologi på 28 nm. Disse enheder er udviklet til at forbruge mindst mulig strøm ved tætheder i mellemklassen med en høj grad af sikkerhed og pålidelighed.
Produktserien spænder fra 100.000 til 500.000 LE'er, indeholder transceivere på 12,7 Gbit og er udviklet med et strømforbrug, der er op til 50 % lavere end konkurrenternes FPGA'er i mellemklassen. Enhederne er ideelle til en lang række anvendelser inden for kabelbaserede netværk og mobilinfrastruktur, forsvarsmæssige og kommercielle luftfartsmarkeder samt industrielle automatiserings- og IoT-markeder.
Figur 6: PolarFire FPGA'er spænder fra 100.000 til 500.000 LE'er, indeholder transceivere på 12,7 Gbit og er udviklet med et strømforbrug, der er op til 50 % lavere end konkurrenternes FPGA'er i mellemklassen. (Billedkilde: Microchip Technology)
Hovedårsagen til, at PolarFire FPGA'er samlet bruger op til 50 % mindre strøm end konkurrenternes FPGA'er, er, at de anvender NVM-teknologi til både konfigurationshukommelsen og konfigurationscellerne i chippen. Dette giver i sig selv lav lækstrøm mellem konfigurationscellerne, og det betyder også, at disse enheder tilkobles "den ventetid" ved opstart, hvilket eliminerer tændingsstrøm- og konfigurationsstrømproblemer.
Internetsikkerhed er den største udfordring for opkoblede enheder i netværksperiferien, så det er ikke nok for udviklere blot at opfylde de funktionelle krav for deres design – de skal også gøre dette på en sikker måde. Sikkerhed starter under siliciumproduktionen og fortsætter gennem systemudrulning og -drift. PolarFire FPGA'er præsenteres af Microchip som branchens mest avancerede og sikre programmerbare FPGA'er.
Mange applikationer til komplekst elektronisk udstyr har en vis grad af sikkerhedskrav indbygget i deres design. PolarFire FPGA'er er udviklet til høj pålidelighed, høj tilgængelighed samt sikkerheds- og missionskritiske systemer i applikationer som industri, luftfart, militær og kommunikation. Funktioner, der gør PolarFire egnet til disse applikationer, omfatter:
- Fejlintensitet (FIT) på 0 for FPGA-konfiguration
- SEU-beskyttede hukommelser
- Hukommelsescontrollere med enkeltfejlrettelse og dobbeltfejlregistrering (SECDED)
- Indbygget selvtest
- Intet behov for eksterne konfigurationsenheder
Et godt eksempel på en PolarFire-enhed er MPF100T-FCSG325I med 109.000 LE'er, 7.782.400 bit RAM og 170 I/O. For give udviklere mulighed for at undersøge og eksperimentere med funktionerne i PolarFire FPGA-serien tilbyder Microchip også et tilsvarende PolarFire FPGA-evalueringskit, MPF300-EVAL-KIT (figur 7).
Figur 7: For at give udviklere mulighed for at undersøge og eksperimentere med funktionerne i PolarFire FPGA-serien tilbyder Microchip desuden det tilsvarende MPF300-EVAL-KIT FPGA-evalueringskit. (Billedkilde: Microchip Technology)
MPF300-EVAL-KIT byder på højtydende evaluering på tværs af en bred gruppe af anvendelser. Den er velegnet til højhastighedsevaluering af transceivere, 10 Gbit Ethernet, IEEE1588, JESD204B, SyncE, CPRI m.m. Kittets forbindelser omfatter et FPGA-mezzaninkort (FMC) med højt pin-antal (HPC), adskillige SMA'er, PCIe, Dual Gigabit Ethernet RJ45, SFP+ og USB. En PolarFire-FPGA med 300.000 LE'er, DDR4, DDR3 og SPI-flash giver mulighed for udvikling af en bred klasse af højtydende design.
Innovationen i PolarFire-serien fortsætter. I skrivende stund afslørede Microchip Technology detaljer om deres kommende PolarFire FPGA-serie til SoC med et hærdet, Linux-kompatibelt, RISC-V-baseret 64-bit open source-mikroprocessordelsystem i realtid.
Design og udvikling med Microchip Technologys FPGA'er
En af de mest almindelige teknikker, der bruges til udvikling med FPGA'er, er den, der er baseret på 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, VHDL eller SystemVerilog. Efter verifikation via logisk simulering føres denne repræsentation derefter ind i et synteseprogram sammen med yderligere oplysninger såsom mål-FPGA-typen, pin-tildelinger og tidsbestemmelser (f.eks. maksimale input til output-forsinkelser). Outputtet fra synteseprogrammet er en konfigurationsfil, der indlæses direkte i FPGA'en for Microchip-FPGA'er eller SoC-FPGA'er eller indlæses i en ekstern hukommelsesenhed for SRAM-baserede enheder (figur 6).
Figur 8: Efter verifikation via logiksimulering indføres RTL-designbeskrivelsen i et synteseprogram sammen med yderligere designdetaljer såsom FPGA-typen, pin-tildelinger og tidsbegrænsninger. Outputtet fra synteseprogrammet er en konfigurationsfil, der indlæses direkte i FPGA'en. (Billedkilde: Max Maxfield)
Microchips Libero SoC Design Suite hører under denne kategori af værktøj. Denne software tilbyder en omfattende suite af integrerede, letforståelige og brugervenlige udviklingsværktøjer til designarbejde med Microchips IGLOO2- og PolarFire-FPGA'er samt SmartFusion2-FPGA'er og PolarFire-FPGA'er til SoC. Suiten integrerer Synopsys Synplify Pro-branchestandardssyntese og Mentor Graphics' ModelSim-simulering med begrænsningshåndtering, programmerings- og fejlfindingsværktøjer samt understøttelse af sikker produktionsprogrammering.
Udover udvikling af design i tekstformat ved hjælp af Verilog, VHDL eller SystemVerilog omfatter suiten også grafiske oprettelser, hvor systemet kan defineres som et hierarki af forbundne blokke, hvor blokkene på lavere niveau repræsenteres i brugerdefineret HDL eller som tredjeparts-IP.
Der er også System Builder, som er et brugervenligt designværktøj, der leder brugerne igennem en række spørgsmål på højt niveau for at definere det tilsigtede system. System Builder starter med at stille spørgsmål om den ønskede systemarkitektur, tilføjer yderligere perifere enheder, der skal implementeres som bløde kerner i den programmerbare struktur, og ender med at skabe et komplet system med det rette design.
Sidst men ikke mindst er der det integrerede udviklingsmiljø (IDE) SoftConsole, der fremmer den hurtige udvikling af bare-metal- og RTOS-baseret C/C++-software til 32-bit soft-processorer, som ses i Microchips FPGA og SoC-FPGA'er samt de 32-bit og 64-bit processorkerner, der findes i henholdsvis SmartFusion2 og PolarFire FPGA'er til SoC.
Konklusion
Optimale processeringsdesignløsninger tilvejebringes ofte af kombinationer af processorer og FPGA'er, af FPGA'er alene eller af FPGA'er, der kan opvise hårde processorkerner som en del af deres struktur. Som en teknologi har FPGA'er udviklet sig hurtigt gennem årene og er i stand til at imødekomme mange konstruktionskrav med hensyn til fleksibilitet, processeringshastighed og effekt, hvilket gør dem yderst nyttige til en lang række applikationer fra intelligente interfaces til maskinsyn og AI.
Som vist spænder Microchip Technologys FPGA- og SoC FPGA-udvalg fra lav til mellem rækkevidde med fokus på lavenergienheder med høj sikkerhed og enestående pålidelighed. FPGA'er har robuste signalbehandlings- og hukommelsesressourcer og er en fremragende platform til udvikling af applikationer som f.eks. hardwareacceleration, kunstig intelligens, billedbehandling og edge computing i brancher, der spænder fra kommunikation og industri til militær og luftfart.
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.




