Arduino kondigt eerste bord op basis van fpga aan

Arduino heeft twee nieuwe bordjes aangekondigd, waaronder zijn eerste exemplaar dat gebouwd is op basis van een fpga, preciezer een Intel Cyclone 10. Daarnaast komt het bedrijf met een herziene variant van de Uno Wifi.

Volgens de aankondiging van Arduino richt het bedrijf zich met zijn fpga-bord, dat de naam MKR Vidor 4000 draagt, op internet-of-things-toepassingen. Doordat het voorzien is van een herprogrammeerbare chip, moet het flexibel in te zetten zijn. In een interview met Electromaker legt Arduino-ceo Fabio Violante uit dat ook gebruikers met geen of weinig kennis de fpga moeten kunnen gebruiken doordat ze deze kunnen voorzien van vooraf gedefinieerde configuraties. Later dit jaar moet er bovendien een visuele editor uitkomen in de zogenaamde Create-omgeving.

Naast de fgpa is er een Sam D21-chip aanwezig op het bord op basis van een Arm Cortex-M0+-processor, naast een wifi-en bluetooth-module in de vorm van een Nina-W102 van u-blox en een cryptografische chip. De nieuwe Uno-variant, genaamd de Uno Wifi Rev 2, is gebaseerd op een ATmega4809-microcontroller met dezelfde wifimodule als de Vidor 4000 en eveneens een cryptografische chip. Bovendien is het bord voorzien van een inertial measurement unit.

Arduino heeft nog geen prijzen van de nieuwe toevoegingen bekendgemaakt, die eind juni beschikbaar moeten zijn.

Arduino-fpgaArduino-fpga

De Uno Wifi Rev 2 (links) en de MKR Vidor 4000

Door Sander van Voorst

Nieuwsredacteur

18-05-2018 • 21:17

61

Reacties (61)

61
60
54
7
0
2
Wijzig sortering
De titel van het artikel wekt de suggestie dat de FPGA de klassieke “Arduino functionaliteit” implementeert, terwijl dat toch echt de SAMD21 is.

Blijf het een beetje typisch vinden dat een eenvoudige MCU Core (al is de Cortex M0+ ook al niet de minste) omgeven wordt door “coprocessoren” die veel krachtiger zijn dan de centrale unit.

Op andere FPGA dev boards wordt juist vaker een microcontroller als coprocessor ingezet voor bijvoorbeeld de analoge I/O i.p.v. andersom.

Desalniettemin interessant, kom zelf ook maar niet toe aan FPGA vanwege de hoge instapdrempel. Niet financieel trouwens, een Spartan3 of 6 of ICE40 boardje is echt niet duur. Misschien vind ik het ook lastig om echt een goede toepassing te vinden die niet met een CPU, MCU of GPU gedaan kan worden.
Kan wel genoeg bedenken:

Parallelle signaal of data verwerking, voor algoritmes die genoeg berekeningen parallel hebben zodat je ze op bvb 32 hardware multipliers tegelijk kan mappen.

Implementeren van custom computer architecturen en peripherals. Zo heb je van Altera/Intel de NIOS II processor waarbij de processors geheugenbus compleet uitbreidbaar. Daar kan je zelf peripherals in hangen die over een Avalon interface met de CPU babbelen.
Je kan in de NIOS II ook custom instructions implementeren. Of een custom CPU... (of een bestaande ISA na implementeren, zoals een AVR soft-core..)
Leuk om dan ook te experimenteren met bijvoorbeeld custom hardware accelerators naast zo'n CPU bijvoorbeeld..

2 punten waarom ik het een wat opvallende match vind met Arduino:

- Zodra je de kennis (en tijd..) hebt om deze zaken te maken, dan is het ook wel de moeite waard om 100$ aan een "normaal" Altera/Lattice/Xilinx bordje uit geven met standaard tools en waarbij een stuk meer communicatie peripherals al standaard op zitten.

- Gaat een gemiddelde hobbyist zo diep in digital logic hardware aan de slag? Inderdaad echt heel veel kan al op een snelle microcontroller gedaan worden.

Ten slotte valt of staat de value for money bij de grootte van de FPGA. Volgens deze pagina is die 16K luts, wat opzich groot genoeg is om leuk mee te experimenteren.

[Reactie gewijzigd door Hans1990 op 27 juli 2024 23:39]

De vraag was niet wat op een FPGA kan, maar wat niet op een CPU/MCU/GPU kan, omdat deze bijvoorbeeld ene te hoge latency hebben. De voorbeelden die je noemt zijn of academisch of in de "omdat het kan" sfeer.

Mijn ervaring met FPGAs is dat ze over de jaren heen steeds minder meerwaarde hebben gekregen, vooral door steeds snellere CPUs met lagere latency en de opkomst van GPUs. Wat overblijft zijn militaire en financiële toepassingen -> veel te veel geld over voor net die laatste procentjes meer. Hoe dan ook blijft het leuk speelgoed, omdat het inderdaad kan.
Er zijn genoeg industriele toepassingen die strict real-time zijn (sluit GPU's en vaak CPU's al uit), en te snel voor MCU's. Oplossing: FPGA

Daarnaast is het belangrijk te realiseren dat het energieverbruik van de berekeningen die worden gedaan echt haast niets meer voorstelt t.o.v. alle geheugen infrastructuur die hedendaagse CPUs en GPUs bevatten. Hoewel het de laatste jaren absoluut stuk beter is geworden, is de fijnmazigheid van een FPGA in high-end toepassingen en het bijbehorende energie rendement echt wel belangrijk. Vaak zie je dat FPGAs worden toegepast in hard real-time processing toepassen. De GPU's komen wel zodra de processing wat een meer offline karakter krijgt, soms ook vanuit het oogpunt weer dat die makkelijker te programmeren zijn (.. of meer mensen in de industrie voor te vinden zijn).

Het punt is dat dit soort toepassingen dus "high-end" zijn, richting product design of grotere signaal verwerking installaties. Voor een hobbyist is dit ver buiten bereik, want voor het laatste voorbeeld worden ook geen FPGAs gebruikt van 20$.
Er is absoluut een plaats voor FPGAs, alleen is dat segment een stuk kleiner geworden.

Er is een groot verschil tussen ontwikkelen van nieuwe programma's en het gebruiken van hapklare brokken van websites als https://opencores.org/projects

Ik zou op deze kleine FPGA-bordjes dus vooral lego'en en scripten, niet echt programmeren. Daar hebben we hier een Arria 10 voor, ook al doet die onder voor een GPU in alles behalve networking.

Zie https://hackaday.com/2018...ing-and-better-software/:
the goal is to release a tool that allows anyone to use an FPGA
Dus het is inderdaad het in elkaar klikken van programma's.

[Reactie gewijzigd door vinx77 op 27 juli 2024 23:39]

<quote>Wat overblijft zijn militaire en financiële toepassingen -> veel te veel geld over voor net die laatste procentjes meer.</quote>
Welnee, ik geloof dat het chipset dat bij de 486 hoorde al gebruik maakte van een fpga achtig iets voor de een of andere databus (ik kan het niet meer terug vinden). In oscilloscopen worden ook fpga's gebruikt.

Ik vermoed wel dat je bij massaproductie vaak beter een specifiek IC kunt bakken .
Parallella heeft ook een FPGA, en handelt daar networking in af. Voor data-routing is het een perfecte chip, maar data-processing niet.
Als je vervolgens de FPGA ook met mooie VHDL code (of Verilog, maar dat is niet zo populair in de EU) kan programmeren, is de kennis minstens zo belangrijk als de toepassing. Digitale filtering kan trouwens bijvoorbeeld heel mooi in een FPGA, als mede andere toepassingen die niet zo heel erg voor de hand liggen.
Je eigen noise canceling headset maken lijkt me wel leuk!
Beter een DSP pakken zoals de ADAU1777.
Niet perse beter. Wel makkelijker. Maar vooral duurder. Een ADAU1777 evaluation kit kost bijvoorbeeld $200.
Ik heb menig audio filter op FPGA geïmplementeerd, en ipv block-based processing, kan je bij een FPGA sample-base processing doen, waardoor de audio latency toch echt lager ligt.

De ADAU1777 is trouwens geen DSP, maar een codec met wat DSP functionaliteit. Kijk dan naar de Analog Devices SHARC processors. Die hebben een stuk meer functionaliteit. Maar zijn direct ook weer duurder.

[Reactie gewijzigd door MeMoRy op 27 juli 2024 23:39]

De ADAU1777 heeft als enige doel DSP te spelen, wat heb je anders aan de CODEC. Dus in die zin is het een DSP.

Het is welliswaar een minimale DSP, maar met als key feature extreem lage overall latency, ideaal voor noise cancelling toepassingen.
Ligt maar aan de toepassing. Ik heb in het verleden een audio-apparaat ontwikkeld dat flink complexe berekeningen uitvoerde op de audio (bijv Burg-lattice filter in tijd- en frequentiedomein). Dat kan zo'n codec niet: daar hadden we een volwaardige DSP voor nodig. Maar de audio moet wel het apparaat in en uit, waar je een ADAC voor nodig hebt. Nu hadden we echter productievariaties, waardoor er verschillen waren in de resonantie/frequentiekarakteristiek van de behuizing. Om toch het geluid uit de interne speaker gelijk te houden, werd de output in de fabriek gekalibreerd. Maar die settings in de DSP zetten kost dan best veel moeite: moet soms stukken opnieuw gecompileerd worden. Het bleek gemakkelijker en dus goedkoper een CODEC te pakken en via software wat filter setting te laden: die programmeer te in seconden in een flash.
Zoals ik al zei: ultra low latency. Dat haal je met de meeste externe ADC's en DAC's al niet, zeker niet als je ASRC's nodig hebt. En mijn opmerking was een reply op het idee om een noise cancelling ding te maken.

Daarvoor is de ADAU1777 geboren!

Anders gezegd: Externe multi input ADC + stereo DAC, een stereo versterker, en een bende microfoons icm een FPGA en een forse accu, en dan als doel noise cancelling; kansloos concept. Zo dan?

[Reactie gewijzigd door stoepie2002 op 27 juli 2024 23:39]

Kan zeker, goed idee ook!
Maar FPGA zijn niet erg energiezuinig. Dus je zal niet lang met batterijen doen...
Dat is niet perse zo, ik heb zelf een lattice ICE FPGA, die is best zuinig per "flop" en is ontworpen op zuinig zijn. Alleen als je er zeer inefficiente inhoud in zet zal ie minder zuinig zijn.

Ben te lui om het uit te zoeken voor deze FPGA, maar zou het een vreemde keuze vinden van Arduino als deze niet een beetje zuinig is.
met mooie VHDL code (of Verilog, maar dat is niet zo populair in de EU)
Hmmm, weet niet wat je achtergrond of bron precies is, maar ik zie toch echt anders: VHDL is zo ongeveer stervende en Verilog/SystemVerilog heel erg 'hot'. Enkel wat oude fossielen (zoals ik...) gebruiken nog VHDL, maar populair is het absoluut niet. Helaas, want het is wat mij betreft wel een mooie strakke taal.
Ik studeer nog, en wij hebben VHDL onderwezen gekregen. Ik vind het een mooie taal; het is een hele andere manier van denken. Ook op mijn stage (niet bepaald een fossiel bedrijf) gebruiken we ook VHDL. Misschien heb ik al met al een verkeerd beeld gekregen van wat veel gebruikt wordt.. :'(
Ik ben vooral benieuwd naar de "gemakkelijke" software die Arduino voor FPGA ontwerp gaat releasen. Ik werk al bijna 20 jaar met FPGAs en hoewel ik de software in die tijd zeker gebruikersvriendelijker heb zien worden, is het nog steeds best en uitdaging. Natuurlijk zijn er tools als Matlab HDL coder en tegenwoordig C-naar-VHDL compilers, maar 'even een applicatie schrijven' zit er nog niet in. Als specialist in een bedrijf heb ik vaak de taak gehad software programmeurs te leren hoe ze een FPGA moesten gebruiken, en en LEDje knipperen vonden ze dan nog wel leuk, maar als ze dan iets complexers was, als een ethernet interface, vonden ze het snel teveel gedoe (en dat is het ook).
Dus: ik ben benieuwd hoe Arduino dit makkelijker gaat maken!
Makkelijk antwoord: Niet.

Doel van dit soort bordjes is vooral om ze te verkopen aan hobbyisten, met als bestemming de bureaula. Een handvol doet er wat nuttigs mee, maar het overgrote deel wordt gekocht en als men dan tot de ontdekking komt dat er toch echt geprogrammeerd moet worden, dan gaat hij de la in "voor later" en komt er vervolgens niet meer uit.
Die wifi-en bluetooth-module is gewoon een ESP32 module, dus naast de SAMD21 en FPGA heb je dus ook nog een dual core wifi chip.
Ik begrijp de link tussen "IoT" en een FPGA niet helemaal. Lijkt me toch niet dat je een TCP/IP stack gaat draaien op een FPGA, bijvoorbeeld? Of is 'ie meer in te zetten als flexibele co-processor?

Als microcontroller-fan ben ik sowieso niet echt thuis in FPGA's, maar wat ik ervan begrijp is dat je die voor specialistische taken goed kan inzetten. Audio- of beeldverwerking bijvoorbeeld.
FPGA's zijn erg goed in digitaal filteren, voor veel sensor toepassing erg belangrijk. Vooral als je niet alle ruwe sensor data kan versturen door lage bandbreedte. Zo kun je dus aardig wat lokaal doen.
Het gaat hier hoogstwaarschijnlijk om de Cyclone 10 LP (low power), die niet meer kan doen dan bijvoorbeeld 2 signalen combineren. Echte processing kan met de GX versie, of met een DSP (en die zit er niet op).
Het aantal logic blocks en het aantal multipliers op dit apparaat kan best wel aardig wat data verwerken. En daarbij is juist die sensor fusion een redelijk belangrijke operatie. Natuurlijk gaat die niet de Stratixes en Arria's van deze wereld vervangen, maar ik denk dat dan het doel ook volledig voorbijgestreefd wordt. Dit is een beginners FGPA, dus veelal alleen RTL/behavioural designs en vrijwel geen meer bulky HLS/OpenCL designs. En RTLs kun je toch niet al te groot maken voordat het overzicht helemaal weg is.

Zelfs de kleinste FPGA uit de serie heeft 15 18-bit DSP blocks. En het lijkt erop dat ze voor de 10CL016 (derde in de lineup) zijn gegaan, die heeft een respectabele 56 18-DSP blocks. Ik denk dat de gemiddelde arduino doelgroep gebruiker prima z'n sensoren kan filteren met dit aantal, En dat ik ook wel genoeg op een flink aantal sensor fusions te doen voor gyros en accelerometers.

Deze serie loopt ergens tussen de 5MHz en de 472.5 MHz (yeah right) dus laten we zeggen 200MHz voor een gemiddeld design. Dat is meer dan genoeg ops om aardig wat te rekenen.

[Reactie gewijzigd door EraYaN op 27 juli 2024 23:39]

Juist voor high speed networking (denk aan financiële toepassingen) worden FPGA’s breed ingezet.
Een FPGA blinkt vooral uit in real-time gedrag, bijvoorbeeld het aansturen van motoren enzo.

Ze kunnen in principe alles, maar blinken nergens echt uit. Een ASIC (loss chip met vaste functie) is altijd sneller en zuiniger, een GPU haalt meer megaflops, een CPU is veel beter in software afwerken. De FPGA wordt ingezet omdat er iets gemaakt moet worden dat nog niet bestaat, en er geen chip of software is om het te doen, en het maken van een ASIC te duur is. De programmeerbaarheid is wel super, maar juist daardoor ook lastig.
Er bekruipt mij het gevoeld dat Arduino een beetje van het simpel-maar-doeltreffend pad af gaat en meer achter de Raspberry hype aan gaat. Hoe lang voordat hier volledige O/Sen op gaan draaien?
Hmm, juist een simpele versie van een FPGA lijkt me interessant, toegegeven dat deze wel wat veel extra's heeft.

Ze gaan met Uno WiFi wel mogelijk de goede kant uit.
ik verwacht dat ze vooral op de fpga market willen inspelen.

vooral voor de mensen die ermee willen werken maar niet het geld hebben voor dev boards van ""xylink"" (spartan serie)
Hebben ze ook al, met de Yún. Bordje draait Linux en heeft ethernet en wifi.

(Ok, is een add-on bord voor een Arduino, niet zelfstandig, maar wel uit de Arduino-stal.)
Nou een arduino heeft een nadeel dat de snelheid naar een “host” zwaar tegenvalt. Het is echt een veredelde microcontroler. Dat is met name het geval icm de USB poort aan een computer. Dit is volgens mij zelfs maar 9600 baud omdat er een seriële poort van wordt gemaakt door de arduino driver. Een rasberry is een echte host met een hele snelle koppeling naar zijn io controller. Althans dat waren mijn bevinding toen ik me had bezig gehouden met arduino experimenten.
Ik vind het FPGA-bordje er totaal niet experimenteervriendelijk uitzien: Slechts een beperkte hoeveelheid pinnen aan beide zijden, waar je ook nog zelf headers op moet solderen. Voor de rest een mini-PCI-E-connector. Voor de hobbyist met een breadbordje, LED's en transistors niet bepaald het ideale ontwerp.

Waarom niet gewoon compatibel met alle Arduino-shields?
Ik denk dat dat is wat ze bedoelen met "voor IoT". Dus niet bedoeld voor experimenteer werk, maar meer voor remote sensing en zo.
Met de MIPI-CSI en HDMI aansluitingen lijken ze vooral in te willen spelen op computer vision toepassingen. Met een beetje beunen kun je van die aansluitingen wellicht wat extra Gpio’s maken voor je fpga.
Uhm, dan maar dit ontwerp in FPGA drukken. :o


https://opencores.org/project/avr_core
Ik denk dat je dan wat LE's te kort komt ... ;)
The FPGA contains 16K Logic Elements, 504Kbit of embedded RAM and 56 18x18 bit HW multipliers for high-speed DSP; Each pin can toggle at over 150 MHz and can be configured for functions such as UARTs, (Q)SPI, high res/ high freq PWM, quadrature encoder, I2C, I2S, Sigma Delta DAC, etc.
Dat valt eigenlijk nog best mee. Mijn oude Spartan 3 devboard heeft in dezelfde orde, en daar kon ik een volledige NES op emuleren met ruimte over.

[Reactie gewijzigd door Cilph op 27 juli 2024 23:39]

Dat is wel een leuk apparaatje. Lekker veel aan boord, en maakt FPGA's mooi toegankelijk. Alhoewel ik wel een hoge prijs verwacht. FPGA's hebben de neiging nogal prijzig te zijn, en deze komt vrolijk aan met extra features zoals een volwaardige CPU aan boord, met WiFi, Bluetooth, en cryptografie, en ook zie ik behoorlijk veel aansluitingen (zelfs miniPCI Express). Dat is al snel erg aan de prijs. Mijn eigen FPGA-bordje is de Lattice MachXO3 Starter Kit van 30 euro. Die heeft een FTDI chipje aan boord, en daar houdt het wel mee op. Wel meer IO-pinnen dan de Arduino FPGA. Maar het aantal logic elements is bijna de helft, er zit geen losse CPU op, geen WiFi, geen Bluetooth, zelfs geen DAC functionaliteit. Als je daar al 30 piek voor neertelt, dan vrees ik dat dit apparaatje niet goedkoper zal zijn.
Dat verwacht ik ook wel eerlijk gezegd. Deze Cyclone 10 LP kost met 16K LE's minimaal 10euro. Dus dan zal het hele bord wel richting de 50 euro gaan kosten als ze het goedkoop weten te houden verder.
50 euro zou ik alsnog aan de goedkope kant vinden, gezien verscheidene prijzen die ik voor andere FPGA bordjes heb zien langskomen. 30 neigt al aardig naar de bodemprijs (al zijn er hier en daar FPGA-bordjes die daar een fractie van kosten, maar die hebben dan ook geen featureset of zelfs maar USB/FTDI). 50 euro is daar nog niet eens zo heel ver boven. Dat kan gerust richting de 100 gaan. Hell, voor 100 dollar heb je een Terasic Cyclone 10 LP Evaluation Kit, met 8K LE's en tot zover ik kan zien niet eens een eigen CPU aan boord, dus zelfs 100 euro is mogelijk niet eens duur.
Die visuele editor lijkt me wel een grote doorbraak te kunnen forceren. Ik kan me voorstellen dat veel mensen zoals mezelf die hierin geïnteresseerd zijn, hierdoor overhaald worden om ermee aan de slag te gaan.
Anoniem: 479654 18 mei 2018 22:45
Geen Arduino fan maar misschien dat ik hier toch even naar ga kijken. Ben benieuwd hoe die ontwikkeltools eruit gaan zien. FPGA's hebben toch een wat hogere instap dan gewone microcontrollers.

Op dit item kan niet meer gereageerd worden.