Pasar al contenido principal

Verificación de Procesadores

Créditos
6
Tipos
Complementaria de especialidad (Computación de Altas Prestaciones)
Requisitos
Esta asignatura no tiene requisitos , pero tiene capacidades previas
Departamento
AC
Al completar este curso, los estudiantes serán capaces de comprender el papel crítico de la verificación pre-silicio en el diseño moderno de microprocesadores. Podrán identificar y aplicar diversas metodologías y técnicas de verificación, así como utilizar herramientas de simulación para depurar y analizar el comportamiento del diseño. A lo largo del curso, los estudiantes desarrollarán planes de verificación y crearán bancos de pruebas efectivos utilizando lenguajes de descripción de hardware y lenguajes de verificación.

Profesorado

Responsable

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
7.11

Competencias

High performance computing

  • CEE4.1 - Capacidad de analizar, evaluar y diseñar computadores y proponer nuevas técnicas de mejora en su arquitectura.
  • Genéricas

  • CG4 - Capacidad para la dirección general y técnica de proyectos de investigación, desarrollo e innovación, en empresas y centros tecnológicos, en el ámbito de la Ingeniería Informática.
  • Trabajo en equipo

  • CTR3 - Ser capaz de trabajar como miembro de un equipo, ya sea como un miembro más, o realizando tareas de dirección con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
  • Actitud frente al trabajo

  • CTR5 - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
  • Básicas

  • CB7 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios
  • CB8 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
  • Objetivos

    1. Entender e implementar un plan de verificación y un banco de pruebas, y ejecutarlo.
      Competencias relacionadas: CB7, CTR3, CEE4.1, CG4,
    2. Ser capaz de proporcionar y defender el plan de verificación y sus fases de ejecución.
      Competencias relacionadas: CB8, CTR3, CTR5,
    3. Utilizar las herramientas EDA necesarias para llevar a cabo el proyecto.
      Competencias relacionadas: CB7, CTR5,

    Contenidos

    1. 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.
    2. 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.
    3. 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).
    4. 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.
    5. 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.
    6. Introducción a UVM (Universal Verification Methodology)
      Objetivos y estructura de UVM. Componentes de UVM. Mecanismos de fábrica, configuración y objeción.
    7. 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.
    8. 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.
    9. 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.
    10. 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.
    11. 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.
    12. 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.
    13. 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


    Introducción a la verificación pre-silicio


    Objetivos: 1
    Contenidos:
    Teoría
    3h
    Problemas
    0h
    Laboratorio
    3.4h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Teoría
    8h
    Problemas
    0h
    Laboratorio
    16.9h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    28h

    Teoría
    6h
    Problemas
    0h
    Laboratorio
    3.4h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    24h

    Teoría
    6h
    Problemas
    0h
    Laboratorio
    3.3h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    24h

    Tendencias y validación post-silicio


    Objetivos: 1
    Contenidos:
    Teoría
    4h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Proyecto de verificación


    Objetivos: 1 2 3
    Semana: 13 (Fuera de horario lectivo)
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    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

    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.