Defensa proyectos Diseño Lógico II

Defensa proyectos Diseño Lógico II

de Sebastian Fernandez -
Número de respuestas: 1

Estimados,
 mañana martes 19 a las 17:00 se realizará la defensa de proyectos de la asignatura Diseño Lógico 2.

Es una instancia breve donde cada uno de los tres grupos de esta edición exponen sus trabajos.

Quizá pueda ser de interés de ustedes y responerse ¿qué puedo hacer con un FPGA?

Este año los proyectos fueron: 
 - Manejo de Neopixeles en función de señales recibidas por HDMI.
 - Estudio comparativo del LegUp
 - CAN Opener. Sniffer de una red CAN implementado en FPGA

Más abajo pueden leer un resumen de cada uno de ellos.

Saludos,
 Sebastián

-----------------

*** Manejo de Neopixels en función de señales recibidas por HDMI.
Autores: Florencia Montaldo, Marco Rolón

El proyecto se centró en la recepción de una señal de video de HDMI para su posterior procesamiento y el manejo de Neopixels de acuerdo a las señales obtenidas. Se utilizó una placa Atlys FPGA Board (basada en una Xilinx Spartan-6 LX45 FPGA) y Neopixels basados en el integrado WS2811.

Para la primera parte se estudiaron empíricamente las señales de sincronismo del HDMI, intentando lograr una comprensión global que hiciera posible hacerse una idea de en qué momento se estaba recibiendo qué parte de la imagen. Se logró un entendimiento muy básico y por tanto se limitó el proyecto a la extracción de un único píxel cualquiera de la imagen para su almacenamiento en una memoria. Es un área que requiere más trabajo.

En cuanto al manejo de los Neopixels, hubo en primera instancia que estudiar el protocolo de comunicación de datos asociado. Los Neopixels tienen un solo cable de datos por el cual reciben paquetes de 24 bits de forma serial, identifican un ‘0’ o ’1’ lógico con pulsos característicos que hubo que recrear mediante contadores a partir del reloj de la placa. Una vez que fue posible enviar datos de manera correcta, se debió hallar una manera de lograr transmitir datos específicos leídos desde una memoria, para esto se utilizó un shift register encargado de serializar los datos obtenidos.

Juntando las dos partes anteriores, se logró encender los LEDs con colores asociados a las imágenes recibidas por HDMI. El píxel leído desde HDMI es siempre el mismo punto fijo de la imágen, mientras que el lugar de memoria en el que es almacenado se controla mediante los switches de la placa. Cada Neopixel tiene asociado una dirección de memoria y se enciende según lo que haya almacenado en ella.

*** Estudio Comparativo de LegUp
Autores: Alejandra Clivio, Martín Ottavianelli

En los últimos años, la emergencia de diversas tecnologías y herramientas de High-Level Synthesis (HLS), tanto comerciales como académicas, ha supuesto una incertidumbre respecto al futuro del diseño de hardware, planteando una interrogante acerca de si la industria se abocará al desarrollo de dicha tecnología, o si -por el contrario- continuará recorriendo otros caminos de investigación. 

Ante tal panorama, el presente documento constituye un estudio comparativo de LegUp, una herramienta de High-Level Synthesis desarrollada por la Universidad de Toronto, a partir de la implementación de cinco filtros de procesamiento y preprocesamiento de audio mediante dos vías: la síntesis en LegUp, y la descripción en VHDL; y donde se concluye que las limitantes halladas en el proceso de aplicación de la herramienta para la síntesis de los filtros, suponen un obstáculo mayor, tanto en términos de diseño como de horas-hombre demandadas, para un usuario experimentado en hardware, con respecto a la implementación de los filtros en VHDL.

Se destaca que todos los filtros sintetizados en LegUp alcanzan el funcionamiento esperado, análogo al de los filtros en VHDL; sin embargo, en cuatro de los cinco casos son superados por estos últimos en la optimización de la frecuencia máxima de operación. Con respecto a la utilización de recursos lógicos (ALMs, ALUTs, registros, etc.) los resultados obtenidos varían dependiendo de cada caso, aunque debe señalarse que se detecta que en la arquitectura de los filtros sintetizados con LegUp, no se almacenan las salidas en memoria, cuando los filtros diseñados en VHDL sí lo hacen, lo cual demanda un mayor empleo de recursos.

*** CAN Opener. Sniffer de una red CAN implementado en FPGA
Autores: José Bentancour Damián Vallejo

Este proyecto plantea la realización un “sniffer” de una red CAN de un auto para encontrar mayor informacion que la brindada por un escáner ODBII estándar. OBDII es un sistema de diagnóstico de vehículos, sucesor de OBDI. Permite detectar fallos eléctricos, químicos y mecánicos que pueden afectar al nivel de emisiones del vehículo. El sistema verifica el estado de todos los sensores involucrados en las emisiones, como por ejemplo la inyección o la entrada de aire al motor. Además es capaz de bridar información en tiempo real como RPM, velocidad o temperarura del líquido refrigerante. ODBII es independiente del protocolo de comunicación pero desde hace ya varias generaciones de vehículos contienen buses de comunicación CAN. Si bien la información que se puede obteber a partir de este estándar está definida, existen otras partes de los sistemas electrónicos que se encuentran en los vehículos modernos que utilizan una comunicación CAN para su operación. Es este tipo de datos que no se encuentran accesibles por el puerto ODBII los que es de interés para este proyecto obtener a través de un mecanismo de ingeniería inversa. Un escáner popular es el ELM327, basado en un microprocesador PIC, con el cual se pudo identificar el bus que se desea investigar: ISO 15765-4 (CAN 11/500)

Se implementó un sistema conectando el bus CAN (CAN H y CAN L), con ayuda
de un chip SN65HVD230 que permite obtener a partir de las líneas diferenciales una señal binaria de 3.3 V que se conectó a la placa DE0.
Dados la complejidad del protocolo a la hora de transmitir y el hecho de que solo se necesita recibir datos, solo se implementó la recepción de mensajes.
Finalmete, se realizó una etapa de recepción compuesta por un buffer de lectura que se encarga de leer los bits transmitidos la red CAN, identifica el comienzo y fin de cada mensaje, sus diferentes partes y guarda la información de interés en un registro FIFO. Por otro lado, una etapa de procesamiento de datos y despliegue de información comienza en la lectura del FIFO de la etapa anterior a través de una interfaz Avalon y un programa que se ejecuta en el procesador NIOS de la placa DE0 releva estos datos y los despliega en una consola en una computadora.


-- 
Sebastián Fernández
IIE - UDELAR