Download Validación y Verificación (1) Bibliografía
Document related concepts
no text concepts found
Transcript
E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Validación y Verificación (1) 9Definir conceptos de verificación y validación 9Importancia de la verificación 9Conceptos básicos en verificación Diseño de sistemas en chip (SoC), 4º - Roberto Sarmiento ETSIT Bibliografía Janick Bergeron, Writing Tesbenches: Functional Verification of HDL Models. Kluwer Academic Publishers, segunda edición, 2003. ISBN: 1-4020-7401-8 – Capítulo 1: ¿Qué es verificación? – Capítulo 3: El plan de verificación Rochit Rajsuman, System-on-a-Chip: Design and Test. Artech House, Boston (2000). ISBN:1580531075 – Capitulo 4: Validación del diseño Otros libros – Paul Wilcox, Professional Verification: A Guide to Advanced Functional Verification. Kluwer Academic Publisher, 2004. ISBN: 1-4020-7875-7 – Prakash Rashinhar, Peter Paterson y Leena Singh, System-on-a-chip Verification. Methodology and Techniques. Kluwer Academic Publisher, 2001. ISBN: 1-7923-7279-4 Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 1 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Conceptos de Verificación y Validación Validación: Compara un producto o un subproducto con sus propiedades extrínsecas (ejemplos, ¿Se cubren las necesidades de los clientes? ¿El producto hace lo que se pretende que haga?). Verificación: compara las propiedades intrínsecas de un producto con una especificación de alto nivel, un estándar, un proceso, un procedimiento, un requerimiento, etc. Como recordatorio de la diferencia V&V: • Validación: ¿estoy haciendo el producto correcto? • Verificación: ¿estoy haciendo el producto correctamente? Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Validación El propósito de la validación es demostrar que un producto o un componente del producto satisfacen todos los requisitos necesarios para su aplicación cuando se utiliza en el entorno previsto. operación, entrenamiento, fabricación, mantenimiento, y servicios de soporte. Validación: Validación Hardware Validación Software Validación de la operación del sistema combinado Funcional & temporal Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 2 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación El propósito de la Verificación es asegurar que el producto seleccionado para una tarea cumple todos los requisitos que se han especificado para esa tarea La verificación es un proceso incremental porque tiene lugar en todo el proceso de desarrollo de un producto, empezando por la verificación de los requisitos, siguiendo a través de la verificación de las fases del diseño del producto y culminando con la verificación del producto terminado La verificación puede ser de dos tipos: – Verificación de las especificaciones – Verificación de la implementación Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ¿Qué es verificación del diseño? Para asegurar que el diseño sea correcto (Encontrar tantos errores como sea posible) Design Flow Functional Specification Design Creation RTL Design Implementation Gate Gate Physical Implementation GDSII Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 3 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) ¿Dónde están los errores? Especificación funcional – Lenguaje natural (español-ingés)/Algoritmos Æ Diagramas de tiempos, descripciones a nivel de sistema o comportamiento Realización del diseño – Diseño inconsistente con las especificaciones – Errores en la codificación RTL (error tipográfico, error lógico) – Asumir el entorno de trabajo Implementación del diseño físico – Herramientas de síntesis – Optimizaciones manuales Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento What is Design Verification? Para asegurar que el diseño sea correcto (Encontrar tantos errores como sea posible) Design Flow Functional Specification Design Creation RTL Design Implementation Gate Gate Physical Implementation GDSII Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 4 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) ¿Qué tipo de verificación se usa a cada nivel? Verificación de la arquitectura Verificación de la implementación Custom performance modeling, Algorithm models (MatLab), Formal Model Checking – Circuit-level Spice, Fast Spice, Symbolic simulation, Formal Equivalency – Gate/Structure Logic Simulation, Formal Equivalency, HW Emulation – Timing Static Timing Analysis – RTL Logic Simulation, Formal Model Checking, HW Emulation Verificación del proceso de fabricación – At-speed Logic Simulation – Manufacturing defects ATPG, BIST Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación de la implementación Verificación del sistema: – ¿El sistema funciona? – Run application: comprobar resultado final Verificación de módulos: – ¿Funciona la comunicación entre bloques? – Comprobar la sincronización, latencia … Verificación de bloques: – ¿Comprobar que unos estímulos de entrada generan los resultados correctos? – Comprobar la funcionalidad de los bloques y corner cases. Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 5 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación: bancos de prueba Se realiza a través de los bancos de prueba (tesbench) : – Código creado para determinar la entrada (secuencia) a un diseño y comprobar su salida – Se puede realizar en VHDL, Verilog, C, C++, etc. Testbench DUV Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación: bancos de prueba Los bancos de prueba se pueden realizar para verificar: 1. Transacciones. Para comprobar buses y circuitos de interfaz. Incluye un generador de transiciones válidas (control y datos) y un analizador de resultados 2. Instrucciones. Para arquitecturas tipo ISA. Requiere modelos ISA y verificar todas las instrucciones 3. Random testing. Para encontrar errores muy atípicos. 4. Regression testbenches. Para encontrar errores específicos. Es incremental y debe ejecutarse en cada cambio del diseño. 5. Code coverage. Para comprobar funciones omitidas, el retorno en un salto, etc. Lo hacen automáticamente las herramientas. 6. Comportamiento funcional. Verifica la función para una aplicación concreta. Debido a tiempo de computo está limitado en el número de ciclos Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 6 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Principales problemas en el diseño Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ¿Dónde están los errores? Errores de diseño 82 Espec. Incorrectas/incompletas 47 Cambios en las espec. 32 Mal uso de IP anteriores 16 IP incorrecto/incompleto 10 Otros 4 0 10 20 30 40 50 60 70 80 90 Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 7 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) ¿Dónde están los errores? Causas concretas para rediseño Costes de las máscaras 60% de los diseños no funcionan la primera vez: necesitan uno o más rediseños Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Complejidad de la verificación Para un circuito con 100 registros (un diseño pequeño) Número total de estados = 2100 = 1030 = 1024M Requiere (en peor de los casos) al menos 1024M ciclos para probar todas las posibles situaciones Por tanto las simulaciones pueden únicamente cubrir una parte pequeña de todos los casos La complejidad de la verificación crece en función de múltiplos de la Ley de Moore – 10X para los ASICs – 100X para los sistemas basados en ASIC y para los SOCs que incluyen software empotrado Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 8 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Complejidad de la verificación Complejidad de la verificación ƒ( complejidad de la arquitectura, cantidad de reutilización, frecuencia de reloj, tiempo de peor caso de ejecución del software, experiencia de los ingenieros) 2002 10B Ciclos de verificación 100M 1M 1996 1990 Número de puertas efectivo 100K 1M 10M Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Importancia de la verificación La verificación constituye el 70% del esfuerzo de diseño Design Complexity Time to Market Nº de ingenieros de verificación = 2 x Nº de ingenieros de diseño Código de los bancos de prueba = 80% de todo el código generado Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 9 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Coste de encontrar errores (bugs) System Time to fix a bug Module Block Design integration stage RESPIN •Chip NREs increasing making respins an unaffordable proposition •Average ASIC NRE ~$122,000 •SOC NREs range from $300,000 to $1,000,000 Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Experiencia típica de verificación Functional Purgatory Tapeout Bugs per week testing Weeks Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 10 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) ¿Hay problemas? ¿Qué problemas? “My biggest problem about design verification is that the time is never enough. I can only do my best to run more simulation, but I don’t know whether it is sufficient.” --- Broadcom designer (similar comments from many others) “It is very hard to write the testbenches and assertions for the design, since I am not a designer. Ask the designer to do it more? No way!!” --- Sun Microsystems verification engineer (similar comments from many others) Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ¿Cuál es realmente el problema? Gap entre diseñadores e ingenieros de verificación – (para diseñadores) Pensé que había corregido todos los errores … – (para ingeniero de verificación) Busco formas de entender el diseño mejor Las metodologías de verificación no son óptimas – Siempre se necesita aprender más sobre nuevas alternativas Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 11 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación: modelo de reconvergencia Representación conceptual del proceso de verificación El proceso de verificación consiste en asegurar que el resultado de una transformación es como se pretende o se espera HW Design Netlist Specification Verification Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación: el factor humano RTL Coding Specification Document Interpretación Netlist Verification La intervención humana genera incertidumbre Para reducir los errores hay que usar Automatización Definir los procesos con transformaciones estándar Introducir redundancia. Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 12 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación: el factor humano Introducir redundancia conlleva más recursos humanos y por tanto más NRE RTL Coding Specification Interpre n ió c ta Interpretación Netlist Verification Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación: ¿Qué se verifica? Dependiendo del origen y el punto de reconvergencia se estarán verificando diferentes cosas. Con frecuencia esto viene determinado por la herramienta usada: Verificación funcional. Tiene como propósito fundamental asegurar que el diseño implementa correctamente la funcionalidad Verificación formal. Forma analítica de determinar que las transformaciones realizadas son correctas Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 13 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación formal Verificación formal. Forma analítica de determinar que las transformaciones realizadas son correctas No elimina la necesidad de testbench La verificación formal puede dividirse en dos categorías: Comprobación de equivalencia (equivalence checking) Comprobación de modelo (model checking) Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación formal: equivalence checking La equivalence checking prueba que la entrada y la salida de un proceso es lógicamente equivalente y que la transformación realizada preserva su funcionalidad Síntesis RTL o netlist RTL o netlist Equivalence Checking Ejemplos: proceso de síntesis, introducción de scan, síntesis del árbol de reloj, etc. Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 14 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación formal: model checking Model checking. Busca violaciones de las reglas introducidas por el usuario sobre el comportamiento del sistema. RTL coding Especificaciones RTL Model Checking Interp. Assertions Es necesario determinar que assertions deben ser introducidas para comprobar cierta parte de la funcionalidad del sistema Útil para encontrar “patologías” que no se tuvieron en cuenta en las especificaciones Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación funcional La verificación funcional compara la implementación de un diseño con sus especificaciones RTL coding RTL Especificaciones Verificación funcional Se realiza a través de la generación de bancos de prueba Cuestiones importantes (para toda verificación): – Code coverage – Metrics Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 15 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación funcional: enfoques blackbox – = 9 – Es un blacbox testcase escrito con total conocimiento de los detalles internos. Se ejecutan casos particulares a la implemntación específica 9 DUT Total visibilidad y observabilidad (monitors/assertions) graybox Yes/No Reference model whitebox – Se realiza sin conocimiento de la implementación a través de un modelo de alto nivel. Es independiente del diseño DUT 9 9 9 DUT = Yes/No Reference model Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación funcional: enfoques Blackbox: propiedades – – Whitebox: propiedades – – early debugging Difícil de reutilizar y de manejar whitebox o blackbox por si solos son inadecuados – – – Sobre-esfuerzo de verificación reducido Tiempo de debugging largo Whitebox puro no sirve para encontrar errores en el sistema Blackbox puro no sirve para encontrar errores de estado Ninguno resuelve el problema de forma separada Graybox es el modelo más adecuado Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 16 E.T.S. de Ingenieros de Telecomunicación Diseño de Sistemas en Chip (SoC) Verificación vs. Test HW Design Manufacturing Specification Netlist Verification Silicon Testing Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento Verificación vs. Test Design Specification Design Creation High-level spec RTL design Design Implementation Synthesis/P&R Verification • Object Æ design • Methodologies ¾ Simulation ¾ Emulation ¾ Formal techniques Chip Manufacture ICs Testing • Object Æ chip • Methodologies ¾ ATPG ¾ Fault Simulation ¾ Scan / BIST Diseño de Sistemas en Chip (SoC), 5º - Roberto Sarmiento ®«Roberto Sarmiento Rodríguez» 17