diseño y verificación de sistemas complejos con fpga-v2 · diseño y verificación de sistemas...

18
Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: System Verilog, ABV Y OVM/UVM Germán B. Berterreix

Upload: hoangmien

Post on 01-Dec-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

Diseño y verificación de sistemas complejos con FPGA

Conceptos básicos:

System Verilog, ABV Y OVM/UVM

Germán B. Berterreix

Page 2: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog

�System Verilog

�Assertion-Based Verification

�OVM / UVM

Page 3: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

Que es System Verilog ?

Page 4: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

Que es System Verilog ?

� System Verilog es un lenguaje de descripción de

hardware y verificación.

� Posee características heredadas de Verilog HDL,

VHDL, C y C++

� Añade funciones ampliadas para Verilog

� System Verilog es un súper conjunto de Verilog

� Es compatible con todas las característica de Verilog

Page 5: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

Por que System Verilog ?

Page 6: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

Por que System Verilog?

System VerilogAssertions

OOP support

Constrained Randomization

New data types ie,logic

Coverage support

Easy c model integration

Narrow gap b/w design & verification engineer

Page 7: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog: Algunas características

� Diseño a nivel de modulo

� Simulación a nivel de compuertas

� Verificación a nivel de sistema

� El tipo de datos es de dos estados – 0, 1

� Las memorias son dinámicas por naturaleza

� Mejor manejo de memoria

� Menor código RTL y de verificación, por lo tanto menor

numero de bugs

� Mayor nivel de abstracción

Page 8: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog Assertion Based Verification(ABV)

Page 9: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog: ABV

Aserciones – Que son?

� Una aserción es una expresión que, si es falsa, indica un error� Es usada para debugging atrapando los errores “can't happen” (Es decir

los errores que no pueden ocurrir) � Una sentencia condicional que comprueba un comportamiento especifico

y muestra un mensaje si este ocurre � Generalmente son utilizadas como “monitores” para buscar malos

comportamientos� También utilizados para alertar sobre ciertos comportamientos en

especial� Para nuestro propósito:

� Una aserción es una descripción concisa de un comportamiento deseado o no deseado.

Page 10: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog: ABV

Assertions-Based Verification

� Las soluciones utilizando Assertion-based verification (ABV) han estado ganando popularidad� Las aserciones son declaraciones de suposiciones del diseñador o

intención del diseño� Las aserciones deben ser inherentemente reutilizables

� Esto, NO REEMPLAZA, los test de simulación tradicionales� Tanto la observabilidad como la controlabilidad del diseño pueden ser

mejoradas� Las aserciones permiten la verificación formal

Page 11: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

Ejemplo1:

Queremos saber cuantas veces es violada la condición de que el valor “A” sea

igual al valor de “B”.

System Verilog: Ejemplos

Igual: assert always (A == B) $display(“OK, A es igual a B”);

else $error(“Algo está mal”);

Ejemplo2:Verificar que los valores de memoria no permanecen fijos durante toda la

simulación

no_change_addr : cover {addr /= prev(addr)};

Page 12: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog Cobertura de codigo / Cobertura funcional (Code Coverage (CC) /

Functional Coverage (FC))

Page 13: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog: CC / FC

Definición:

La cobertura de código (CC) es una

medida (porcentual) en las pruebas de

software que mide el grado en que el

código fuente de un programa ha sido

testeado. Sirve para determinar:

• La calidad del test que se lleva a cabo

• Las partes criticas del código que no

han sido testeadas y las que si han

sido testeadas

Tipos de cobertura:

• Líneas / Ramas

• Funciones

• Condiciones

La cobertura funcional (FC) por su parte,

percibe el diseño de un usuario o de un punto

de vista del sistema.

Algunas preguntas típicas:

• Se ha cubierto la totalidad de los escenarios

típicos?

• Se han cubierto los casos de error?

• Se han cubierto los “corner cases”?

• Se han cubierto los protocolos?

Pero existen 2 preguntas mágicas que todo

equipo de diseño deben hacerse y responderse:

• Mi chip funciona correctamente?

• He terminado de verificar el chip?

Page 14: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

OVM: Open Verification Methodology

Page 15: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog: OVM

Definición:

OVM (Open Verification Methodology) es una metodología para la

verificación funcional que utiliza SystemVerilog y sus librerias, y

principalmente utilizando la simulación

OVM fue creado por Cadence y Mentor Graphics, basado en la

metodología de verificación existentes en ambas compañías.

Los conceptos de reutilización utilizados en OVM se derivan

principalmente de URM (Universal Reuse Methodology)

Page 16: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

OVM

Como podemos observar al utilizar OVM, tenemos dos áreas bien definidas, OVM TEST y OVM ENV.

De esta forma vemos que el DUT o DUV es una instancia mas dentro de la utilización de OVM.

• Agent• Sequencer• Driver• Monitor

Page 17: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

System Verilog: UVM

UVM (Universal Verification Methology) es una metodología estandarizada para la verificación de diseños de circuitos integrados. UVM se deriva principalmente de OVM.

La biblioteca de clases UVM trae mucha automatización para el idioma SystemVerilog. y al contrario que las anteriores metodologías desarrolladas independientemente por los vendedores de simuladores, es un estándar Accellera con el apoyo de varios proveedores: Aldec, Cadence, Mentor y Synopsys.

Page 18: Diseño y verificación de sistemas complejos con FPGA-V2 · Diseño y verificación de sistemas complejos con FPGA Conceptos básicos: SystemVerilog, ABV Y OVM/UVM Germán B. Berterreix

Gracias