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

Documentos relacionados
SISTEMAS DE DETECCIÓN DE INTRUSOS EN LA PLATAFORMA NETFPGA USANDO RECONOCIMIENTO DE EXPRESIONES REGULARES.

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL

IEE 2712 Sistemas Digitales

DATOS DE IDENTIFICACIÓN DEL CURSO DEPARTAMENTO:

Laboratorio de Diseño de Sistemas Digitales

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

TEMA 7: INGENIERIA DEL SOFTWARE.

Modelo de los reactores de la tecnología HDHPLUS como componentes de simulación interoperables

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE

Anexo 10. Pruebas verificadas

Uso de herramientas informáticas (Netbook en el aula)

Test de software embebido. Sistemas embebidos para tiempo real

Unidad Didáctica 1: Introducción y conceptos básicos (test de software embebido) Sistemas embebidos para tiempo real

Manual de turbo pascal

Breve introducción a la Investigación de Operaciones

PROGRAMACION ORIENTADA A OBJETOS EN C++

Soluciones de Conectividad Wi Fi de bajo consumo Microchip ZeroG Wireless...

Síntesis arquitectónica y de alto nivel

Para qué se creó? El objetivo del estándar es proporcionar un conjunto estandarizado de documentos para la documentación de pruebas de software.

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. Introducción. Fabricantes. Elevada complejidad. Facilitar tareas de diseño

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

El ordenador. Codificación binaria. Código ASCII

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica)

Creación y Mantenimiento de Componentes Software en Sistemas de Planificación de Recursos Empresariales y de Gestión de...

Prueba del Driver ModBus

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

Técnicas Avanzadas de Testing Automático

Instituto Schneider Electric de Formación

se requiere proyectar una etapa amplificadora tal que satisfaga el esquema y datos que se transcriben a continuación:

1Guía de configuración de redes inalámbricas

Laboratorio de Dispositivos Integrados Especializados / Diseño de Circuitos y Sistemas Electrónicos

Nombre de la asignatura: Arquitectura de Computadoras. Créditos: Aportación al perfil

PROGRAMA DE ESTUDIO. Nombre de la asignatura: MICROPROCESADORES Y MICROCONTROLADORES. Horas de Práctica

Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

CAPITULO IV FAMILIAS LÓGICAS

VHDL. Lenguaje de descripción hardware Introducción e historia

La duración del curso es de cinco (5) días, ocho horas diarias, 60% de terrosa y 40% de ejemplos prácticos.

Agenda..NET C# Laboratorio #1

Complementos de Telemática II

Guía del Curso Técnico en Mantenimiento de CRM: Recursos Empresariales y de Gestión de Relaciones con Clientes

Capítulo III: MARCO METODOLÓGICO

Arquitectura de Computadores. Práctica 1: Diseño Hardware de Procesadores. Práctica 1/1

CONVERSOR USB A RS485

Carrera: ACM Participantes. Academia Eléctrica y Electrónica del Instituto Tecnológico Superior de Coatzacoalcos

Tema II: Metodología para la construcción de programas

Introducción a C++ y Code::Blocks

Circuito de refresco de un Display

PROCESOS SOFTWARE. Según esta estrategia, todo proceso debe planificarse, implantarse y evaluarse, para luego actuar sobre él.

BLOQUE I: HOJA DE CÁLCULO

Requerimientos de Software

CAPÍTULO 2: DISEÑO GLOBAL DEL PROYECTO

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

1-Componentes Físicos y Lógicos de un Ordenador.

Sistemas Digitales I Taller No 2: Diseño de Circuitos combinacionales usando VHDL

Fuentes de corriente

M. C. Felipe Santiago Espinosa

Técnicas de validación y experimentación

XVI. utilizarlos de la forma más eficiente posible en el diseño de sistemas digitales.

Proyecto de Diseño 2

Programa de Programación Páginas web JavaScript y ASP.NET (Visual Basic)

FORMACIÓN EN BUENAS PRÁCTICAS DE PROGRAMACIÓN CON PERSONAL SOFTWARE PROCESS (PSP)

Plan 95 Adecuado. DEPARTAMENTO: ELECTRÓNICA CLASE: Electiva de Especialidad. ÁREA: ELECTRÓNICA HORAS SEM.: 4 HS. HORAS / AÑO: 64 HS.

SISTEMA DE VENTAS Y COMPRA DE TIENDA DE VESTIR SIVECO VISION. Versión 1.0 MANUEL PABLO GUERRA MARTÍNEZ.

Tema 3.1: Introducción a Servicios Web

FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES).

Los 10 pasos. para el aseguramiento de la calidad en uniones atornilladas. Equipos y sistemas de medición SCHATZ Advanced Quality

PASOS PARA OPTIMIZAR SU CENTRAL DE MONITOREO

Laboratorio 5: Tarjeta de Desarrollo Spartan-3

Unidad I: Organización del Computador. Ing. Marglorie Colina

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Conversión de Calderas para Operar con Gas Natural

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

Diagramas De Casos De Uso

DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO DIDÁCTICO PARA LA MEDICIÓN DEL RITMO CARDÍACO MEDIANTE LA TÉCNICA DE PULSIOMETRÍA

TARJETA DE INTERFAZ PCI DE PUERTO PARALELO

Introducción a FPGAs. Contenido

BC #299 Integración con LaPos Contenido Alcance... 2 Implementación... 3 Carga inicial... 4 Uso... 5 Preguntas frecuentes... 6

LENGUAJE PHP Y CAKEPHP FRAMEWORK

ESTÁNDAR DIAGRAMA DE SECUENCIA

Medida y Verificación de Ahorros Energéticos Valencia, 21 de Junio 2012

Diseño de Hardware con VHDL

Sistemas Combinacionales y Sistemas Secuenciales

Existen diferentes recursos interactivos que han sido utilizados para la enseñanza

Si salgo temprano hoy, me voy al cine.

Utilización de las instrucciones concurrentes CSA, SSA, componentdeclaration y component-instantiation aprendidas en clase.

Fundamentos de Ingeniería de Software [Etapas II]

Diagramas de secuencia

Instituto Tecnológico de Celaya

CURSOS DE CAPACITACION SAP2000 ANALISIS Y DISEÑO INTEGRAL DE ESTRUCTURAS

SERVICIO DE ATENCION A CLIENTES

La plataforma Arduino y su programación en entornos gráficos

Capítulo 4. Lógica matemática. Continuar

Diseño de contenidos

Contrastes de hipótesis. 1: Ideas generales

Diseño y Desarrollo Web. Espinola Raul 2008 basado en una Presentación de G. Gaona.

Transcripción:

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

System Verilog System Verilog Assertion-Based Verification OVM / UVM

Que es System Verilog?

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

Por que System Verilog?

Por que System Verilog? Constrained Randomization Easy c model integration OOP support Assertions System Verilog New data types ie,logic Coverage support Narrow gap b/w design & verification engineer

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

System Verilog Assertion Based Verification (ABV)

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.

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

System Verilog: Ejemplos Ejemplo1: Queremos saber cuantas veces es violada la condición de que el valor A sea igual al valor de B. 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)};

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

System Verilog: CC / FC Definición: La coberturadecó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 coberturafuncional (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?

OVM: Open Verification Methodology

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)

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

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.

Gracias