Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Ingebed

FPGA-hardwarebronnen voor hoogpresterende embedded-systemen

FPGA-hardwarebronnen voor hoogpresterende embedded-systemenOpmerking van de redacteur: Naarmate geavanceerde algoritmes blijven opduiken voor slimme productontwerpen, vinden ontwikkelaars zich vaak worstelend om embedded-systemen te implementeren die aan de geassocieerde verwerkingsvraag voldoen. FPGAs kunnen de vereiste prestaties leveren, maar ontwerpen met FPGAs is lang beschouwd als het domein van FPGA-programmeer-experts. Vandaag de dag heeft de beschikbaarheid van krachtigere FPGAs en effectievere ontwikkelomgevingen FPGA-ontwikkeling breed toegankelijk gemaakt. In dit fragment uit Hoofdstuk 4 van *Architecting High‑Performance Embedded Systems* biedt de auteur een uitgebreide review van FPGA-apparaten, implementatietalen, en het ontwikkelproces, alsook een gedetailleerde walkthrough van hoe u FPGAs in uw eigen ontwerp kunt implementeren.
1: Hardware-bronnen (dit artikel)
2: Implementatietalen
3: Ontwikkelproces
4: Een project bouwen
5: Implementatie

Aangepast van *Architecting High-Performance Embedded Systems*, door Jim Ledin.


Uw eerste FPGA-programma ontwikkelen

Dit hoofdstuk begint met een discussie over het effectieve gebruik van FPGA-apparaten in real-time embedded-systemen en gaat door met een beschrijving van de functionele elementen in standaard FPGAs. Het introduceert de reeks FPGA-ontwerptalen – inclusief Hardware Description Languages (HDLs), blokdiagram-methoden, en populaire software-programmeertalen zoals C en C++ – en biedt een overzicht van het FPGA-ontwikkelproces. Het hoofdstuk sluit af met een compleet voorbeeld van een FPGA-ontwikkelcyclus, van systeem-eisenstatement tot een volledig functioneel systeem geïmplementeerd op een laagkost FPGA-ontwikkelboard.

Na afloop van dit hoofdstuk zult u begrijpen hoe FPGAs toegepast kunnen worden in real-time embedded-systeemarchitecturen, de sleutelcomponenten van een FPGA IC, de programmeertalen gebruikt om FPGA-algoritmes te ontwerpen, en de stap-voor-stap volgorde voor het ontwikkelen van een FPGA-gebaseerde applicatie. U zult ook doorlopen een volledig FPGA-ontwikkelvoorbeeld op een laagkost board met gratis FPGA-software-tools.

We zullen de volgende onderwerpen behandelen:

  • FPGAs gebruiken in real-time embedded-systeemontwerpen
  • FPGA-implementatietalen
  • Het FPGA-ontwikkelproces
  • Uw eerste FPGA-project ontwikkelen

Technische vereisten

De bestanden voor dit hoofdstuk zijn beschikbaar op https://github.com/PacktPublishing/Architecting-High-Performance-Embedded-Systems.

FPGAs gebruiken in real-time embedded-systeemontwerpen

Zoals uiteengezet in de Elementen van FPGAs-sectie van Hoofdstuk 1, bevat een typisch FPGA-apparaat een groot aantal lookup-tables, flip-flops, block RAM-elementen, DSP-slices, en andere componenten. Hoewel het nuttig is om de gedetailleerde mogelijkheden van elk component te begrijpen, is de meest kritieke overweging dat een specifiek FPGA-deelnummer een eindig aantal van elke bron bevat, en een ontwerp die limieten niet kan overschrijden wanneer gericht op dat specifieke model.

Het is productiever om het ontwikkelproces te bekijken vanuit het perspectief van het embedded-systeem's statement of requirements. U kunt beginnen met het targeten van een model dat comfortabel aan die eisen voldoet. Naarmate het ontwerp vordert, kunt u een bronlimiet tegenkomen of ontdekken dat een vereiste functie ontbreekt. Op dat moment is het selecteren van een meer capabel target en het voortzetten van de ontwikkeling eenvoudig. Integen, als u ontdekt dat de gekozen FPGA overbodige bronnen bevat, kan het verplaatsen naar een kleiner deel kosten, pin-aantal, pakketgrootte, en stroomverbruik reduceren.

Het wisselen van het getargete FPGA binnen dezelfde familie is meestal naadloos, met ontwerpartificaten volledig herbruikbaar. Het wisselen van families of leveranciers kan additionele inspanning vereisen. De kernboodschap is dat het specifieke model niet hoeft te worden gekozen aan het begin; focus eerst op het valideren van de FPGA als een haalbare oplossing, selecteer dan een geschikte leverancier en device-familie.

Voorbeeldprojecten in dit boek gebruiken Xilinx's Vivado-familie van tools. Hoewel een Vivado-licentie vereist is voor sommige Xilinx-families, worden de Artix‑7-apparaten die hier gebruikt worden gratis ondersteund. De Artix‑7 combineert hoge prestaties, laag stroom, en verminderde systeemkosten. Vergelijkbare families en tool-suites zijn beschikbaar bij andere leveranciers.

FPGA-ontwikkeling is een betrokken proces dat een reeks analyses en ontwerpdata vereist. Om de discussie concreet te houden, zullen we Vivado door dit boek heen gebruiken. Eenmaal deze technieken gemasterd, kunt u ze toepassen op andere leveranciers' tools.

De volgende secties bespreken sleutelverschillende kenmerken van FPGA-families en modellen, inclusief block RAM-capaciteit, I/O-signaltypen, gespecialiseerde on-chip bronnen, en de aanwezigheid van embedded processor-kernen.

Block RAM en Distributed RAM

Block RAM implementeert toegewezen geheugenregio's binnen een FPGA. Een geheugenregio wordt gespecificeerd door zijn bit-breedte (typisch 8 of 16 bits) en diepte (aantal opslaglocaties). Totale block RAM wordt meestal uitgedrukt in kilobits (Kb) en varieert over families en modellen.

Veel FPGAs bieden ook distributed RAM, opgebouwd uit lookup-table-logica om kleine 16-bit segmenten te vormen. Deze kunnen gecombineerd worden in grotere blokken wanneer nodig. Distributed RAM is ideaal voor tijdelijke opslag van intermediaire resultaten, terwijl block RAM gebruikt wordt voor caches of I/O-buffers.

Block RAM kan single-port of dual-port zijn. Dual-port RAM, met twee read/write-poorten, is bijzonder nuttig voor het overbruggen van subsystemen die op verschillende kloksnelheden opereren, wat dataoverdracht zonder interferentie mogelijk maakt.

Block RAM kan opereren in FIFO-modus, wat signalen voor vol, leeg, bijna vol, en bijna leeg biedt. Zorgvuldige controle van schrijf- en leesoperaties voorkomt dataverlies of corruptie.

FPGA I/O-pennen en geassocieerde functies

FPGA I/O-pennen ondersteunen een verscheidenheid aan hoge-snelheid standaarden. Tijdens ontwerp wijzen ontwikkelaars functies toe aan specifieke pennen en configureren ze elk pin's interface-standaard. Signalen zijn ofwel single-ended of differentieel.

Single-ended signalen refereren naar grond en gebruikten historisch TTL/CMOS-ranges. Moderne FPGAs ondersteunen lagere spanningsranges – LVTTL (0–3,3 V) en LVCMOS-varianten (1,2, 1,5, 1,8, 2,5, 3,3 V) – wat stroomverbruik vermindert en snelheid verbetert. Hoge-snelheid single-ended standaarden omvatten HSTL en SSTL.

Differentieel signaleren, dat een paar pennen gebruikt, is voorkeur voor hoge-data-rate links omdat common-mode ruis grotendeels geannuleerd wordt. Differentieel standaarden omvatten HSTL, SSTL, en LVDS. LVDS, geïntroduceerd in 1994, levert een constante 3,5 mA stroom en schakelt richting om data-bits te vertegenwoordigen. Het matchen van de transmissielijn-impedantie (100 Ω voor LVDS) met de terminatie-impedantie is essentieel om reflecties te voorkomen.

Gespecialiseerde hardwarebronnen

FPGAs bevatten vaak toegewezen hardware voor functies die baat hebben bij vaste, efficiënte implementatie:

  • Externe dynamische RAM (DRAM) interfaces, typisch ondersteunend DDR3
  • Analog-naar-digitale converters
  • Fase-vergrendelde lussen voor het genereren van meerdere klokfrequenties
  • Digitaal signaalverwerking MAC-hardware

Toegewezen hardware zoals MAC-eenheden levert prestaties ver ver boven wat bereikt kan worden met gesynthetiseerde logica.

Processorkernen

Sommige FPGA-families integreren harde processorkernen – bijvoorbeeld combineert Xilinx Zynq‑7000 een ARM Cortex‑A9 met FPGA-fabric. Wanneer een ontwerp geen harde kern vereist, kan een soft-processor geïnstantieerd worden uit FPGA-bronnen. Soft-processoren zijn hoog configureerbaar maar matchen typisch niet de prestaties van harde kernen.

De volgende sectie introduceert de primaire programmeertalen en datainvoermethoden gebruikt om FPGA-algoritmes te ontwikkelen.

Her gedrukt met toestemming van Packt Publishing. Copyright © 2021 Packt Publishing


FPGA-hardwarebronnen voor hoogpresterende embedded-systemenJim Ledin is de CEO van Ledin Engineering, Inc. Jim is een expert in embedded software- en hardware-ontwerp, -ontwikkeling, en -testing. Hij is ook uitgevoerd in embedded-systeem cybersecurity-assessment en penetratietesting. Hij heeft een B.S. in luchtvaarttechniek van Iowa State University en een M.S. in elektrische en computer-engineering van Georgia Institute of Technology. Jim is een geregistreerde professionele elektrische ingenieur in Californië, een Certified Information System Security Professional (CISSP), een Certified Ethical Hacker (CEH), en een Certified Penetration Tester (CPT).

Gerelateerde inhoud:

  • Open-source tools helpen FPGA-programmering vereenvoudigen
  • Drijvende-komma algoritmes implementeren in FPGAs of ASICs
  • FPGAs benutten voor deep learning
  • Software-tools migreren GPU-code naar FPGAs voor AI-toepassingen
  • FPGAs verdringen ASICs in Subaru Eyesight visie-gebaseerde ADAS
  • Hoe flash-gebaseerde FPGAs functionele veiligheidsvereisten vereenvoudigen
  • De voordelen van instant-on FPGAs oogsten
  • FPGA-configuratie met hoge-snelheid NOR flash
  • Hoe FPGA-technologie evolueert om nieuwe mid-range systeemeisen te halen

Voor meer Embedded, abonneer je op Embedded's wekelijkse e-mailnieuwsbrief.


Ingebed

  1. Dure verrassingen vermijden in connected hardware-ontwerp: Bewezen strategieën
  2. Productie maximaliseren met geavanceerde additieve productiesoftware
  3. Eclipse IoT: Een gegolfd, open-source pakket voor snelle IoT-ontwikkeling
  4. Embedded Systeemontwerp: Stappen, Principes en Praktische Toepassingen
  5. State machines bouwen met Test-Driven Development in Embedded C
  6. Embedded AI benutten om Big Data om te zetten in actionable Smart Insights
  7. Community-gedreven Hardware CWE: Een nieuw framework voor het identificeren van ontwerpbeveiligingszwaktes
  8. Cypress verbetert IoT‑ontwikkeling met ModusToolbox's volledige device‑to‑cloud‑ondersteuning
  9. Lattice's MachXO3D FPGA versterkt hardwarebeveiliging met Root-of-Trust-functies
  10. MAXREFDES220# – Cuffless bloeddrukmonitoring met optische sensoren
  11. Java 9: Verbeterde Try-With-Resources voor schonere code