Grundprinciper för FPGA:er – del 3: Komma igång med FPGA:er från Microchip Technology
Bidraget med av DigiKeys nordamerikanska redaktörer
2020-01-30
Redaktörens anmärkning: Optimala processningslösningar skapas ofta genom kombinationer av RISC, CISC, grafikprocessorer och FPGA:er, FPGA:er på egen hand eller FPGA:er med interna processorkärnor. Dock är många konstruktörer inte bekanta med FPGA:ernas funktioner, hur de har utvecklats och hur de används. Del 1 i denna serie innehåller en inledning på hög nivå till FPGA:er. I del 2 gick vi in på FPGA:er från Lattice Semiconductor. Här i del 3 tittar vi närmare på FPGA-familjer och designverktyg från Microchip Technology (via deras dotterbolag Microsemi Corporation). I del 4 och 5 ska vi se på FPGA:er och verktyg från Altera och Xilinx.
Elektriskt programmerbara grindmatriser (FPGA:er) har – som vi diskuterade i del 1 – många egenskaper som gör dem till en ovärderlig tillgång vid databeräkningar (antingen använda fristående eller i en heterogen arkitektur) men många konstruktörer är fortfarande inte bekanta med FPGA:er och hur dessa enheter kan användas i deras konstruktioner.
Ett sätt att åtgärda detta är att titta närmare på FPGA-arkitektur och relaterade verktyg från större leverantörer. I denna artikel ska vi se på vad Microchip Technology har att erbjuda.
Översikt över alternativ inom högnivå-FPGA:er
Det finns många typer av FPGA:er på marknaden, alla med olika kombinationer av egenskaper och funktioner. Hjärtat i FPGA:er är den programmerbara strukturen. Denna presenteras som en matris med programmerbara logikblock, vilka även kallas logikelement (LE) (figur 1a). I nästa steg i FPGA-strukturen inkluderas till exempel SRAM-block, vilka kallas block-RAM (BRAM), faslåsta slingor (PLL:er) och klockhanterare (figur 1b). Digitala signalbehandlingsblock (DSP-lager) och höghastighets SERDES-block (serialisatorer/deserialisatorer) kan också läggas till (figur 1c).
Figur 1: De enklaste FPGA:erna innehåller endast programmerbar struktur och konfigurerbara GPIO:er (General-Purpose IO) (a), olika arkitekturer förstärker den grundläggande strukturen med SRAM-block, PLL:er och klockhanterare (b), signalprocessorblock och SERDES-gränssnitt (c) samt interna processorkärnor och kringutrustning (d). (Bildkälla: Max Maxfield)
Perifera gränssnittsfunktioner som CAN, I2C, SPI, UART och USB kan implementeras som mjukvarukärnor i den programmerbara strukturen, men många FPGA:er inkluderar dem som maskinvarukärnor i kiselmaterialet. På samma sätt kan mikroprocessorer implementeras som mjukvarukärnor i den programmerbara strukturen eller som hårdvarukärnor i kiselmaterialet (figur 1d). FPGA:er med interna processorkärnor kallas SoC-FPGA:er (system-on-chip). Olika FPGA:er erbjuder olika uppsättningar funktioner, egenskaper och kapaciteter som riktar sig till olika marknader och tillämpningar.
Det finns flera olika FPGA-leverantörer, inklusive Altera (nu uppköpta av Intel), Atmel (uppköpta av Microchip Technology), Lattice Semiconductor, Microsemi (också uppköpta av Microchip Technology) och Xilinx.
Alla dessa leverantörer erbjuder flera olika modeller av FPGA:er, och vissa erbjuder strålningståliga enheter för omgivningar med höga strålningsnivåer (vid exempelvis användning i rymden). Det kan vara svårt att välja den bästa enheten för en uppgift eftersom det finns så många olika familjer som var och en erbjuder olika resurser.
En introduktion till FPGA:er från Microchip Technology
FPGA:er från Microchip Technology täcker låg till medelhög effekt, med fokus på strömsnåla enheter med hög säkerhet och utmärkt tillförlitlighet. Microchips FPG:er används mycket i inbäddade applikationer inom fast och trådlös kommunikation, försvar och flyg samt industri. De har robusta signalprocessor- och minnesresurser och är mycket användbara i applikationer som maskinvaruacceleration, artificiell intelligens, bildbehandling och edge computing.
Microchip Technology har tre huvudgrupper av FPGA:er:
- IGLOO®2: Enheter med låg densitet och avsevärda resurser
- SmartFusion®2 SoC: Enheter med låg densitet och avsevärda resurser med 32-bitars intern processorkärna
- PolarFire™ och SoC: Kostnadsoptimerade enheter med hög prestanda implementerade på 28 nm-processteknik.
Alla FPGA:er har konfigurationsceller som fastställer funktionen för vart och ett av de programmerbara logikblocken och det sätt på vilket logikblocken ansluts till varandra och externa enheter. Dessa celler används även för att konfigurera GPIO:ernas gränssnittsstandard, ingångsimpedans, ändringshastighet på utgång etc.
Vissa FPGA:er använder SRAM-baserade konfigurationsceller, men dessa är flyktiga, vilket betyder att de förlorar sitt innehåll när strömförsörjningen till systemet bryts. Det betyder i sin tur att konfigurationsdata måste hämtas från en extern källa (vanligtvis en minnesenhet) när systemet startas. Dessa FPGA:er tar längst tid att starta och få driftfärdiga.
Vissa FPGA:er använder on-chip-flashminne för lagring av konfigurationsdata, men de har fortfarande SRAM-baserade konfigurationsceller. I detta fall kopierar en on-chip-styrenhet konfigurationsdata från flash-konfigurationsminnet till SRAM-konfigurationsceller vid start. Dessa FPGA:er startas snabbare än deras motsvarigheter som använder SRAM.
Microchips IGLOO2 FPGA:er och SmartFusion2 SoC-FPGA:er har en annan mekanism i vilken både on-chip-konfigurationsminne och on-chip-konfigurationsceller implementeras med flash-teknik. Vad gäller PolarFire-enheter är konfigurationscellerna baserade på SONOS-minnen (silicon-oxide-nitride-oxide-silicon) med NVM-teknik (icke-flyktiga). Dessa kan ses som flash-minnen, fast bättre.
Eftersom konfigurationsdata sparas i icke-flyktiga flash-celler (eller SONOS-celler) är Microchips FPGA:er och SoC FPGA:er mycket snabbstartade. De startar mycket snabbare än alla andra typer av FPGA:er. Anledningen till att dessa enheter också har flash-konfigurationsminne är att en ny konfiguration kan sparas på denna konfiguration medan en FPGA fortsätter att använda befintlig konfiguration i sina konfigurationsceller. När nedladdningen av den nya konfigurationen är slutförd och verifierad (konfigurationen kan krypteras och förbindas med en cyklisk redundanskontroll, CRC) kan enheten försättas i säkert tillstånd medan den nya konfigurationen sparas i det konfigurationsminne som används för att skriva över originalkonfigurationen som är sparad i konfigurationscellerna.
Traditionella enheter: IGLOO2-FPGA:er
IGLOO2 är all-around-FPGA:er med låg till medelhög effekt. Dessa är vad många konstruktörer skulle kalla traditionella FPGA:er. Dessa flash-FPGA-enheter är idealiska för allmänna funktioner som Gigabit Ethernet eller dubbla PCI Express-kontrollplan, bryggningsfunktioner, I/O-expansion (ingång/utgång) och -omvandling, video- och bildbehandling, systemhantering och säker konnektivitet. Applikationer finns över hela spektrat, inklusive kommunikation, industri, medicin, försvar och flyg.
Figur 2: IGLOO2-FPGA:er är idealiska för allmänna funktioner som Gigabit Ethernet eller dubbla PCI Express-kontrollplan, bryggningsfunktioner, I/O-expansion och -omvandling, video- och bildbehandling, systemhantering och säker konnektivitet. (Bildkälla: Microchip Technology)
IGLOO2-FPGA:er ger 5 000 till 150 000 LE med minnessubsystem med hög prestanda, upp till 512 kB inbäddat flash, 2 x 32 kB inbäddat SRAM-minne, två DMA-motorer (direct memory access) och två DDR-styrenheter (dubbel datahastighet). Enheterna har också upp till 16 sändtagarfält, integrerade signalprocessorblock och SEU-skyddade/toleranta minnen (single event upset). Av säkerhetsskäl har dessa förstärkt skydd med DPA (differential power analysis) och använder AES256- och SHA256-kryptering samt NVM-dataintegritetskontroll på begäran.
Ett bra exempel på IGLOO2-enhet är M2GL025-FGG484I med 27 696 LE, 1 130 496 bit RAM och 267 ingångar/utgångar. För att konstruktörer ska kunna utforska och experimentera med funktionerna i IGLOO2-FPGA:er har Microchip också en IGLOO2-utvärderingssats, nämligen M2GL-EVAL-KIT (figur 3).
Figur 3: M2GL-EVAL-KIT är en utvärderingssats för IGLOO2 med hög nivå av funktionsintegrering som är strömsnål och har hög tillförlitlighet och avancerad säkerhet. (Bildkälla: Microchip Technology)
M2GL-EVAL-KIT underlättar utveckling av inbäddade applikationer som har motorstyrning, systemhantering, industriautomation och seriella I/O-applikationer med hög hastighet, samt PCI Express och Gigabit Ethernet. Satsen ger hög grad av funktionsintegrering samtidigt som den är strömsnål och har hög tillförlitlighet och avancerad säkerhet. Kretskortet är också PCIe-kompatibelt och har litet format, vilket gör att utvecklare kan ta fram prototyper med stationär dator eller bärbar dator med PCIe-kortplats.
Enkla SoCs:er: SmartFusion2 SoC-FPGA:er
SmartFusion2 SoC-FPGA:er är baserade på den traditionella programmerbara strukturen i IGLOO2-enheter, vilken har förstärkts med 32-bitars intern processorkärna. Eftersom processorn är en välkänd medlem i Arm® Cortex®-familjen är SmartFusion2-familjen en mycket bra startpunkt för den som ska utforska SoC-FPGA:er.
Dessa SoC-FPGA:er ger 5 000 till 150 000 LE med 166 MHz Arm Cortex-M3-processor, inklusive ETM (embedded trace macrocell) och instruktionscache med on-chip-eSRAM och inbäddad NVM (eNVM). De har också ett komplett microcontrollersubsystem förstärkt med många olika periferienheter som CAN, TSE och USB.
Figur 4: SmartFusion2 SoC-FPGA:er ger 5 000 till 150 000 LE med 166 MHz Arm Cortex-M3-processor, inklusive ETM och instruktionscache med on-chip-eSRAM och eNVM. De har också ett komplett microcontrollersubsystem förstärkt med många olika periferienheter som CAN, TSE och USB. (Bildkälla: Microchip Technology)
Dessa flash-SoC-enheter är idealiska för allmänna funktioner som Gigabit Ethernet eller dubbla PCI Express-kontrollplan, bryggningsfunktioner, I/O-expansion och -omvandling, video- och bildbehandling, systemhantering och säker konnektivitet. Även här är tillämpningarna många och varierade, från kommunikation, industri och medicin till militär och flyg.
Ett bra exempel på en SmartFusion2-enhet är M2S025-FCSG325I med 25 000 LE, 256 kB flash, 64 kB RAM och 32-bitars Arm Cortex-M3-processorsubsystem på 166 MHz. För att konstruktörer ska kunna utforska och experimentera med funktionerna i SmartFusion2- SoCFPGA:er tillhandahåller Microchip också ett motsvarande SmartFusion2 Maker Board, nämligen M2S010-MKR-KIT (figur 5).
Figur 5: SmartFusion2 Maker Board är en billig utvärderingssats för SmartFusion2 SoC-FPGA som kombinerar en Arm Cortex-M3-processor med flash-baserad FPGA-struktur på ett enda chip. Den har även mycket av den kringutrustning som SoC-användare har vant sig vid, som till exempel RAM- och signalprocessorblock.(Bildkälla: Microchip Technology)
Det billiga SmartFusion2 Maker Board, som säljs endast av DigiKey, ger konstruktörer tillträde till SmartFusion2-familjen. Just denna enhet erbjuder flash-baserad FPGA-struktur med 12 000 LE, en 32-bitars 166 MHz Arm Cortex-M3-processor, signalprocessorblock, SRAM, eNVM och GPIO-gränssnitt – allt på ett enda chip.
SmartFusion2 Maker Board har även Ethernet-gränssnitt, en omgivningsljussensor, SPI-flash, åtta användar-LED och två användartryckknappar.Kortet har också två opopulerade utplacerade anslutningar som stöder ESP32 och ESP8266 Wi-Fi/Bluetooth-moduler (medföljer inte). Det stöder en USB-port för JTAG-programmering, UART-kommunikation och strömförsörjning av kortet. Kortet har också SPI-flash, en 50 MHz klockkälla och Microchips fysiska lager (PHT) VSC8541 för Ethernet med 100 Mbit/s eller 1 Gbit/s.
Kostnadsoptimerade, med hög prestanda: PolarFire-FPGA:er och SoC-FPGA:er
PolarFire-FPGA:er är kostnadsoptimerade enheter med hög prestanda implementerade i 28 nm-processteknik. Dessa enheter är konstruerade att förbruka minimal effekt vid medelhög densitet med hög säkerhet och tillförlitlighet.
Produktfamiljen har mellan 100 000 och 500 000 LE med 12,7 Gbit sändtagare och är utformad att förbruka 50 % mindre effekt än konkurrerande FPGA:er i mellanklassen.Enheterna är idealiska för flera olika tillämpningar inom nätverk med trådbunden åtkomst och mobilinfrastruktur, försvar och kommersiellt flyg samt industriautomation och IoT.
Figur 6: PolarFire-FPGA:er har mellan 100 000 och 500 000 LE, med 12,7 Gbit sändtagare och är utformad att förbruka 50 % mindre effekt än konkurrerande FPGA:er i mellanklassen. (Bildkälla: Microchip Technology)
Huvudorsaken till att PolarFire-FPGA:er förbrukar upp till 50 % mindre total effekt än konkurrerande FPGA:er är att de använder NVM-teknik för både on-chip-konfigurationsminne och on-chip-konfigurationsceller. Dessa ger lågt läckage mellan konfigurationsceller, vilket betyder att dessa enheter är mycket snabba att starta och därmed inte har någon inkopplingsström eller konfigurationsström.
Cybersäkerhet är den viktigaste egenskapen för anslutna enheter i nätverkets flank. Det räcker alltså inte för utvecklare att bara leva upp till funktionskraven för sina konstruktioner – man måste också göra det på ett säkert sätt. Säkerheten finns med redan vid tillverkning av kretskortet och följer med under systemdistribution och drift. PolarFire-FPGA:er beskrivs av Microchip som branschens mest avancerade och säkraste programmerbara FPGA:er.
I många tillämpningar för elektronisk utrustning finns det vissa säkerhetskrav i designen. PolarFire-FPGA:er är konstruerade för hög tillförlitlighet, hög tillgänglighet och säkerhet samt för uppdragskritiska system i tillämpningar inom industri, flyg, militär och kommunikation. Egenskaper som gör PolarFire lämpliga för dessa tillämpningar är bland annat följande:
- FPGA-konfiguration med noll fel under viss tid (FIT)
- SEU-skyddade minnen
- Minnesstyrenheter med enkel felkorrigering, dubbel feldetektering (SECDED)
- Inbyggt självtest
- Extern konfigurationsenhet behövs inte
Ett bra exempel på en PolarFire-enhet är MPF100T-FCSG325I med 109 000 LE, 7 782 400 bitars RAM och 170 ingångar/utgångar. För att konstruktörer ska kunna utforska och experimentera med funktionerna i PolarFire FPGA:er har Microchip också en PolarFire FPGA-utvärderingssats, nämligen MPF300-EVAL-KIT (figur 7).
Figur 7: För att konstruktörer ska kunna utforska och experimentera med funktionerna i PolarFire-FPGA:er har Microchip också en motsvarande utvärderingssats, MPF300-EVAL-KIT. (Bildkälla: Microchip Technology)
MPF300-EVAL-KIT ger utvärdering med hög prestanda för flera olika tillämpningar. Den är mycket lämplig för utvärdering av bland annat höghastighetssändtagare, 10 Gbit Ethernet, IEEE1588, JESD204B, SyncE och CPRI. Satsens anslutningar har (HPC) FPGA-Mezzanine-kort med många stift (FMC), flera SMA:er, PCIe, Dual Gigabit Ethernet RJ45, SFP+ och USB. En PolarFire-FPGA med 300 000 LE och DDR4, DDR3 samt SPI-flash gör att många olika högprestandakonstruktioner kan utvecklas.
Framstegen inom PolarFire-serien fortsätter. När detta dokument skrevs avtäckte Microchip Technology detaljerna om företagets kommande PolarFire SoC-FPGA-familj med ett Linux-kompatibelt 64-bitars RISC-V-baserat open source-microprocessorsubsystem med förstärkt realtidsprestanda.
Design och utveckling med FPGA:er från Microchip Technology
En av de vanligaste teknikerna som används vid utveckling med FPGA:er är språkbaserad design (LDD). Detta inkluderar att fånga konstruktionsavsikten på en abstraktionsnivå känd som RTL (Register Transfer Level) med hjälp av maskinvarubeskrivande språk (HDL), som till exempel Verilog, VHDL eller SystemVerilog. Efter en verifiering via logisk simulering matas denna representation in i en syntesmotor, tillsammans med ytterligare information, som typ av mål-FPGA, stifttilldelning och tidsbegränsningar (till exempel fördröjning mellan ingång och utgång). Utmatningen från syntesmotorn är en konfigurationsfil vilken antingen hämtas direkt till FPGA:n (för Microchip-FPGA:er eller SoC-FPGA:er) eller till en extern minnesenhet (för SRAM-baserade enheter) (figur 6).
Figur 8: Efter verifiering via logisk simulering matas designbeskrivningen för RTL in i en syntesmotor, tillsammans med ytterligare designdetaljer som FPGA-typ, stifttilldelning och tidsbegränsningar. Utmatningen från syntesmotorn är en konfigurationsfil, vilken hämtas direkt till FPGA:n. (Bildkälla: Max Maxfield)
Microchips Libero SoC designprogramsvit tillhör den här klassen av verktyg. Denna programvara erbjuder en heltäckande programsvit med integrerade, lättinlärda och lättanvända utvecklarverktyg för design med Microchip IGLOO2 och PolarFire-FPGA:er samt SmartFusion2- och PolarFire SoC-FPGA:er. Programsviten integrerar Synopsys Synplify Pro-syntes och Mentor Graphics ModelSim-simulering (av branschstandard) med verktyg för begränsningshantering, programmering och felsökning samt programmeringssupport för säker produktion.
Förutom att visa konstruktioner i textformat med Verilog, VHDL eller SystemVerilog har programsviten också grafisk inmatning med vilken systemet kan definieras som en hierarki av anslutna block (med block på lägre nivå representerade i användardefinierad HDL eller som tredje parts immateriell egendom).
Här finns också System Builder, vilket är ett lättanvänt designverktyg som hjälper användaren genom att ställa frågor på hög nivå som definierar det system som ska utformas. System Builder börjar med att ställa frågor om önskad systemarkitektur, den lägger på eventuella ytterligare kringutrustning som ska implementeras som mjukvarukärnor i den programmerbara strukturen och ger till slut ett komplett system enligt designkraven.
Sist men inte minst finns den integrerade utvecklingsmiljön (IDE) SoftConsole som underlättar snabb utveckling av operativsystemlös och RTOS-baserad C/C++-programvara för 32-bitars mjukvaruprocessorer instantierade i Microchip FPGA:er och SoC-FPGA:er, tillsammans med de 32-bitars och 64-bitars interna processorkärnor som finns i SmartFusion2- och PolarFire SoC-FPGA:er.
Slutsats
Optimala designlösningar för processning skapas ofta genom kombinationer av processorer och FPGA:er, genom FPGA:er på egen hand eller genom FPGA:er med interna processorkärnor. Tekniken som FPGA:erna bygger på har utvecklats snabbt under åren och uppfyller många designkrav när det gäller flexibilitet, databehandlingshastighet och prestanda. Detta gör dem mycket användbara i många olika tillämpningar – från intelligenta gränssnitt till maskinseende och AI.
Som vi har sett täcker FPGA:er och SoC-FPGA:er från Microchip Technology låg till medelhög effekt, med fokus på strömsnåla enheter med hög säkerhet och utmärkt tillförlitlighet. FPGA:erna har robust signalbehandling och robusta minnesresurser. De är också en utmärkt plattform för utveckling av applikationer som maskinvaruacceleration, artificiell intelligens, bildbehandling och edge computing i slags branscher, från kommunikation och industri till militär och flyg.
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.




