Créditos
6
Tipos
Complementaria de especialidad (Computación de Altas Prestaciones)
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
AC
Profesorado
Responsable
- Francisco Jesus Sanchez Navarro ( f.jesus.sanchez@upc.edu )
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
7.11
Competencias
High performance computing
Genéricas
Trabajo en equipo
Actitud frente al trabajo
Básicas
Objetivos
-
Entender e implementar un plan de verificación y un banco de pruebas, y ejecutarlo.
Competencias relacionadas: CB7, CTR3, CEE4.1, CG4, -
Ser capaz de proporcionar y defender el plan de verificación y sus fases de ejecución.
Competencias relacionadas: CB8, CTR3, CTR5, -
Utilizar las herramientas EDA necesarias para llevar a cabo el proyecto.
Competencias relacionadas: CB7, CTR5,
Contenidos
-
Introducción a la verificación pre-silicio
Por qué la verificación es crítica en el diseño moderno. Panorama general del flujo de verificación. El papel de la verificación en el diseño de microprocesadores. -
Planificación de verificación y bancos de pruebas
Plan de verificación y objetivos de cobertura. Arquitectura del banco de pruebas. Monitores, verificadores y comparadores de datos. -
SystemVerilog para la verificación (SVV)
Conceptos básicos de SystemVerilog para el diseño de bancos de pruebas. Interfaces y bloques de sincronización. Aleatorización y restricciones. Clases, herencia y polimorfismo. Transacciones (TLM). -
Pruebas dirigidas y aleatorizadas
Metodologías de pruebas dirigidas. Generación aleatorizada de pruebas. Análisis de cobertura de pruebas. Estrategias de depuración. Variación de estímulos. Predicción vs. aleatoriedad. Restricciones en la generación de pruebas. -
Aserciones y cobertura funcional
Aserciones inmediatas vs. concurrentes. Sintaxis y ejemplos de SVA (SystemVerilog Assertions). Cobertura funcional vs. cobertura de código. Verificación basada en cobertura. -
Introducción a UVM (Universal Verification Methodology)
Objetivos y estructura de UVM. Componentes de UVM. Mecanismos de fábrica, configuración y objeción. -
Bancos de pruebas y secuenciación con UVM
Fases y flujo de pruebas en UVM. Secuencias y elementos de secuencia. Creación de pruebas reutilizables. Depuración y salida de simulación. -
Desafíos específicos de verificación de procesadores
Verificación de tuberías de CPU y lógica de control. Verificación a nivel de instrucción y arquitectónica. Manejo de interrupciones, excepciones y riesgos. Pruebas de conformidad con la ISA. -
Técnicas de verificación formal
Descripción general de la verificación de modelos y la demostración de teoremas. Comprobación de equivalencia. Comprobación de modelos acotados. Casos de uso y limitaciones en el diseño de microprocesadores. -
Verificación de rendimiento y consumo de energía
Conceptos de simulación consciente de la energía. Estados funcionales vs. estados de bajo consumo. Modelado de rendimiento. -
Estrategias de depuración y cierre de cobertura
Interpretación de informes de cobertura funcional/código. Optimización de pruebas para la cobertura. Técnicas de depuración y análisis gráfica de las señales. -
Tendencias y estudios de casos reales
Últimas tendencias en verificación (RISC-V, verificación basada en ML, herramientas formales). Revisión de estudios de casos reales de verificación de CPU. -
Introducción a la validación post-silicio
Cómo se detectan y corrigen los errores en hardware real. Herramientas y metodologías.
Actividades
Actividad Acto evaluativo
Teoría
3h
Problemas
0h
Laboratorio
3.4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
Metodología docente
Los conceptos principales de la verificación pre-silicio de procesadores se introducirán en las clases de teoria. Los estudiantes completarán su experiencia de aprendizaje con las sesiones de laboratorio, donde pondrán en práctica los conceptos aprendidos en las clases.Método de evaluación
El curso tiene dos calificaciones:1) Las sesiones de laboratorio (L)
2) Presentación de un proyecto de verificación (P)
La calificación final se calculará como: 0,4 × L + 0,6 × P.
Bibliografía
Básico
-
SystemVerilog for Verification: A Guide to Learning the Testbench Language Features
- Spear, Chris ; Tumbush, Greg,
Springer Nature,
2012.
ISBN: 1-4614-0715-X
https://link-springer-com.recursos.biblioteca.upc.edu/book/10.1007/978-1-4614-0715-7 -
The UVM primer : an introduction to the Universal Verification Methodology
- Salemi, Ray,
Boston Light Press,
2013.
ISBN: 9780974164939
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991005224879506711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Capacidades previas
Conceptos de diseño de circuitos digitales.Lenguajes de descripción de hardware (HDL).
Programación y scripting.
Principios de arquitectura de computadoras.