Materia

Contenido de XSL

Cosimulación para la verificación de sistemas sobre FPGAs

Datos generales de la materia

Modalidad
Presencial
Idioma
Castellano

Descripción y contextualización de la asignatura

La co-simulación HDL y PIL (Processor In the Loop) son herramientas de gran utilidad en el flujo de diseño y verificación basado en modelo de sistemas de procesamiento digital. Estas herramientas resultan aun más indispensables cuando se trata de verificar el diseño de controladores digitales de alto rendimiento sobre FPGAs (FIL o FPGA In the Loop), ya que ello implica la co-simulación de sistemas realimentados en los que la respuesta del sistema de control, una vez consideradas las particularidades del diseño digital, es difícil de predecir.

En esta asignatura se analizan los fundamentos de la co-simulación HDL y FIL, y se practica de forma intensiva con las herramientas de co-simulación de Xilinx y Mathworks, es decir, Matlab/Simulink+HDL Verifier. Adicionalmente, en la asignatura se dedican algunas sesiones a la configuración y aplicación de herraminetas de co-simulación y verificación basadsa en VHDL, GHDL y VUnit. El objetivo es proporcionar al alumnado una formación básica, pero sólida y práctica, en la verificación de sistemas (en particular de controladores) de alto rendimineto sobre FPGAs.

Profesorado

NombreInstituciónCategoríaDoctor/aPerfil docenteÁreaEmail
BASTERRECHEA OYARZABAL, KOLDOBIKAUniversidad del País Vasco/Euskal Herriko UnibertsitateaProfesorado Titular De UniversidadDoctorBilingüeTecnología Electrónicakoldo.basterretxea@ehu.eus
IBARRA BASABE, EDORTAUniversidad del País Vasco/Euskal Herriko UnibertsitateaProfesorado AgregadoDoctorBilingüeTecnología Electrónicaedorta.ibarra@ehu.eus
MARTINEZ CORRAL, UNAIUniversidad del País Vasco/Euskal Herriko UnibertsitateaBilingüeTecnología Electrónicaunai.martinezcorral@ehu.eus

Competencias

DenominaciónPeso
Habilidad para identificar, formular y resolver problemas de Electrónica aplicada a las Comunicaciones o al Control.50.0 %
Capacidad de aplicar metodologías modernas y buenas prácaticas en el desarrollo de productos tecnológicos.50.0 %

Tipos de docencia

TipoHoras presencialesHoras no presencialesHoras totales
Magistral6915
P. Laboratorio121830
P. Ordenador121830

Actividades formativas

DenominaciónHorasPorcentaje de presencialidad
Clases expositivas10.0100 %
Manejo de equipos e instalaciones experimentales0.00 %
Prácticas con ordenador, laboratorio, salidas de campo, visitas externas12.0100 %
Trabajo individual y/o en grupo5.00 %
Trabajos con equipos informáticos18.067 %

Sistemas de evaluación

DenominaciónPonderación mínimaPonderación máxima
Asistencia y Participación0.0 % 10.0 %
Trabajos Prácticos90.0 % 100.0 %

Resultados del aprendizaje de la asignatura

EXPLICAR LAS VENTAJAS DE LA COSIMULACIÓN PARA LA VERIFICACIÓN DE CONTROLADORES DIGITALES IMPLEMENTADOS EN FPGAS.

· RECONOCER LAS DIFERENCIAS FUNDAMENTALES ENTRE LA COSIMULACIÓN HDL Y LA COSIMULACIÓN HIL.

· ANALIZAR LOS PROBLEMAS ASOCIADOS AL SINCRONISMO EN LA COSIMULACIÓN DE CONTROLADORES DIGITALES EN TIEMPO REAL.

· INTERPRETAR CORRECTAMENTE LA INTERACCIÓN TEMPORAL ENTRE SUBSISTEMAS EN LA COSIMULACIÓN DE SISTEMAS MULTIRATE.

· APLICAR LOS CONOCIMIENTOS ADQUIRIDOS A LA COSIMULACIÓN HDL DE UN SISTEMA REALIMENTADO SENCILLO QUE CONTENGA UN CONTROLADOR DIGITAL REALIZADO SOBRE UNA FPGA.

· APLICAR LOS CONOCIMIENTOS ADQUIRIDOS A LA COSIMULACIÓN HIL DE UN SISTEMA REALIMENTADO SENCILLO QUE CONTENGA UN CONTROLADOR DIGITAL REALIZADO SOBRE UNA FPGA.

Convocatoria ordinaria: orientaciones y renuncia

La evaluación será continua, valorándose:

1. Asistencia a las sesiones magistrales, seminarios y sesiones prácticas.

2. Entrega puntual de las tareas propuestas en las sesiones magistrales y prácticas, y calidad de las mismas.

3. Trabajo final (ejemplo de aplicación con ontroladores realimentados): entrega de la memoria final.



Se habilitará un plazo prorrogado de dos semanas tras la finalización de las clases para la corrección y subsanación de errores en las tareas entregadas.



RENUNCIA: El alumnado debe informar por escrito (email) al coordinador de la asignatura de su intención de renunciar con al menos dos semanas de antelación a la finalización del periodo lectivo de la asignatura según el calendario publicado para cada curso académico.



NOTA: En el caso de que las condiciones sanitarias impidan la realización de una actividad docente y/o evaluación presencial, se activará una modalidad no presencial de la que los/las estudiantes serán informados puntualmente.

Convocatoria extraordinaria: orientaciones y renuncia

Aplican las mismas condiciones que en la convocatoria ordinaria.

Dependiendo del rendimineto de cada alumno en la convocatoria ordinaria, se establecerán nuevos plazos para la elaboración de tareas y trabajos y para la entrega de los correspondinetes informes y memorias.



RENUNCIA: El alumnado debe informar por escrito (email) al coordinador de la asignatura de su intención de renunciar con al menos dos semanas de antelación a la finalización del periodo lectivo de la asignatura según el calendario publicado para cada curso académico.



NOTA: En el caso de que las condiciones sanitarias impidan la realización de una actividad docente y/o evaluación presencial, se activará una modalidad no presencial de la que los/las estudiantes serán informados puntualmente.

Temario

SESONES TEÓRICAS



Bloque I

1. Cosimulación HDL y cosimulación FIL. Conceptos generales y herramientas

2. Herramientas de co-simulación HDL de Mathworks: HDL verifier para Matlab y Simulink.

3. Generación de test benches para co-simulación.

4. Cosimulación HDL de controladores realimentados. Sincronismo y sistemas multirate.



Bloque II

5. Introducción a librerías (frameworks) para simulación/verificación de diseños VHDL (>= 2008): VUnit y OSVVM.

6. Transición de m/C/Python a VHDL mediante desarrollo guiado por pruebas (test-driven development, TDD): gestión de tests e integración continua con VUnit y GHDL (o ModelSim/QuestaSim).



Bloque III

7. Uso de HDL Verifier para co-simulación FIL.

8. Aplicación a un caso prácto de control realimentado con FPGAs: Xilinx support packages.



SEISONES PRÁCTICAS



Bloque I

1. Ejemplo de co-simulación HDL con Matlab.

2. Ejemplo de co-simulación HDL con Simulink.

3. Co-simlación HDL de un control PID (VHDL) realimentado.



Bloque II

4. Instalación y setup de VUnit y GHDL. Ejecución y análisis de ejemplos existentes.

5. Co-simulación y test SW/HW de un SoC con un núcleo IP con interfaces AXI, utilizando la Verification Component Library de VUnit.



Bloque III

6. Cosimulación FIL de un controlador PID realimentado implementado sobre FPGA.

Bibliografía

Materiales de uso obligatorio

Bloque I



• Manuales de usuario de Mathworks: Matlab/SImulink y HDL Verifier.



• Manuales de usuario de Xilinx support packages para HDL Verifier.







Bloque II







- Instalación de MSYS2: https://www.msys2.org/#installation



- GHDL:



Quick Start Guide: https://ghdl.rtfd.io/en/latest/quick_start/README.html



- VUnit:



User Guide: http://vunit.github.io/user_guide.html#user-guide



Command Line Interface: http://vunit.github.io/cli.html



Verification Component Library: http://vunit.github.io/verification_components/user_guide.html



Example 'Array and AXI4 Stream Verification Components': https://github.com/VUnit/vuni/tree/master/examples/vhdl/array_axis_vcs/



- Co-simulation with GHDL:



https://ghdl.github.io/ghdl-cosim/



VHPIDIRECT examples 'Constrained multidimensional arrays of doubles/reals' and 'Array and AXI4 Stream Verification Components': https://ghdl.github.io/ghdl-cosim/vhpidirect/examples



Bibliografía básica

Bloques I y III

- HDL Verifier reference book, The Mathworks, 2019.

- HDL Verifier getting started guide, The Mathworks, 2019.

- HDL Verifier user's guide, The Mathworks, 2019.

- HDL Verifier Support Package for Xilinx FPGA boards





Bloque II

- Documentación de MSYS2: https://www.msys2.org/

- Documentación de VUnit: http://vunit.github.io

- Documentación de GHDL: https://ghdl.rtfd.io

- Documentación de Bash: https://www.gnu.org/software/bash/manual/

- Página de OSVVM: https://osvvm.org/about-os-vvm

Enlaces

http://www.xilinx.com/



http://es.mathworks.com/



Contenido de XSL

Sugerencias y solicitudes