Want to create interactive content? It’s easy in Genially!

Get started free

FPGA

EAD Recursos

Created on May 29, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

FPGA

El diseño de hardware

Contenido

  • Introducción
  • Descripción Hardware combinacional
  • Descripción Hardware secuencial
  • Máquinas de estados
  • Bases numéricas

Introducción

¿Qué es un FPGA?FPGA “Field programmable gate arrays” o la matriz de compuertas programables en el campo es un circuito integrado de semiconductores en el que la funcionalidad eléctrica se personaliza para acelerar las cargas de trabajo clave.
[1] Intel® FPGA, SoC FPGA and CPLD. (n.d.). Intel. https://www.intel.la/content/www/xl/es/products/details/fpga.html Imagen recuperada de: https://creazilla-store.fra1.digitaloceanspaces.com/cliparts/7794191/fpga-clipart-xl.png

Introducción

Este dispositivo es reprogramable tanto los bloques lógicos (CLB) como las matrices de interconexiones de los bloques lógicos (SM). Por ello cuando se emplea un FPGA no se está programando, ya que está diseñando un circuito integrado.

Arquitectura Básica

¿Cómo funciona un FPGA? Para comprender como funciona un FPGA es necesario saber sus elementos:
  • I/O Blocks (IOB’s)
  • PIP
  • SM
  • CLB
Imagen recuperada de: Introduction to FPGA and It’s Programming Tools. (n.d.). https://circuitdigest.com/tutorial/what-is-fpga-introduction-and-programming-tools

Arquitectura Básica

Otros dos elementos que incorporan la arquitectura del FPGA son:
  • Block RAM
  • DCMs
Imágenes recuperadas de: Figura 1 y figura 7 Sisterna, C. Field programmable gate arrays (fpgas). Retrieved March 31, 2023, from http://dea.unsj.edu.ar/sisdig2/Field%20Programmable%20Gate%20Arrays_A.pdf

I/O Blocks (IOBs)

Bloque de entradas y salidas, todo pin I/O se debe configurar si se comportara como entrada o como salida. Para ello se emplea una compuerta triestado.
Imagen recuperada de: https://twitter.com/Obijuan_cube/status/1118791658169085952

I/O Blocks (IOBs)

Caso entrada
Caso Salida
Imágenes recuperadas de: https://twitter.com/Obijuan_cube/status/1118791658169085952

CLB

“Configurable logic block” Bloque lógico configurable, dentro de este bloque se encuentra circuito conformado por una compuerta LUT, un Flip-Flop y un multiplexor:
Imagen recuperada de: Figura 10 Marín De La Rosa, J. M. (n.d.). FIELD PROGRAMMABLE GATE ARRAY. https://biblus.us.es/bibing/proyectos/abreproy/11375/fichero/MEMORIA%252FFPGAs.pdf

Arquitectura CLB

LUT Bloque “Look up table”, donde el usuario puede programar el comportamiento de este bloque con compuertas lógicas y las operaciones booleanas:
Imagen recuperada de: https://siit.co/blog/file_storage/posts/June2021/sRiXCb1tWOHWn4dPBAVu.png

Arquitectura CLB

Flip-Flop - D Es un registro donde se almacena los datos de salida del bloque LUT.
Imagen recuperada de: https://www.knowelectronic.com/wp-content/uploads/2021/11/D-Flip-Flop-Circuit-Truth-Table.png

Arquitectura CLB

Multiplexor MUX. Bloque lógico de varias entradas una sola salida, sirve para seleccionar una de las entradas este presente en la salida, este ultimo bloque del CLB se conecta a la matriz de interconexiones SM para llevar los datos a otro CLB o a una salida.

MUX

Imagen recuperada de: Areatecnologiand. El Multiplexor y el Demultiplexor MUX y DEMUX Electrónica Fácil. https://areatecnologia.com/electronica/multiplexor.html

Arquitectura CLB

Otra forma de ver este bloque lógico es con la adición de un bloque llamado FA, donde se realizan funciones aritméticas.

Imagen recuperada de Akka technologies. (2022, June 21). FPGA: qué es y cuáles son las características de este componente https://www.akka-technologies.com/fpga/#:~:text=Una%20FPGA%20(Field%20Programmable%20Gate,un%20lenguaje%20de%20descripci%C3%B3n%20especializado.

Arquitectura Básica

MS “Switch Matrix” -Matrices de switch programables. PIP “Progammable interconnect points” -Puntos de programables de interconexión. Ambos elementos crean rutas y conexiones especificas.

Imagen recuperada de: Figura 25 Sisterna, C. Field programmable gate arrays (fpgas). Retrieved March 31, 2023, from http://dea.unsj.edu.ar/sisdig2/Field%20Programmable%20Gate%20Arrays_A.pdf

Bloque RAM

Dentro de la estructura de los FPGA se requiere bloques de memoria lectura/escritura. El número de bloques varia del tamaño del FPGA, en la familia Spartan, el rango de bloques es desde 4 hasta 100. Cada bloque de contiene 18.432 bits de RAM estática rápida, de los cuales 16K son dedicados para datos, y 2K restantes son de paridad.

Imagen recuperada de: Figura 19 Sisterna, C. Field programmable gate arrays (fpgas). Retrieved March 31, 2023, from http://dea.unsj.edu.ar/sisdig2/Field%20Programmable%20Gate%20Arrays_A.pdf

Bloque DCM

“Digital Clock Managers” o Gestor de Reloj Digital, son bloques digitales exclusivamente para el control y generación de señales de reloj. Sus principales funciones son: Eliminar el sesgo del reloj (clock skew), ya sea dentro del FPGA o con componentes externos. Producir corrimiento de fase (Phase shifting) de una señal de reloj, ya sea por una fracción del periodo de reloj o por incrementos fijos. Multiplicar o dividir la frecuencia de entrada del reloj, generando una frecuencia completamente nueva. Acondicionar la señal de entrada del reloj, asegurando un reloj limpio, con un ciclo de trabajo del 50%. Amplificar de nuevo (rebuffer) una señal de reloj, normalmente para eliminar el sesgo (deskew) y convertir la señal de entrada a un estándar diferente, por ejemplo, de LVDS a LVTTL.

Bloque DCM

Imagen recuperada de: Figura 27 Sisterna, C. Field programmable gate arrays (fpgas). Retrieved March 31, 2023, from http://dea.unsj.edu.ar/sisdig2/Field%20Programmable%20Gate%20Arrays_A.pdf

Etapas de diseño en un FPGA

Imagen recuperada de: FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html

Diseño Digital

Diseñar el circuito electrónico digital, estos circuitos emplean como información un nivel alto (1) y un nivel bajo (0), esta forma es conocida como binaria. Para recrear estos dos niveles se emplea un voltaje alto normalmente puede ser un voltaje de 5 o 3.3 Volts, y para bajo un voltaje bajo cercano a cero.

Imagen recuperada de: https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.euroinnova.edu.es%2Fcursos%2Fcircuitos-digitales&psig=AOvVaw0x3mVzFJqh-EkDS0ZaZnPn&ust=1680574873724000&source=images&cd=vfe&ved=0CBEQjhxqFwoTCMi957_TjP4CFQAAAAAdAAAAABAp

Diseño Digital

Estos circuitos pueden ser secuenciales o combinacionales, mas adelante se explicaran ambos temas.

Imagen recuperada de: Dubey, N. (2023, March 10). Difference between combinational and sequential circuits - Electronics Club. Electronics Club. https://electronics-club.com/difference-between-combinational-and-sequential-circuits/

HDL

“Hardware digital language”, es el lenguaje de sistemas digitales, aquí se trata de describir circuitos digitales a través de un lenguaje. Este lenguaje es empleado para la configuración de los circuitos impresos FPGA. Existen diversos lenguajes, pero los dos mas empleados es VHDL y Verilog.

Imagen recuperada de: FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html

HDL

“Very High Speed Hardware Description Language”, este lenguaje es utilizado para la configuración del hardware de los FPGA, surgió en los años 80´s del proyecto DARPA del Departamento de Defensa de los EE.UU. llamadó VHSIC (Very High Speed Integrated Circuits), se fue actualizando hasta el 2000 para conocer el lenguaje de alto rendimiento que conocemos ahora. Fue de acceso abierto y normalizado por parte de la IEEE “Institute of Electrical and Electronics Engineers” en 1987.

Imagen recuperada de: FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html

VHDL

  • La estructura del lenguaje VHDL está conformado por tres partes:
  • Librería o paquetes
  • Es la parte de declaración de librerías y paquetes que va emplear el código
  • “Entity”
  • Es la parte de declaración de entradas y salidas del modulo, así como señales internas dentro del sistema, a su vez se declarara el nombre que llevara el modulo.
  • “Architecture”
  • Es la arquitectura del
  • módulo referido por el nombre con el que se etiquetó en entity, se declara detalladamente el comportamiento del modulo.
Imagen recuperada de: FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html

VHDL

Importante denotar que en la declaración de entradas y salidas, al conocer que son circuitos digitales pueden ser valores de un bit o un arreglo de varios bits, por lo que al ser un arreglo se les nombra como vectores.

Imagen recuperada de: FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html

VHDL

Recuperado de: https://posgrado.lapaz.tecnm.mx/uploads/archivos/55e4e3b1ea4e4.pdf

Verilog

Al igual que el VHDL, Verilog HDL es un lenguaje de programación para la descripción de circuitos electrónicos digitales. Se forma gracias al conjunto de sentencias que determinan el comportamiento o tarea a realizar. Tambien esta estandarizado por la IEEE.

Imagen recuperada de: FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html

Verilog

Imagen recuperada de: FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html

Verilog

La expresión lógica del ejemplo es la siguiente: Z = ab+ac+bc

VHDL vs Verilog HDL

Verilog

VHDL

  • Tiene similitudes con el lenguaje de programación C, mas no es un lenguaje de programación.
  • Fácil aprendizaje.
  • Asistido por computadora.
  • Más amigable para el usuario.
  • Demanda alta en la industria.
  • No es un lenguaje de programación.
  • Lenguaje complejo para la descripción de circuitos digitales.
  • Más eficiente.
  • Comunidad mas amplia de usuarios.

Bit de configuración

Son bits que configuran los puntos de conexión dentro de los PIP y SM.

Imagen recuperada de: http://fpgawars.github.io/

Reconfiguración

Para la reasignación es necesario configurar los bits de configuración a cero y volverlos a configurar. Inicialmente el FPGA siempre sus bits de configuración tienen el valor de 0.

Imagen recuperada de: http://fpgawars.github.io/

Bitstream

Es el mapeado y enrutado de las conexiones, son cadenas de bits que fluyen de manera externa hacia el fpga vía bus serie (spi) configurando los puntos de conexión.

Imagen recuperada de: http://fpgawars.github.io/

Procesamiento Paralelo

Procesamiento en tiempo real

Manufactura

Marcas Pioneras

Xilinx Fue una de las marcas pioneras en el desarrollo y auge de los fpga. Fueron de los primeros en desarrollar un PLD reprogramable.

Marcas Pioneras

Altera Fue otra empresa de manufactura de fpga, una de las mas grandes competencias de Xilinx en su momento ya que lanzaron al mercado un fpga que le competía contra el de Xilinx.

Marcas

AMD Empresa estadounidense que adquirió la marca Xilinx. La empresa de desarrollo computacional tiene el objetivo de completar la tecnología de Xilinx con la experiencia de software.

Marcas

Intel Empresa estadounidense que adquirió la marca ALTERA. Combinando la experiencia del desarrollo de procesadores con la de los FPGA e incluso combinando ambas tecnologías.

Marcas

Lattice Semiconductores Empresa americana presente en el mercado de los FPGA.

Marcas

Microchip Empresa de manufactura de los fpga presente en todo el mundo. Adquirio a otras marcas como Actel, Atmel, Microsemi.

Marcas

Quicklogic Empresa Americana dentro de la manufactura de FGPA de código libre.

Marcas

National Instruments NI Rio El procesador en tiempo real ofrece un comportamiento confiable y predecible, mientras que el FPGA sobresale en tareas más pequeñas que requieren lógica de alta velocidad y temporización precisa.

Sistemas CompactRIO. (2018, January 3). NI. https://www.ni.com/es-mx/shop/compactrio.html

Descripción Hardware Combinacional

Descripción Hardware Secuencial

Bibliografía

  • Akka technologies. (2022, June 21). FPGA: qué es y cuáles son las características de este componente https://www.akka-technologies.com/fpga/#:~:text=Una%20FPGA%20(Field%20Programmable%20Gate,un%20lenguaje%20de%20descripci%C3%B3n%20especializado.
  • Areatecnologiand. El Multiplexor y el Demultiplexor MUX y DEMUX Electrónica Fácil. https://areatecnologia.com/electronica/multiplexor.html
  • Chacon, J., Villamizar, A., & Ardila, D. (n.d.). Verilog y VHDL diferencias ventajas y desventajas. http://wiki.sc3.uis.edu.co/images/f/f5/ArchiG01.pdf
  • FPGAwars. (n.d.). http://obijuan.github.io/intro-fpga.html
  • Introduction to FPGA and It’s Programming Tools. (n.d.). https://circuitdigest.com/tutorial/what-is-fpga-introduction-and-programming-tools
  • Marín De La Rosa, J. M. (n.d.). Field programmable gate array. https://biblus.us.es/bibing/proyectos/abreproy/11375/fichero/MEMORIA%252FFPGAs.pdf
  • Pag 15
  • R. E. Haskell, D. M. Hanna; Digital design using digilent FPGA boards - VHDL/vivado edition; LBE. David G. Maxinez, VHDL: el arte de programar sistemas digitales, CECSA, 2002
  • Sisterna, C. Field programmable gate arrays (fpgas). Retrieved March 31, 2023, from http://dea.unsj.edu.ar/sisdig2/Field%20Programmable%20Gate%20Arrays_A.pdf