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