Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Iniciándose en desarrollo FPGA: Construyendo sumador 4-bit en Xilinx Artix-7

Iniciándose en desarrollo FPGA: Construyendo sumador 4-bit en Xilinx Artix-7Nota del editor: A medida que algoritmos avanzados siguen evolucionando, diseñadores embebidos a menudo luchan por cumplir demandas de procesamiento de aplicaciones modernas. Field‑Programmable Gate Arrays (FPGAs) proveen el rendimiento necesario, y avances recientes en hardware y tooling han hecho desarrollo FPGA accesible a audiencia más amplia. Este artículo, cuarto en serie derivada de Architecting High‑Performance Embedded Systems por Jim Ledin, ofrece walk-through hands-on de construcción de proyecto FPGA simple pero completo.


Desarrollando su primer proyecto FPGA

Construiremos un sumador binario 4-bit en FPGA Xilinx Artix‑7 alojado en placa de desarrollo Digilent Arty A7. Dos variantes disponibles: modelo 35T coste-efectivo (US $129) y más potente 100T (US $249). La única diferencia es la variante FPGA, que influye en recursos lógicos disponibles. El 100T es preferible para proyectos futuros que demanden más recursos, como el ejemplo de osciloscopio digital en capítulos posteriores.

Opciones de compra: Digilent Store, Amazon y otros retailers.

Para este tutorial, nos centraremos en el core FPGA, cuatro switches de usuario, cuatro pushbuttons y cinco LEDs. Los pasos cubren instalación de suite Vivado, creación de proyecto, escritura de código VHDL y carga de bitstream en la placa —tanto en memoria de configuración volátil como en flash onboard para operación persistente.

Visión general del proyecto

El diseño implementa sumador 4-bit. Cuatro switches proveen primer operando 4-bit, cuatro pushbuttons el segundo. El FPGA suma continuamente estos operandos y muestra la suma 4-bit en cuatro LEDs, con quinto LED indicando carry-out. Este diseño directo permite concentrarnos en workflow de toolchain en lugar de lógica compleja.

Instalando Vivado

Usaremos Xilinx Vivado, gratis para Windows y Linux. Instrucciones asumen Windows; pasos Linux son análogos.

  1. Crear cuenta usuario Xilinx: https://www.xilinx.com/registration/create-account.html
  2. Loguearse en https://xilinx.com y navegar a página de descargas.
  3. Descargar Xilinx Unified Installer (Windows Self‑Extracting Web Installer). Para consistencia con este libro, seleccione versión 2020.1; si no, use última release.
  4. Ejecutar instalador (ej. Xilinx_1_0602_1208_Win64.exe). Si Windows bloquea descarga, elija "Install anyway".
  5. Click Next en pantalla bienvenida.
  6. Ingresar credenciales Xilinx y click Next.
  7. Reconocer acuerdos de licencia y click Next.
  8. Elegir Vitis como producto (Vitis incluye Vivado y herramientas adicionales). Click Next.
  9. Aceptar selecciones de componentes por defecto y click Next.
  10. Seleccionar directorio destino (ej. C:\Xilinx) y click Next.
  11. Revisar resumen y click Install. Instalación puede tomar varios minutos.

Una vez instalado, lance Vivado desde acceso directo escritorio o menú Inicio.

Creando el proyecto

  1. Abra Vivado y click Create Project en panel Quick Start.
  2. Ingrese ArtyAdder como nombre proyecto, elija directorio (ej. C:\Projects), marque Create a subdirectory for this project. Click Next.
  3. Seleccione RTL Project y marque Do not specify sources at this time. Click Next.
  4. Bajo pestaña Boards, busque "Arty" y elija Arty A7-100 o Arty A7-35 según su hardware. Click Next.
  5. Finalice wizard para crear proyecto vacío.

Añadiendo archivos fuente VHDL

  1. En panel Sources, click derecho Design Sources → Add Sources….
  2. Elija Add or create design sources y click Next.
  3. Seleccione Create File, nómbrelo FullAdder.vhdl, click OK.
  4. Repita para crear Adder4.vhdl, luego click Finish.
  5. Ignore diálogo Define Modules; click OK y confirme con Yes.
  6. Abra FullAdder.vhdl y pegue el siguiente código:
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. Abra Adder4.vhdl y reemplace su contenido con:
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;

Próximos pasos

El siguiente artículo le guiará simulando este diseño, sintetizándolo para la placa Arty, y programando el bitstream resultante en el FPGA.

Reimpreso con permiso de Packt Publishing. Copyright © 2021 Packt Publishing


Iniciándose en desarrollo FPGA: Construyendo sumador 4-bit en Xilinx Artix-7Jim Ledin es CEO de Ledin Engineering, Inc. Se especializa en diseño, desarrollo y test de software y hardware embebido, y posee experiencia en ciberseguridad, penetration testing y ethical hacking de sistemas embebidos. Jim obtuvo B.S. en ingeniería aeroespacial por Iowa State University y M.S. en ingeniería eléctrica y de computación por Georgia Institute of Technology. Es ingeniero eléctrico profesional licenciado en California, CISSP, CEH y CPT.

Contenido Relacionado

Suscríbase al boletín semanal de Embedded para más insights.

Incrustado

  1. Construya un robot con Raspberry Pi y Python: Guía completa
  2. Construye un Segway Autoequilibrado con Raspberry Pi
  3. Extensión de GoPiGo v2 en Windows 10 IoT Core para Raspberry Pi 3
  4. Maximizando la producción con software avanzado de fabricación aditiva
  5. Fabricación Aditiva Líquida: Creación de Objetos 3D con Materiales Líquidos
  6. Diseño de Sistemas Embebidos: Pasos, Principios y Aplicaciones Reales
  7. Aprovechando IA embebida para convertir Big Data en insights inteligentes accionables
  8. Diseño de Interconexiones de Alto Rendimiento a Través de Generaciones PCIe
  9. Arrow Electronics anuncia concurso europeo de diseño FPGA – Gana placa de desarrollo gratis y premios emocionantes
  10. MAXREFDES220# – Monitor de presión arterial sin manguito con sensores ópticos
  11. Microchip lanza PolarFire SoC FPGA defense‑grade con programa Early Access