Grondbeginselen van de FPGA's - Deel 3: Aan de slag met de FPGA's van Microchip Technology

Door Clive "Max" Maxfield

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Opmerking van de redacteur: Optimale verwerkingsoplossingen worden vaak mogelijk gemaakt door combinaties van RISC, CISC, grafische processors en FPGA’s, door alleen FPGA’s of door FPGA’s die harde processorkernen als onderdeel van hun infrastructuur bevatten. Er zijn echter maar weinig ontwerpers bekend met de mogelijkheden van FPGA’s, hoe die zich hebben ontwikkeld en hoe ze kunnen worden gebruikt. Deel 1 van deze meerdelige serie biedt een kennismaking met FPGA's op hoog niveau. Deel 2 richtte zich op het FPGA-aanbod van Lattice Semiconductor. Deel 3 concentreert zich hier op de FPGA-apparaatfamilies en ontwerphulpmiddelen van Microchip Technology (via haar dochteronderneming Microsemi Corporation). In deel 4 en deel 5 wordt gekeken naar FPGA's en tools van Altera en Xilinx.

Zoals besproken in deel 1, hebben veldprogrammeerbare gate-arrays (FPGA's) veel kenmerken die ze tot een onschatbare rekentool maken, hetzij stand-alone, hetzij in een heterogene architectuur, maar veel ontwerpers zijn niet bekend met FPGA's en hoe ze deze apparaten in hun ontwerpen moeten integreren.

Een manier om deze belemmering te overwinnen is om dieper te kijken naar FPGA-architecturen en bijbehorende tools van grote leveranciers. Dit artikel kijkt naar de opstelling van Microchip Technology.

Overzicht van high-level FPGA-opties

Er zijn veel verschillende soorten FPGA’s op de markt, elk met een andere combinatie van mogelijkheden en functies. De kern van elke FPGA is de programmeerbare stof. Dit wordt gepresenteerd als een reeks programmeerbare logische blokken, ook wel bekend als logische elementen (LE's) (Afbeelding 1a). De volgende stap in de FPGA-stof is het opnemen van zaken als blokken SRAM, genaamd blok RAM (BRAM), fase lock loops (PLL's), en klokmanagers (Afbeelding 1b). Digitale signaalverwerking (DSP)-blokken (genaamd DSP slices) en high-speed serializer/deserializer (SERDES)-blokken kunnen ook worden toegevoegd (Afbeelding 1c).

Diagram van FPGA's van toenemende complexiteitAfbeelding 1: De eenvoudigste FPGA's bevatten alleen programmeerbare stof en configureerbare general-purpose IO (GPIO) (a); verschillende architecturen vergroten dit fundamentele stof met SRAM-blokken, PLL's en klokmanagers (b); DSP-blokken en SERDES-interfaces (c); en hardprocessorkernen en -randapparatuur (d). (Bron afbeelding: Max Maxfield)

Perifere interfacefuncties zoals CAN, I2C, SPI, UART en USB kunnen als zachte kernen in de programmeerbare infrastructuur worden geïmplementeerd, maar veel FPGA’s bevatten ze als harde kernen in het silicium. Op vergelijkbare wijze kunnen microprocessors als zachte kernen in de programmeerbare infrastructuur of als harde kernen in silicium worden geïmplementeerd (Afbeelding 1d). FPGA's met hard processorkernen worden system-on-chip (SoC) FPGA's genoemd. Verschillende FPGA’s bieden verschillende functies, eigenschappen, mogelijkheden en capaciteiten, gericht op verschillende markten en toepassingen.

Er zijn een aantal FPGA-leveranciers, waaronder Altera (die werd overgenomen door Intel), Atmel (die werd overgenomen door Microchip Technology), Lattice Semiconductor, Microsemi (die ook werd overgenomen door Microchip Technology), en Xilinx.

Al deze verkopers hebben meerdere families van FPGA's; sommige bieden SoC FPGA's aan, en sommige bieden stralingsbestendige apparaten aan die gericht zijn op omgevingen met hoge straling, zoals de ruimte. Het kiezen van een component voor een betreffende taak kan lastig zijn, omdat er zoveel families zijn die elk verschillende functies bieden.

Invoering van de FPGA's van de Microchip Technology

Het FPGA-aanbod van Microchip Technology strekt zich uit over het lage tot middelhoge bereik, met de nadruk op apparaten met een laag vermogen en een hoge mate van veiligheid en een uitzonderlijke betrouwbaarheid. Het vinden van brede implementatie in bedrade en draadloze communicatie, defensie en luchtvaart, en industriële ingebedde toepassingen, FPGA's van Microchip schept robuuste DSP en geheugenmiddelen op en toont waarde in toepassingen zoals hardwareversnelling, kunstmatige intelligentie, beeldverwerking, en randcomputing aan.

Microchip biedt drie belangrijke FPGA-families:

  • IGLOO®2 FPGA's: Apparaten met een lage dichtheid en aanzienlijke middelen
  • SmartFusion®2 SoC FPGA's: Apparaten met een lage dichtheid, aanzienlijke bronnen en een 32-bits hardprocessorkern
  • PolarFire™ FPGA's en SoC FPGA's: Kostengeoptimaliseerde, hoogwaardige apparaten die zijn geïmplementeerd op 28 nanometer (nm) procestechniek

Alle FPGA's hebben configuratiecellen die de functionaliteit van elk van de programmeerbare logische blokken bepalen, en de manier waarop de logische blokken met elkaar en met de buitenwereld verbonden zijn. Deze cellen worden ook gebruikt om de interfacestandaard van de GPIO, de ingangsimpedantie en de zwenksnelheid van de uitgang te configureren, enz.

Sommige FPGA's gebruiken SRAM-gebaseerde configuratiecellen, maar deze zijn vluchtig, wat betekent dat ze hun inhoud verliezen wanneer de stroom uit het systeem wordt verwijderd. Dit betekent op zijn beurt dat de configuratiegegevens van een externe bron moeten worden geladen - typisch een flash-geheugenapparaat - wanneer het systeem wordt ingeschakeld. Deze FPGA's hebben de langste tijd nodig om aan te zetten en klaar te zijn voor gebruik.

Sommige FPGA's gebruiken on-chip flash-geheugen om de configuratiegegevens op te slaan, maar ze hebben nog steeds SRAM-gebaseerde configuratiecellen. In dit geval kopieert een on-chip controller bij het inschakelen de configuratiegegevens van het flash-configuratiegeheugen naar de SRAM-configuratiecellen. Deze FPGA's schakelen sneller in dan hun pure SRAM-familie.

De IGLOO2 FPGA's en SmartFusion2 SoC FPGA's van Microchip maken gebruik van een ander mechanisme waarbij zowel het configuratiegeheugen op de chip als de configuratiecellen op de chip beide met behulp van flash-technologie worden geïmplementeerd. In het geval van PolarFire-apparaten zijn de configuratiecellen gebaseerd op silicium-oxide-nitride-oxide-silicium (SONOS) niet-vluchtig geheugen (NVM)-technologie, die kan worden beschouwd als "zoals flash, maar dan beter".

Aangezien de configuratiegegevens worden opgeslagen in niet-vluchtige flash (of SONOS)-cellen, zijn de FPGA's en SoC FPGA's van Microchip "instant-on". Dat wil zeggen, ze schakelen sneller in dan elk ander type FPGA. De reden dat deze apparaten ook een flash-configuratiegeheugen hebben, is dat een nieuwe configuratie in deze configuratie kan worden geladen terwijl de FPGA blijft draaien met de bestaande configuratie in de configuratiecellen. Zodra het downloaden van de nieuwe configuratie is voltooid en geverifieerd (de configuratie kan worden gecodeerd en vergezeld van een cyclische redundantiecontrole (CRC)), kan het apparaat in een veilige staat worden gebracht, terwijl de nieuwe configuratie die in het configuratiegeheugen is opgeslagen, wordt gebruikt om de oorspronkelijke configuratie die in de configuratiecellen is opgeslagen, te overschrijven.

Traditionele apparaten: IGLOO2 FPGA's

IGLOO2 zijn goede allround FPGA's van laag tot middenklasse. Dit zijn wat veel ontwerpers zouden beschouwen als "traditionele" FPGA's. Deze flash FPGA-apparaten zijn ideaal voor algemene functies zoals Gigabit Ethernet of dubbele PCI Express-besturingstoestellen, overbruggingsfuncties, I/O-uitbreiding en -conversie, video- en beeldverwerking, systeembeheer en veilige connectiviteit. Toepassingen zijn er voor communicatie, industrie, geneeskunde, defensie en luchtvaart.

Diagram van Microchip IGLOO2 FPGA's (klik om te vergroten)Afbeelding 2: IGLOO2 FPGA's zijn ideaal voor algemene functies zoals Gigabit Ethernet of dubbele PCI Express-besturingstoestellen, overbruggingsfuncties, I/O-uitbreiding en -conversie, video- en beeldverwerking, systeembeheer en veilige connectiviteit. (Bron afbeelding: Microchiptechnologie)

IGLOO2 FPGA's bieden 5.000 tot 150.000 LE's met een hoog presterend geheugensubsysteem, tot 512 kilobytes (Kbytes) ingebedde flash, 2 x 32 Kbytes ingebed static random-access memory (SRAM), twee DMA-engines (direct memory access) en twee DDR-controllers (double data rate). De apparaten zijn ook voorzien van maximaal 16 zendontvangerstroken, geïntegreerde DSP-processorblokken en SEU-beschermde/tolerante geheugens voor eenmalige gebeurtenissen. Voor de veiligheid zijn ze differentiële vermogensanalyse (DPA) gehard en gebruiken ze AES256- en SHA256-encryptie en on-demand NVM data-integriteitscontrole.

Een goed voorbeeld van een IGLOO2-apparaat is de M2GL025-FGG484I met 27.696 LE's, 1.130.496 bits RAM en 267 I/O. Om ontwerpers in staat te stellen de kenmerken van de IGLOO2 FPGA-familie te onderzoeken en te experimenteren, biedt Microchip ook een bijbehorende IGLOO2-evaluatiekit, de M2GL-EVAL-KIT (Afbeelding 3).

Afbeelding van Microchip M2GL-EVAL-KIT-evaluatiekit voor de IGLOO2 (klik om te vergroten)Afbeelding 3: De M2GL-EVAL-KIT is een evaluatiekit voor de IGLOO2 en wordt geleverd met een hoog niveau van functie-integratie in combinatie met een laag vermogen, hoge betrouwbaarheid en geavanceerde beveiliging. (Bron afbeelding: Microchiptechnologie)

De M2GL-EVAL-KIT maakt het eenvoudig om embedded applicaties te ontwikkelen die betrekking hebben op motorbesturing, systeembeheer, industriële automatisering en snelle seriële I/O-toepassingen, evenals PCI Express en Gigabit Ethernet. De kit biedt een hoge mate van functie-integratie, maar ook een laag vermogen, hoge betrouwbaarheid en geavanceerde beveiliging. Het bord is ook PCIe-compatibel met een kleine vormfactor, waardoor ontwikkelaars prototypen kunnen maken met elke desktop-pc of laptop met een PCIe-slot

Instapmodel SoC's: SmartFusion2 SoC FPGA's

SmartFusion2 SoC FPGA's zijn gebaseerd op de traditionele programmeerbare stof die in IGLOO2-apparaten wordt gevonden, aangevuld met een 32-bits hardprocessor kern. Aangezien de processor een bekend lid is van de Arm® Cortex®-familie, biedt de SmartFusion2-familie een geweldige ingang in de wereld van de SoC FPGA's.

Deze SoC FPGA's bieden 5.000 tot 150.000 LE's met een 166 megahertz (MHz) Arm Cortex-M3-processor, inclusief embedded trace macrocell (ETM) en instructiecache met on-chip eSRAM en geïntegreerde NVM (eNVM), samen met een compleet microcontrollersubsysteem, aangevuld met een uitgebreid pakket randapparatuur, waaronder CAN, TSE en USB.

Diagram van Microchip SmartFusion2 SoC FPGA's (klik om te vergroten)Afbeelding 4: SmartFusion2 SoC FPGA's bieden 5.000 tot 150.000 LE's met een 166 MHz Arm Cortex-M3-processor, inclusief ETM en instructiecache met on-chip eSRAM en eNVM, samen met een compleet microcontroller-subsysteem aangevuld met een uitgebreid pakket randapparatuur, waaronder CAN, TSE en USB. (Bron afbeelding: Microchip Technology)

Deze flash SoC FPGA-apparaten zijn ideaal voor algemene functies zoals Gigabit Ethernet of dubbele PCI Express-besturingstoestellen, overbruggingsfuncties, I/O-uitbreiding en -conversie, video-/beeldverwerking, systeembeheer en veilige connectiviteit. Ook hier zijn er vele en gevarieerde toepassingen, van communicatie, industrieel en medisch, tot defensie en luchtvaart.

Een goed voorbeeld van een SmartFusion2-apparaat is de M2S025-FCSG325I met 25.000 LE's, 256 Kbytes aan flash, 64 Kbytes aan RAM en een 32-bits Arm Cortex-M3 processorsubsysteem dat op 166 MHz draait. Om ontwerpers in staat te stellen de kenmerken van de SmartFusion2 SoC FPGA-familie te onderzoeken en te experimenteren, biedt Microchip ook een bijbehorend SmartFusion2 Maker Board, de M2S010-MKR-KIT (Afbeelding 5).

Afbeelding van Microchip SmartFusion2 Maker BoardAfbeelding 5: De SmartFusion2 Maker Board is een goedkope evaluatiekit voor de SmartFusion2 SoC FPGA die een Arm Cortex-M3 processor combineert met flash-based FPGA-stof op een enkele chip, samen met veel van de randapparatuur die SoC-gebruikers gewend zijn, zoals RAM- en DSP-blokken.(Bron afbeelding: Microchip Technology)

Het goedkope SmartFusion2 Maker Board, dat exclusief door DigiKey wordt verkocht, biedt ontwerpers toegang tot de SmartFusion2-familie. Dit specifieke apparaat biedt een op flash gebaseerde FPGA-stof met 12.000 LE's, een 32-bits 166 MHz Arm Cortex-M3-processor, DSP-blokken, SRAM, eNVM en GPIO-interfaces allemaal op een enkele chip.

De SmartFusion2 Maker Board voegt een Ethernet-interface, een omgevingslichtsensor, SPI-flitser, acht gebruikers-LED's en twee gebruikersdrukknoppen toe.Het bord heeft ook twee onbevolkte verbindingen die de ESP32 en de ESP8266 Wi-Fi/Bluetooth-modules (niet inbegrepen) ondersteunen. Het ondersteunt een USB-poort voor JTAG-programmering, UART-communicatie en de voeding van het bord. De printplaat is ook voorzien van SPI flash, een 50 MHz klokbron en de VSC8541 fysieke laag (PHY) van Microchip voor 100 megabit per seconde (Mbits/s) of 1 gigabit per seconde (Gbit/s) Ethernet.

Kosten-geoptimaliseerd, hoge prestaties: PolarFire FPGA's en SoC FPGA's

PolarFire FPGA's zijn kostengeoptimaliseerde, hoogwaardige apparaten die zijn geïmplementeerd in 28 nm procestechnologie. Deze apparaten zijn ontworpen om het laagste vermogen te verbruiken bij een gemiddelde dichtheid met een hoge mate van veiligheid en betrouwbaarheid.

De productfamilie omvat 100.000 tot 500.000 LE's, is voorzien van 12,7 Gbit-zendontvangers en is ontworpen om tot 50% minder stroom te verbruiken dan concurrerende FPGA's uit het middensegment.De apparaten zijn ideaal voor een breed scala aan toepassingen binnen draadgebonden toegangsnetwerken en cellulaire infrastructuur, defensie en commerciële luchtvaartmarkten, evenals industriële automatisering en IoT-markten.

Diagram van Microchip PolarFire FPGA's overspanning van 100.000 tot 500.000 LE's (klik om te vergroten)Afbeelding 6: PolarFire FPGA's met een bereik van 100.000 tot 500.000 LE's, zijn voorzien van 12,7 Gbit-zendontvangers en zijn ontworpen om tot 50% minder stroom te verbruiken dan concurrerende FPGA's uit het middensegment. (Bron afbeelding: Microchip Technology)

De belangrijkste reden waarom PolarFire FPGA's tot 50% minder totale energie verbruiken dan concurrerende FPGA's is dat ze NVM-technologie gebruiken voor zowel het configuratiegeheugen en de configuratiecellen op de chip. Dit levert een inherent lage lekkage op tussen de configuratiecellen, en het betekent ook dat deze apparaten ook echt "instant-on" zijn bij het aanzetten, wat resulteert in geen inschakelstroom en geen configuratiestroom.

Cybersecurity is de nummer één zorg voor aangesloten apparaten aan de netwerkrand, dus het is niet genoeg voor ontwikkelaars om simpelweg te voldoen aan de functionele eisen van hun ontwerp - ze moeten dit veilig doen. De beveiliging begint tijdens de productie van silicium en gaat door met de inzet en het gebruik van het systeem. PolarFire FPGA's worden door Microchip gepresenteerd als de meest geavanceerde veilige programmeerbare FPGA's in de industrie.

Veel toepassingen voor complexe elektronische apparatuur hebben een zekere mate van veiligheidseisen in hun ontwerp. PolarFire FPGA's zijn ontworpen voor hoge betrouwbaarheid, hoge beschikbaarheid, veiligheid en bedrijfskritische systemen in toepassingen, waaronder industriële-, luchtvaart-, militaire- en communicatietoepassingen. Kenmerken die PolarFire geschikt maken voor deze toepassingen zijn onder andere:

  • Nuluitval in de tijd (FIT) FPGA-configuratie
  • SEU-beschermde geheugens
  • Geheugencontrollers met enkele foutcorrectie, dubbele foutdetectie (SECDED)
  • Ingebouwde zelftest
  • Geen extern configuratieapparaat nodig

Een goed voorbeeld van een PolarFire-apparaat is de MPF100T-FCSG325I met 109.000 LE's, 7.782.400 bits RAM en 170 I/O. Om ontwerpers in staat te stellen de kenmerken van de PolarFire FPGA-familie te onderzoeken en te experimenteren, biedt Microchip ook een bijbehorende PolarFire FPGA-evaluatiekit, de MPF300-EVAL-KIT (Afbeelding 7).

Afbeelding van Microchip MPF300-EVAL-KIT FPGA-evaluatiekit (klik om te vergroten)Afbeelding 7: Om ontwerpers in staat te stellen de kenmerken van de PolarFire FPGA-familie te onderzoeken en te experimenteren, levert Microchip ook de bijbehorende MPF300-EVAL-KIT FPGA-evaluatiekit. (Bron afbeelding: Microchip Technology)

De MPF300-EVAL-KIT biedt een hoogwaardige evaluatie in een brede klasse van toepassingen. Het is bij uitstek geschikt voor hoge snelheid zendontvanger-evaluatie, 10 Gbit Ethernet, IEEE1588, JESD204B, SyncE, en CPRI, onder andere. The kit connections include a high pin count (HPC) FPGA mezzanine card (FMC), numerous SMAs, PCIe, Dual Gigabit Ethernet RJ45, SFP+, and USB. Met een 300.000 LE PolarFire FPGA met DDR4, DDR3 en SPI-flitser kan een brede klasse van hoogwaardige ontwerpen worden ontwikkeld.

De vooruitgang in de PolarFire-lijn gaat door. Op het moment van dit schrijven onthulde Microchip Technology details over hun aanstaande PolarFire SoC FPGA-familie met een gehard real-time, Linux-capabele, open source 64-bit RISC-V-gebaseerde microprocessor-subsysteem.

Ontwerp en ontwikkeling met de FPGA's van Microchip Technology

Een van de meest gebruikte ontwikkelingstechnieken met FPGA’s is taalgestuurd ontwerp (language-driven design of LDD). Dit houdt in dat de ontwerpintentie wordt vastgelegd op een abstractieniveau dat bekend staat als register transfer level (RTL) met behulp van een hardware description language (HDL) zoals Verilog, VHDL of SystemVerilog. Na verificatie via logische simulatie wordt deze representatie vervolgens naar een synthesemachine overgedragen, samen met aanvullende informatie zoals het doeltype FPGA, pintoewijzingen en timingbeperkingen (bijv. maximale invoer naar uitvoervertragingen). De output van de synthese-engine is een configuratiebestand dat in het geval van een Microchip FPGA of SoC FPGA rechtstreeks in de FPGA wordt geladen, of in het geval van SRAM-gebaseerde apparaten in een extern geheugenapparaat wordt geladen (Afbeelding 6).

Diagram van Microchip FPGA-ontwerp en -ontwikkelingsstroomschemaAfbeelding 8: Na verificatie via logica-simulatie wordt de RTL-ontwerpbeschrijving in een synthese-engine ingevoerd, samen met aanvullende ontwerpdetails zoals het FPGA-type, pintoewijzingen en timingbeperkingen. De output van de synthese-engine is een configuratiebestand dat rechtstreeks in de FPGA wordt geladen. (Bron afbeelding: Max Maxfield)

De Libero SoC Design Suite van Microchip valt in deze klasse. Deze software biedt een uitgebreide suite van geïntegreerde, eenvoudig te leren, gemakkelijk aan te passen ontwikkeltools voor het ontwerpen met Microchip's IGLOO2 en PolarFire FPGA's, en SmartFusion2 en PolarFire SoC FPGA's. De suite integreert de industriestandaard Synopsys Synplify Pro synthese en Mentor Graphics' ModelSim simulatie met restrictiebeheer, programmeer- en debugtools, en veilige productieprogrammeerondersteuning.

Naast het vastleggen van ontwerpen in tekstueel formaat met behulp van Verilog, VHDL of SystemVerilog, bevat de suite ook grafische invoer waarbij het systeem kan worden gedefinieerd als een hiërarchie van aangesloten blokken, waarbij de blokken op het lagere niveau worden gerepresenteerd in door de gebruiker gedefinieerde HDL of als IP van derden.

Er is ook de System Builder, een eenvoudig te gebruiken ontwerphulpmiddel dat gebruikers door een reeks vragen op hoog niveau leidt die het beoogde systeem zullen definiëren. De System Builder begint met het stellen van vragen over de gewenste systeemarchitectuur, voegt eventuele extra randapparatuur toe die moet worden geïmplementeerd als zachte kernen in de programmeerbare structuur, en eindigt met het creëren van een correct ontworpen totaalsysteem.

Last but not least is de SoftConsole geïntegreerde ontwikkelomgeving (IDE) die de snelle ontwikkeling van bare-metal en RTOS-gebaseerde C/C++ software voor 32-bits soft processors in Microchip's FPGA's en SoC FPGA's vergemakkelijkt, samen met de 32-bits en 64-bits harde processorkernen die in respectievelijk SmartFusion2 en PolarFire SoC FPGA's te vinden zijn.

Conclusie

Optimale verwerkingsontwerpoplossingen worden vaak geleverd door combinaties van processors en FPGA's, door FPGA's op zichzelf, of door FPGA's met harde processorkernen als onderdeel van hun weefsel. Als technologie hebben FPGA's zich in de loop der jaren snel ontwikkeld en zijn ze in staat om aan veel ontwerpeisen te voldoen in termen van flexibiliteit, verwerkingssnelheid en vermogen, waardoor ze zeer nuttig zijn voor een breed scala aan toepassingen, van intelligente interfaces tot machinevisie en AI.

Zoals aangetoond, omvat het FPGA- en SoC-FPGA-aanbod van Microchip Technology het lage- tot middenbereik, met de nadruk op low-power, high-security-apparaten met een uitzonderlijke betrouwbaarheid. De FPGA's beschikken over robuuste signaalverwerkings- en geheugenbronnen en zijn een uitstekend platform voor de ontwikkeling van toepassingen zoals hardwareversnelling, kunstmatige intelligentie, beeldverwerking en edge-computing in industrieën variërend van communicatie en industrie tot militairen en de luchtvaart.

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.

Achtergrondinformatie over deze auteur

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield received his BSc in Control Engineering in 1980 from Sheffield Hallam University, England and began his career as a designer of central processing units (CPUs) for mainframe computers. Over the years, Max has designed everything from silicon chips to circuit boards and from brainwave amplifiers to steampunk Prognostication Engines (don't ask). He has also been at the forefront of Electronic Design Automation (EDA) for more than 30 years.

Max is the author and/or co-author of a number of books, including Designus Maximus Unleashed (banned in Alabama), Bebop to the Boolean Boogie (An Unconventional Guide to Electronics), EDA: Where Electronics Begins, FPGAs: Instant Access, and How Computers Do Math. Check out his “Max’s Cool Beans” blog.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey