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