Simulación y medida de consumo en FPGAs para arquitecturas de operadores aritméticos

Montes Salinero, Juan José (2019). Simulación y medida de consumo en FPGAs para arquitecturas de operadores aritméticos. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Description

Title: Simulación y medida de consumo en FPGAs para arquitecturas de operadores aritméticos
Author/s:
  • Montes Salinero, Juan José
Contributor/s:
  • Otero Marnotes, Andres
  • Riesgo Alcaide, Teresa
Item Type: Final Project
Degree: Grado en Ingeniería en Tecnologías Industriales
Date: 2019
Subjects:
Freetext Keywords: Multiplicadores, FPGA, Vivado, HLS, velocidad, área, consumo, segmentación, VHDL, FPGA-in-the- Loop, PYNQ
Faculty: E.T.S.I. Industriales (UPM)
Department: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (3MB) | Preview

Abstract

Este trabajo de fin de grado tiene como finalidad, la implementación de distintas arquitecturas de multiplicadores digitales sobre una FPGA. Para ello, utilizamos la herramienta Vivado de Xilinx, con el propósito de comparar y analizar los distintos parámetros de diseño (velocidad, área, consumo) de cada uno de los multiplicadores, estudiando la relación entre cada uno de estos factores. Además, se utiliza la herramienta de diseño de alto nivel Vivado HLS, para elaborar un multiplicador digital, a partir de código C, que será analizado con el resto de los diseños VHDL. También, se analiza la técnica de diseño segmentación, para el aumento del número de muestras procesadas por unidad de tiempo del sistema y como esto afecta a nuestros diseños. A su vez, se busca medir la precisión de la estimación de consumo de la herramienta Vivado de Xilinx, y ver y relacionar los distintos parámetros que afectan a esta estimación, comparándola con la realidad medida en el laboratorio. Primero, se realiza el estudio de las principales fuentes de consumo en los circuitos digitales electrónicos, poniendo especial interés en las FPGA. Además, se estudian distintas técnicas de diseño de sistemas digitales. Posteriormente, se siguen los pasos necesarios para diseñar un sistema electrónico digital utilizando un lenguaje de descripción de hardware. Se ha realizado el diseño de cinco arquitecturas de multiplicadores, escritas en lenguaje de descripción VHDL. Estos multiplicadores son descritos de forma estructurada, todos ellos son paralelos, tres de ellos sin signo y dos que multiplican en complemento a dos, de 4, 8 y 16 bits. Además, a los cinco diseños, se les implementará la técnica de segmentación, aumentado progresivamente el número de etapas. Por otro lado, se utiliza la herramienta de Xilinx, Vivado HLS, para síntesis de alto nivel, con el objetivo generar un multiplicador en VHDL, a partir de código C, y comparar el resultado con el resto de los multiplicadores. El primer paso, consiste en simular y verificar el funcionamiento de los multiplicadores, utilizando un testbench adecuado para ello y el simulador integrado en la herramienta Vivado. Una vez comprobado que el fichero de configuración se genera correctamente, para probar que realmente funcionan los multiplicadores en el hardware, se utiliza la herramienta de Matlab, Simulink, y dentro de esta, la herramienta FPGA-in-the-Loop (FIL). Esta herramienta nos permitirá tanto introducir datos a la FPGA, como recoger los resultados de la salida y comprobar si las multiplicaciones se realizan de manera correcta. Una vez observado que el funcionamiento de cada descripción es el requerido, se sintetizan y se implementan estos multiplicadores sobre la placa PYNQ, que tiene en su interior la FPGA del fabricante Xilinx, ZYNQ XC7Z020 –CLG400C. Se miden los principales parámetros de diseño de cada uno de los circuitos, los recursos utilizados de la placa, la velocidad máxima de funcionamiento y la estimación de consumo, analizando las variaciones que se producen al aumentar el número de bits, la frecuencia de funcionamiento o el número de etapas de segmentación. Para estimar el consumo de los multiplicadores se utilizará la herramienta Report Power de Vivado, utilizando un fichero de actividad generado mediante simulación, que almacena la actividad de las señales del diseño. Esta simulación debe ser lo más parecida posible al funcionamiento real del circuito, para así, obtener una estimación precisa del consumo. Para ello, se utiliza un testbench con un Load Feedback Shift Register, que genera una secuencia de números pseudoaleatorios. Con esto, podremos comparar posteriormente las predicciones de esta herramienta, con las mediciones en el laboratorio sobre la FPGA. Una vez realizados todos estos pasos, se implementarán las distintas arquitecturas sobre la FPGA, utilizando como se menciona anteriormente la herramienta FIL de Matlab. Mediante una fuente de números aleatorios, se introducen datos a las entradas del diseño y medimos el consumo con una placa diseñada previamente en el Centro de Electrónica Industrial, que se conecta entre la alimentación y la FPGA. Por último, una vez hemos medido todos los datos, los analizamos para ver los resultados de los distintos multiplicadores, y compararlos entre ellos. Para ver si existen diferencias apreciables y cuáles son los que ofrecen mejores resultados, tanto en velocidad, como en área ocupada y consumo. A su vez, se analiza la dependencia entre los distintos parámetros de diseño y la relación entre la estimación de consumo y la medida de consumo real. A partir del análisis de los datos, podemos ver, que el multiplicador con mejores características es el multiplicador de Wallace, ya que, ocupa menos área, alcanza mayor velocidad y consume menos que el resto de los diseños. Por otro lado, el multiplicador diseñado con la herramienta Vivado HLS, mejora en varios aspectos al multiplicador de Wallace. Por lo que se puede concluir, que Vivado HLS, es una alternativa útil para el diseño de operadores aritméticos eficientes. La técnica de diseño, segmentación, es muy eficiente si queremos aumentar el número de muestras procesadas por unidad de tiempo, con una penalización en el área ocupada y en la latencia. El consumo está fuertemente ligado al número de muestras procesadas por unidad de tiempo del sistema, y al número de bits de los operandos. La estimación de consumo realizado con Vivado presenta diferencias apreciables con los resultados obtenidos en el laboratorio, por lo que podemos concluir, que la herramienta FPGA-in-the-Loop no es óptima para medir el consumo real de nuestro diseño.

More information

Item ID: 54373
DC Identifier: http://oa.upm.es/54373/
OAI Identifier: oai:oa.upm.es:54373
Deposited by: Biblioteca ETSI Industriales
Deposited on: 20 Mar 2019 07:43
Last Modified: 19 May 2019 22:30
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM