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

Aan de slag met FPGA-ontwikkeling: Een 4-bit-adder bouwen op Xilinx Artix‑7

Aan de slag met FPGA-ontwikkeling: Een 4-bit-adder bouwen op Xilinx Artix‑7Opmerking van de redacteur: Naarmate geavanceerde algoritmes blijven evolueren, worstelen embedded-ontwerpers vaak om aan de verwerkingsvereisten van moderne toepassingen te voldoen. Field‑Programmable Gate Arrays (FPGAs) bieden de benodigde prestaties, en recente hardware- en tooling-vooruitgang hebben FPGA-ontwikkeling toegankelijk gemaakt voor een breder publiek. Dit artikel, de vierde in een reeks afgeleid van *Architecting High‑Performance Embedded Systems* door Jim Ledin, biedt een hands-on walkthrough van het bouwen van een eenvoudig maar compleet FPGA-project.


Uw eerste FPGA-project ontwikkelen

We zullen een 4-bit binaire adder construeren op een Xilinx Artix‑7 FPGA gehuisvest in een Digilent Arty A7-ontwikkelboard. Twee board-varianten zijn beschikbaar: het kosteneffectieve 35T-model (US $129) en het krachtigere 100T-model (US $249). Het enige verschil is de FPGA-variant, wat de beschikbare logica-bronnen beïnvloedt. De 100T is te verkiezen voor toekomstige projecten die meer bronnen vereisen, zoals het digitale oscilloscop-voorbeeld in latere hoofdstukken.

Aankoopopties: Digilent Store, Amazon, en andere retailers.

Voor deze tutorial richten we ons op de FPGA-kern, vier gebruikersschakelaars, vier drukknoppen, en vijf LEDs. De onderstaande stappen dekken het installeren van de Vivado-tool-suite, een project aanmaken, VHDL-code schrijven, en een bitstream laden op het board – zowel in volatile configuratiegeheugen als in onboard flash voor persistente operatie.

Projectoverzicht

Het ontwerp implementeert een 4-bit-adder. Vier schakelaars leveren de eerste 4-bit-operand, vier drukknoppen leveren de tweede. De FPGA telt continu deze operanden op en toont de 4-bit-som op vier LEDs, met een vijfde LED die de carry-out aangeeft. Dit eenvoudige ontwerp laat ons focussen op de toolchain-workflow in plaats van complexe logica.

Vivado installeren

We gebruiken Xilinx Vivado, gratis beschikbaar voor Windows en Linux. De volgende instructies gaan uit van Windows; Linux-installatiestappen zijn analoog.

  1. Maak een Xilinx-gebruikersaccount aan: https://www.xilinx.com/registration/create-account.html
  2. Log in op https://xilinx.com en navigeer naar de downloadpagina.
  3. Download de Xilinx Unified Installer (Windows Self‑Extracting Web Installer). Voor consistentie met dit boek, selecteer versie 2020.1; anders, gebruik de nieuwste release.
  4. Draai de installer (bijv. Xilinx_1_0602_1208_Win64.exe). Als Windows de download blokkeert, kies "Toch installeren."
  5. Klik Volgende op het welkomstscherm.
  6. Voer uw Xilinx-credentials in en klik Volgende.
  7. Bevestig de licentieovereenkomsten en klik Volgende.
  8. Kies Vitis als product (Vitis bundelt Vivado en additionele tools). Klik Volgende.
  9. Accepteer de standaard component-selecties en klik Volgende.
  10. Selecteer een doelmap (bijv. C:\Xilinx) en klik Volgende.
  11. Bekijk de samenvatting en klik Installeren. Installatie kan enkele minuten duren.

Eenmaal geïnstalleerd, start Vivado vanaf het bureaublad-snelkoppeling of Start-menu.

Het project aanmaken

  1. Open Vivado en klik Create Project in het Quick Start-paneel.
  2. Voer ArtyAdder in als projectnaam, kies een map (bijv. C:\Projects), en vink Create a subdirectory for this project aan. Klik Volgende.
  3. Selecteer RTL Project en vink Do not specify sources at this time aan. Klik Volgende.
  4. Onder het tabblad Boards, zoek naar "Arty" en kies Arty A7-100 of Arty A7-35 gebaseerd op uw hardware. Klik Volgende.
  5. Voltooi de wizard om een leeg project aan te maken.

VHDL-bronbestanden toevoegen

  1. In het Sources-paneel, rechtsklik Design Sources → Add Sources….
  2. Kies Add or create design sources en klik Volgende.
  3. Selecteer Create File, noem het FullAdder.vhdl, en klik OK.
  4. Herhaal om Adder4.vhdl aan te maken, klik dan Finish.
  5. Negeer het Define Modules-dialoogvenster; klik OK en bevestig met Ja.
  6. Open FullAdder.vhdl en plak de volgende code:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end entity FULL_ADDER; architecture BEHAVIORAL of FULL_ADDER is begin S <= (A XOR B) XOR C_IN; C_OUT <= (A AND B) OR ((A XOR B) AND C_IN); end architecture BEHAVIORAL;
  1. Open Adder4.vhdl en vervang de inhoud door:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ADDER4 is port ( A4 : in std_logic_vector(3 downto 0); B4 : in std_logic_vector(3 downto 0); SUM4 : out std_logic_vector(3 downto 0); C_OUT4: out std_logic ); end entity ADDER4; architecture BEHAVIORAL of ADDER4 is component FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end component; signal c0, c1, c2 : std_logic; begin FULL_ADDER0 : FULL_ADDER port map ( A => A4(0), B => B4(0), C_IN => '0', S => SUM4(0), C_OUT => c0 ); FULL_ADDER1 : FULL_ADDER port map ( A => A4(1), B => B4(1), C_IN => c0, S => SUM4(1), C_OUT => c1 ); FULL_ADDER2 : FULL_ADDER port map ( A => A4(2), B => B4(2), C_IN => c1, S => SUM4(2), C_OUT => c2 ); FULL_ADDER3 : FULL_ADDER port map ( A => A4(3), B => B4(3), C_IN => c2, S => SUM4(3), C_OUT => C_OUT4 ); end architecture BEHAVIORAL;

Volgende stappen

Het volgende artikel zal u leiden door het simuleren van dit ontwerp, het synthetiseren voor het Arty-board, en het programmeren van de resulterende bitstream op de FPGA.

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


Aan de slag met FPGA-ontwikkeling: Een 4-bit-adder bouwen op Xilinx Artix‑7Jim Ledin is de CEO van Ledin Engineering, Inc. Hij is gespecialiseerd in embedded software- en hardware-ontwerp, -ontwikkeling, en -testing, en heeft expertise in embedded-systeem cybersecurity, penetratietesting, en ethical hacking. Jim behaalde een B.S. in luchtvaarttechniek van Iowa State University en een M.S. in elektrische en computer-engineering van Georgia Institute of Technology. Hij is een gelicenseerde professionele elektrische ingenieur in Californië, een CISSP, CEH, en CPT-houder.

Gerelateerde inhoud

  • Embedded-ontwerp met FPGAs: Hardware-bronnen
  • Embedded-ontwerp met FPGAs: Implementatietalen
  • Embedded-ontwerp met FPGAs: Ontwikkelproces
  • Open-source tools vereenvoudigen FPGA-programmering
  • 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

Abonneer je op Embedded's wekelijkse nieuwsbrief voor meer inzichten.

Ingebed

  1. Een Robot Bouwen met Raspberry Pi en Python: Een Complete Gids
  2. Een Zelf-balancerende Segway Bouwen met Raspberry Pi
  3. GoPiGo v2 Uitbreiden op Windows 10 IoT Core voor Raspberry Pi 3
  4. Productie maximaliseren met geavanceerde additieve productiesoftware
  5. Liquid Additive Manufacturing: 3D-Objecten Maken Met Vloeistofmaterialen
  6. Embedded Systeemontwerp: Stappen, Principes en Praktische Toepassingen
  7. Embedded AI benutten om Big Data om te zetten in actionable Smart Insights
  8. High-performance interconnects ontwerpen over PCIe-generaties heen
  9. Arrow Electronics kondigt Europees FPGA-ontwerpwedstrijd aan – win gratis development board en spannende prijzen
  10. MAXREFDES220# – Cuffless bloeddrukmonitoring met optische sensoren
  11. Microchip lanceert defense-grade PolarFire SoC FPGA met Early Access Program