Laboratorio de Circuitos y Sistemas Electrónicos (LCSE-1 / 2016-17)
En esta asignatura se aplican los conocimientos de electrónica digital al diseño práctico de un sistema digital de complejidad media. En este sentido, el principal objetivo es que el alumno adquiera la capacidad de realizar una implementación real a partir de unas especificaciones funcionales siguiendo la metodología de diseño de circuitos digitales síncronos.
El énfasis se hace en la utilización de herramientas CAD para el diseño de circuitos digitales complejos empleando el lenguaje de descripción hardware VHDL. Aprovechando este esce-nario se tratan asimismo otros aspectos prácticos importantes relacionados con el diseño de sistemas digitales complejos. La validación del desarrollo es una tarea principal, que debe rea-lizarse mediante simulación, como sucede en entornos profesionales.
A lo largo del curso el alumno tiene que realizar varias prácticas aplicando las distintas fases de una metodología clásica de diseño:
1. Estudio de las herramientas CAD de diseño
2. Especificación en VHDL y técnicas de simulación
3. Síntesis e implementación sobre FPGA
Más concretamente, los objetivos de la asignatura se pueden describir del siguiente modo:
- Experimentar el desarrollo de sistemas digitales complejos
- Desarrollar la capacidad de análisis de una especificación
- Emplear herramientas profesionales de síntesis y simulación digital
- Comprender la importancia de los sistemas digitales síncronos
- Aprender técnicas para la depuración de sistemas hardware mediante simulación
- Planificar adecuadamente las etapas de desarrollo para un sistema complejo
- Abordar todas las fases de desarrollo, hasta la prueba final en una FPGA real
Tema 1: El lenguaje VHDL
Niveles de abstracción
Tipos y subtipos de datos, conversiones
Constantes, señales y variables, atributos
Asignaciones, operadores
Entidades, puertos y generics
Arquitecturas, sentencias concurrentes
Procesos y listas de sensibilidad, sentencias secuenciales
Reutilización de componentes, paquetes y librerías
Bancos de pruebas, wait y after
Tema 2: Consideraciones prácticas para diseño y simulación-verificación
Descripción de máquinas de estados
Concepto de código sintetizable
Inferencias comunes en la síntesis
Procesos combinacionales y secuenciales
Temporización y simulación
Ficheros de restricciones
Tema 3: Errores comunes en el uso del VHDL
Listas de sensibilidad incompletas
Aparición de latches
Lazos combinacionales
Asignación multiple de señales
Empleo de señales y variables
Inicialización de señales
Práctica I: Consta de ejercicios guiados con el propósito de introducir al lenguaje de descrip-ción hardware VHDL y familiarizar con las herramientas software de desarrollo, más el diseño de un módulo de pequeña complejidad que luego formará parte del sistema de la Práctica II.
Práctica II: Diseño sobre especificaciones de un sistema electrónico digital completo de com-plejidad media.
Metodología docente
La asignatura se plantea sobre la realización de dos prácticas de creciente complejidad, para las cuáles los alumnos se agrupan en parejas. A cada pareja se le asigna un turno de asistencia preferente con una duración de 3 horas.
La Práctica I aborda el aprendizaje del lenguaje VHDL y la introducción a las herramientas de simulación y síntesis. Es una práctica guiada, que se realiza para que el alumno se familiarice con el entorno de trabajo y adquiera un conocimiento inicial del VHDL. Para ello, se proponen varios ejercicios sencillos que servirán de modelo para la descripción de los elementos esencia-les del diseño digital mediante VHDL, incluyendo lógica combinacional y secuencial. En un úl-timo ejercicio, el alumno debe codificar VHDL por sí mismo, profundizando también en los resultados de los procesos de síntesis realizados. Este ejercicio debe llegar a funcionar en una placa de protipado.
En la Práctica II se realiza el desarrollo de un sistema digital de complejidad media a partir de unas especificaciones dadas siguiendo una metodología tipo PBL (Problem-Based Learning), de forma que el alumno demande su formación en función de las necesidades que le surgen al resolver el problema. El alumno debe generar el código VHDL de los bloques constituyentes del sistema y los estímulos necesarios para la correcta verificación del diseño.
Adicionalmente se impartirán clases sobre los temas que tengan impacto crítico en el diseño de un sistema, como puede ser temporización, diseño de máquinas de estados o acceso a bu-ses. Igualmente se impartirán clases de introducción a las herramientas y al lenguaje VHDL.
La Práctica I propuesta tiene como objetivo que los alumnos se familiaricen con las herramien-tas de desarrollo y descubran las particularidades de la especificación de hardware digital me-diante lenguajes de alto nivel, ya que es intrínsecamente diferente de la programación softwa-re, con la que ya están muy habituados.
En este sentido, se les pide que entreguen las respuestas a las cuestiones suscitadas en los ejercicios de la Práctica I, así como también el código generado para el último ejercicio de la misma, que serán analizados por los profesores para determinar el grado de competencia ad-quirido. A continuación se reunirán con los alumnos para comentar las dificultades surgidas y corregir deficiencias en los métodos de trabajo y especificación, con el objeto de facilitar el abordaje de la Práctica II.
El objetivo final de la asignatura consiste en la implementación del sistema propuesto en la Práctica II, alcanzando si es posible la realización de pruebas reales en la placa de prototipado. Así pues, el énfasis está más en el desarrollo de las habilidades de especificación, simulación y depuración, y menos en la generación de documentación.
Al termino de la asignatura, se pide a los alumnos que entreguen todo el código generado, así como una breve memoria del trabajo realizado en la Práctica II, incluyendo la siguiente in-formación:
- Decisiones tomadas sobre la arquitectura escogida
- Diferencias con el esquema propuesto y justificación
- Dificultades encontradas y solución
- Grado de consecución del prototipo final
La evaluación final se basa en la información de la memoria y el código entregados, junto con los resultados de un examen oral práctico que tiene lugar entre un profesor y cada uno de los grupos del laboratorio, donde los alumnos deben demostrar:S
- Su conocimiento sobre el sistema desarrollado
- El grado de consecución del mismo
- Su competencia en el empleo de las herramientas y metodologías
El profesor observa también la habilidad de los alumnos para comunicar de manera efectiva y concisa información técnica, conocimientos, justificaciones, etc., y para responder a las pre-guntas que les formule.