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.