Hvorfor og hvordan du bruker Efinix FPGA-er for AI/ML-bilder Del 2: Bildefangst og -behandling

Av Adam Taylor

Bidrag fra DigiKey's European Editors

Redaktørens merknad: Nye tilnærminger til FPGA-arkitekturer gir finere og større fleksibilitet for å møte behovene til maskinlæring (ML) og kunstig intelligens (AI, på norsk også kalt KI). Del 1 av denne todelte serien introduserer en slik arkitektur fra Efinix og hvordan man kommer i gang med den ved hjelp av et utviklingskort. Her tar vi for oss del 2 grensesnittet mellom utviklingskortet og eksterne enheter og periferiutstyr som et kamera, og hvordan man kan utnytte FPGA for å fjerne flaskehalser for bildebehandling.

FPGA-er spiller en kritisk rolle i mange programmer, fra industriell styring og sikkerhet til robotikk, luftfart og kjøretøyindustri/bilindustri. Takket være den fleksible naturen til den programmerbare logikkjernen og deres brede grensesnittfunksjoner, er en voksende brukstilfelle for FPGA-er i bildebehandling, hvor maskinlæring (ML) kan distribueres. FPGA-er er ideelle for implementering av løsninger som har flere høyhastighets kameragrensesnitt takket være deres parallelle logiske struktur. I tillegg gjør FPGAer det også mulig å bruke en dedikert prosesseringsrørledning i logikken, og dermed fjerne delte ressursflaskehalser som ville være forbundet med CPU- eller GPU-baserte løsninger.

Denne nærmere titten på Titanium-FPGA-er fra Efinix vil gå gjennom bildebehandlingsprogrammet for referansebilder som følger med FPGA-ens Ti180 M484-utviklingskort. Målet er å forstå designets bestanddeler, og å identifisere hvor FPGA-teknologien gjør det mulig å fjerne flaskehalser eller muliggjør andre fordeler for utviklere.

Ti180 M484-basert referansekonstruksjon

Konseptuelt mottar referansedesignen (figur 1) bilder fra flere MIPI-kameraer (Mobile Industry Processor Interface), utfører rammebuffring i LPDDR4x, og sender deretter ut bildene til en HDMI-skjerm (High Definition Multimedia Interface). Et FPGA mezzaninkort (FMC) og fire Samtec QSE-grensesnitt på kortet brukes til å levere kamerainngangene og HDMI-utgangen.

Bilde av Efinix Ti180 M484 referansedesignBilde 1: Konseptuelt mottar Ti180 M484-referansedesignen bilder fra flere MIPI-kameraer, utfører rammebuffring i LPDDR4x, og sender deretter ut bildene til en HDMI-skjerm. >(Bildekilde: Efinix)

FMC til QSE-ekspansjonskortet brukes sammen med HDMI-datterkortet for å gi utgangsvideobanen, mens tre QSE-kontakter brukes til grensesnitt med DFRobot SEN0494 MIPI-kameraene. Hvis flere MIPI-kameraer ikke er tilgjengelige, kan et enkelt kamera brukes ved å sløyfe tilbake den enkelte kamerakanalen for å simulere flere kameraer.

På et høyt nivå kan denne programet synes å være enkel. Det er imidlertid utfordrende å motta flere HD MIPI-datastrømmer med høy bildefrekvens. Det er her FPGA-teknologien er gunstig fordi den lar designere bruke flere MIPI-datastrømmer parallelt.

Referansedesignets arkitektur utnytter både parallelle og sekvensielle behandlingsstrukturer med FPGA. De parallelle strukturer brukes til å implementere bildebehandlingsrørledningen, mens en RISC-V-prosessor leverer den sekvensielle prosessering som brukes for FPGA-oppslagstabellene (LUT).

Bildebehandlingsrørledningen kan deles i to elementer i mange FPGA-baserte bildebehandlingssystemer, nemlig inngangs- og utgangsdatastrømmene. Inngangsdatastrømmen er koblet til kamera/sensor-grensesnittet, og prosesseringsfunksjoner brukes på sensorens utgang. Disse funksjonene kan inkludere Bayer-konvertering, automatisk hvitbalanse og andre forbedringer. I utdatastrømmen er bildet klargjort for visning. Dette inkluderer endring av fargerom (f.eks. RGB til YUV) og etterbehandling for ønsket utgangsformat, slik som HDMI.

Ofte opererer inngangsbildets prosesseringskjede ved sensorpikselens klokkehastighet. Dette har forskjellig timing til utgangskjeden, som behandles ved utgangsfrekvensen.

En rammebuffer brukes til å koble inngangen til utgangsbehandlingsrørledningen, som ofte lagres i eksternt høyytelsesminne, for eksempel LPDDR4x. Denne rammebufferen frakobles mellom inngangs- og utgangsrørledningene, noe som tillater tilgang til rammebufferen via direkte lageraksess ved den passende klokkefrekvensen.

Ti180-referansedesign bruker en lignende tilnærming til konseptene som er skissert ovenfor. Inngangsbildebehandlingsrørledningen implementerer en MIPI Camera Serial Interface 2 (CSI-2) mottaker intellektuell eiendom-kjerne (IP-kjerne), som er bygget på MIPI fysiske lag (MIPI D-PHY) -kapabelinngang/utgang (I/O) av Titanium FPGA. MIPI er et utfordrende grensesnitt fordi det bruker både single-ended og differensialsignalering på samme differensialpar, i tillegg til lavhastighets- og høyhastighetskommunikasjon. Integrering av MIPI D-PHY i FPGA I/O reduserer kompleksiteten av kretskortdesignen, samtidig som materialregningen (bom) reduseres.

Med bildestrømmen fra kameraet mottatt, konverterer referansedesignet deretter utgangen til MIPI CSI-2 RX til en avansert eXtensible Interface (AXI)-datastrøm. En AXI-datastrøm er et ensrettet høyhastighetsgrensesnitt som gir en strøm av data fra en master til en slave. Håndtrykksignaler for overføring mellom en master og en slave er leverte (tvalid og tready) sammen med sidebåndsignaler. Disse sidebåndsignalene kan brukes til å formidle informasjon om bildetiming, slik som start av ramme og ende av linje.

AXI-datastrøm er ideell for bildebehandlingsprogrammer og gjør det mulig for Efinix å gi en rekke bildebehandlings-IP som deretter enkelt kan integreres i prosesseringskjeden som kreves av programmet.

Etter å ha blitt mottatt blir MIPI CSI-2-bildedataene og tidssignalene omformet til en AXI-strøm og innmatet til en DMA-modul (direct memory access), som skriver bilderammen til LPDDR4x og virker som rammebuffer.

Denne DMA-modulen opererer under kontroll av RISC-V-kjernen i FPGA i et Sapphire-systemkrets (SoC). Denne systemkretsen (SoC-en) tilveiebringer styring, slik som å stoppe og starte DMA-skriving, i tillegg til å forsyne DMA-skrivekanalen med den nødvendige informasjon for korrekt å skrive bildedataene til LPDDR4x. Dette inkluderer informasjon om minneplassen og bredden og høyden på bildet definert i byte.

Utgangskanalen i referansedesignen leser bildeinformasjonen fra LPDDR4x-rammebufferen under styring av RISC-V-systemkretsen (SoC-en). Dataene blir sendt ut fra DMA IP som en AXI-datastrøm, som deretter blir konvertert fra RAW-format forsynt fra sensoren til RGB-format (figur 2), og klargjort for utgang over den innebygde Analog Devices ADV7511 HDMI-sender.

Bilde av prøvebilder utgang fra referansedesignenBilde 2: Eksempelbilder utgang fra referansedesignen. (Bildekilde: Adam Taylor)

Bruken av DMA gjør det også mulig for Sapphire-systemkretsen (SoC-en) RISC-V å få tilgang til bildene som er lagret i rammebufferen, og den abstrakte statistikken og bildeinformasjonen. Sapphire-systemkretsen (SoC-en) er også i stand til å skrive overlegg inn i LPDDR4x slik at de kan slås sammen med utdatastrømmen av video.

Moderne CMOS-bildesensorer (CIS) har flere driftsmoduser og kan konfigureres til å gi prosessering på brikken (systemkretsen), samt flere forskjellige utdataformater og klokkesystemer. Denne konfigurasjon forsynes normalt over et I² C-grensesnitt. I Efinix referansedesign er denne I²C-kommunikasjonen til MIPI-kameraene forsynt fra Sapphire-systemkretsen (SoC-en) RISC-V-prosessoren.

Integrasjon av RISC-V-prosessoren i Titanium FPGA reduserer den totale størrelsen på den endelige løsningen, da det fjerner behovet for å implementere både komplekse FPGA-tilstandsmaskiner som øker designrisikoen, samt eksterne prosessorer som legger til stykklisten.

Inkludering av prosessoren muliggjør også støtte med ekstra IP for å kommunisere med MicroSD-kortet. Dette gjør det mulig for virkelige programmer der bilder kan være nødvendig å bli lagret for senere analyse.

Samlet sett er arkitekturen til Ti180-referansedesign optimalisert for å muliggjøre en kompakt, rimelig, men likevel høyytelsesløsning som gjør det mulig for utviklere å redusere materialkostnader i forbindelse med systemintegrasjon.

En av de viktigste fordelene med referansedesign er at de kan brukes til å kickstarte programutvikling på tilpasset maskinvare, slik at utviklere kan ta kritiske elementer i designet og bygge av det med sine nødvendige tilpasninger. Dette inkluderer muligheten til å bruke Efinixs TinyML-flyt til å implementere visjonsbaserte TinyML-programmer som kjører på FPGA. Dette kan utnytte både FPGA-logikkens parallelle natur og muligheten til enkelt å legge til tilpassede instruksjoner i RISC-V-prosessorer, slik at det kan opprettes akseleratorer i FPGA-logikken.

Implementering

Som diskutert i del 1, er Efinix-arkitekturen unik ved at den bruker XLR-celler (eXchangeable Logic and Routing-celler) for å gi både ruting og logisk funksjonalitet. Et videosystem slik som referansekonstruksjonen er et blandet system som er både logisk og rutingstungt: omfattende logikk er nødvendig for å implementere bildebehandlingsfunksjonene, og omfattende ruting er nødvendig for å forbinde IP-cellene ved de nødvendige frekvenser.

Referansedesignet bruker omtrent 42 % av XLR-cellene i enheten, noe som gir god plass for tillegg, inkludert tilpassede programmer som edge-ML (inngangspunkt-ML).

Bruken av blokk-RAM og digitale signalbehandlingsblokker (DSP) er også svært effektiv, ved å bruke bare 4 av de 640 DSP-blokkene og 40% av minneblokkene (figur 3).

Kjerneressurser
Innmatning 1264 / 3706
Utganger 1725 / 4655
XLR-er 73587 / 172800
Minneblokker 508 / 1280
DSP-blokker 4 / 640

Figur 3: Ressurstildeling på Efinix-arkitekturen viser at bare 42 % av XLR-cellene brukes, noe som gir god plass til ytterligere prosesser. (Bildekilde: Adam Taylor)

Ved anordningen IO brukes DDR-grensesnittet for LPDDR4x til å levere program-minnet for Sapphire-systemkretsen (SoC-en) og bilderammebufferne. Alle de innretningstilpassede MIPI-ressursene utnyttes sammen med 50 % av faselåssløyfene (figur 4).

Perifer ressurs
DDR 1 / 1
GPIO 22/27
HSIO 20,0/59
TAP for JTAG-bruker 1/4
MIPI RX 4/4
MIPI TX 4/4
Oscillator 0/1
PLL 4/8

Bilde 4: Snapshot av grensesnittet og I/O-ressurser som brukes. (Bildekilde: Adam Taylor)

Det generelle formålet I/O (GPIO) brukes til å levere I2C-kommunikasjon sammen med flere av grensesnittene som er koblet til Sapphire-systemkretsen (SoC-en), inkludert NOR FLASH, USB UART og SD-kort. HSIO brukes til å gi høyhastighets videoutgang til ADC7511 HDMI-senderen.

Et av de avgjørende elementene når man designer med FPGA-er, er ikke bare å implementere og montere designen i FPGA-en, men også å kunne plassere logikkdesignen i FPGA-en og oppnå den nødvendige tidsstyringsytelsen når den dirigeres.

Tiden med FPGA-design med ett klokkedomene er forbi, for lenge siden. Det er flere forskjellige klokker, alle kjører på høye frekvenser i Ti180 referanse design. Den endelige tidstabellen viser de maksimale frekvensene som oppnås for klokkene i systemet. Det er her den forespurte tidsstyringsytelsen også kan ses i begrensningene (figur 5), som har en maksimal klokkefrekvens på 148,5 megahertz (MHz) for HDMI-utgangsklokken.

Bilde av klokkebegrensninger for referansedesignetBilde 5: Klokkebegrensninger for referansedesignet. (Bildekilde: Adam Taylor)

Tidsbestemt implementering mot begrensningene viser potensialet til Titanium FPGA XLR-strukturen da den reduserer den mulige ruteforsinkelsen, og dermed øker designytelsen (figur 6).

Timing
WNS (Worst Negative Slack) 0,182 ns
WHS (Worst Hold Slack) 0,026 ns
i_pixel_clk 211,909 MHz
tx_escclk 261,370 MHz
i_pixel_clk_tx 210,881 MHz
i_sys_clk 755,858 MHz
i_axi0_mem_clk 130,429 MHz
i_sys_clk_25mhz 234,577 MHz
i_soc_clk 187,231 MHz
i_hdmi_clk 233,918 MHz
mipi_dphy_rx_inst1_WORD_CLKOUT_HS 273,973 MHz
mipi_dphy_rx_inst2_WORD_CLKOUT_HS 262,881 MHz
mipi_dphy_rx_inst3_WORD_CLKOUT_HS 204,290 MHz
mipi_dphy_rx_inst4_WORD_CLKOUT_HS 207,598 MHz
mipi_dphy_tx_inst1_SLOWCLK 201,979 MHz
mipi_dphy_tx_inst2_SLOWCLK 191,865 MHz
mipi_dphy_tx_inst3_SLOWCLK 165,235 MHz
mipi_dphy_tx_inst4_SLOWCLK 160,823 MHz
jtag_inst1_TCK 180,505 MHz

BildeFigur 6: Tidsbestemt implementering mot begrensningene viser potensialet til Titanium FPGA XLR-strukturen for å redusere den mulige ruteforsinkelsen, og dermed øke designytelsen. (Bildekilde: Adam Taylor)

Konklusjon

Ti180 M484-referansedesignen viser klart mulighetene til Efinix FPGA-er og Ti180 spesielt. Utformingen utnytter flere av de unike I/O-strukturene for å implementere en kompleks bildebehandlingsbane som støtter flere innkommende MIPI-datastrømmer. Dette bildebehandlingssystemet opererer under kontroll av en myk kjerne Sapphire-systemkretsen (SoC-en), som implementerer programmets nødvendige sekvensielle behandlingselementer.

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 Adam Taylor

Adam Taylor

Adam Taylor is a world-recognized expert in the design and development of embedded systems and FPGAs for several end applications. Throughout his career, Adam has used FPGAs to implement a wide variety of solutions, from RADAR to safety critical control systems (SIL4) and satellite systems. He also had interesting stops in image processing and cryptography along the way.

Adam is a Chartered Engineer, Senior Member of the IEEE, Fellow of the Institute of Engineering and Technology, Arm Innovator, and Edge Impulse Ambassador. He is also the owner of the engineering and consultancy company Adiuvo Engineering and Training which develops embedded solutions for high-reliability, mission-critical, and space applications. Current projects include ESA Plato, Lunar Gateway, Generic Space Imager, UKSA TreeView, and several other clients across the world.

FPGAs are Adam’s first love: he is the author of numerous articles and papers on electronic design and FPGA design, including over 440 blogs and 30 million plus views on how to use the Zynq and Zynq MPSoC for Xilinx.

Om denne utgiveren

DigiKey's European Editors