Este proyecto se ha basado fundamentalmente en el diseño, desarrollo y caracterización de
osciladores anillo en una FPGA, modelo Virtex-5 para obtener la temperatura de la misma
a través de la frecuencia de oscilación de los sensores.
Para ello primero se diseñaron los osciladores anillo en VHDL y una lógica de control que
permitiera obtener la frecuencia de oscilación y controlase la habilitación/deshabilitación
de los sensores.
Los datos de la frecuencia obtenidos fueron enviados a través de la interfaz RS232
(UART) al ordenador. Con el fin de almacenar y procesar esos datos se crea una interfaz
en Matlab. Tras obtener los datos se realizaron distintas representaciones gráficas para
ayudar a la interpretación de los resultados.
Con el fin de obtener la temperatura de la placa y poder así realizar la calibración de los
sensores anillo, se monitorizó el diodo interno de temperatura pre-calibrado que posee el
modelo de FPGA utilizado. Por tal razón, el módulo System Monitor tuvo que ser
considerado como parte de nuestro diseño obteniendo aproximadamente la temperatura del
FPGA como su respectivo voltaje de núcleo
Una vez definido el oscilador e interconectarlo con Matlab, se procedió a realizar tres
experimentos diferentes:
El primero consistió en identificar el número de inversores que son necesarios para que los
datos recogidos del sensor anillo sean los más fieles posibles a la realidad.
En el segundo se realizó la calibración de dos sensores próximos al diodo calibrado interno
que posee el FPGA para estudiar cual es la variación de la frecuencia de oscilación con
respecto el voltaje de núcleo, la temperatura y la posición de los anillos.
Y el tercero consistió en colocar 48 sensores distribuidos por toda la FPGA y obtener la
frecuencia de oscilación de cada uno de ellos, procesando un número determinado de
muestras por cada sensor.
En resumen, se han realizado 12 versiones de circuitos sobre los cuales se han hecho
21.504 medidas. Y el código contiene unas 8.700 líneas divididas en 6 ficheros diferentes.The aim of this project tackles the design, development and analysis of ring oscillators,
which comprises of a series of inverters, implemented over an FPGA-Virtex-5 in order to
sense the temperature gradient of hot-spots in FPGAs.
Therefore, our proposal consists of designing an array of ring oscillators which are
monitored by a control central unit which actives the period required to conduct several
stages of our design in order to read the counter generated by ring oscillator.
The data obtained are computationally processed carrying out varies operations such as
frequency oscillation calculation, median and standard deviation as well as several graphs
depicting profiles thermal. Likewise, a PC connected via UART to the FPGA in charges of
receiving the data from our design.
In order to get the absolute temperature of the tested FPGA and be able to perform
calibration of the sensor ring the System Monitor module was used. It’s worth mentioning
that this Xilinx FPGA contains a pre-calibrated built-in thermal diode which is sensed by
the module indicated earlier.
Several experiments were carried out evaluating the ring oscillator design. It can be
mentioned the following:
As a first experiment, it was examined the number of inverters utilized in each sensor by
means of several design combinations and evaluated their respective sensor performance.
As second one, it was calibrated two ring oscillator sensors closets to the position of the
built-in thermal diode in order to evaluate the variation of the tuned frequency related to
absolute temperature, voltage core and relative placement within FPGA.
Lastly, it was tested the frequency oscillation of each sensor considering an array of 48
thermal sensors distributed properly over the FPGA.
In summary, there have been made 12 circuit versions and 21.504 measurements. And the
code contains 8.700 lines divided into 6 different files