[en] 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.

[es] 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.