BANCOS DE PRUEBAS CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.

Slides:



Advertisements
Presentaciones similares
Lenguajes de Descripción de Hardware
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Métodos de diseño en VHDL.
SENTENCIAS SECUENCIALES
Manejo de errores y excepciones
Circuitos Digitales II
Introducción al VHDL VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables.
Seminario de Actualización - Excel Avanzado y Macros
Seminario de Lenguajes A – Opción Ada Seminario de Lenguajes A – Opción Ada – Raúl Champredonde1 Tipos definidos por el usuario –Parámetros array ilimitados.
PL/SQL Francisco Moreno Universidad Nacional.
Circuitos Digitales II TestBench, Generics, Generate y Más sobre Procesos Semana No.4 Semestre Prof. Gustavo Patiño Prof. Eugenio.
Teoría de lenguajes y compiladores
1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones  IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO 
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Universidad de Tarapacá Fundamentos Lenguaje y Programación Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales.
VHDL.
Interfaces de entrada / salida
Interfases de Entrada / Salida
GESTION DE LA JERARQUIA
Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica Abril 2013 Sistemas Digitales Electrónica Digital I Diseño Combinacional.
ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
Capítulo.2 - Fundamentos del Lenguaje VHDL
PL/SQL Francisco Moreno Universidad Nacional.
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
Conversión cadena a número
VHDL Breve introducción.
Others, soporte para síntesis. Los agregados tienen la habilidad de usar la sentencia others, la cual asignará un valor a todos los otros elementos de.
Diseño lógico combinacional mediante VHDL
Programación I Arreglos II- Matrices.
Archivos Los archivos son estructuras de datos que residen en el sistema. Son persistentes: su información no se pierde al terminar un programa o sesión.
Introducción Electrónica Digital
 La estructura donde se guardan los datos de los programas se llama archivo (file)  Un file consiste en varias líneas de datos relacionados que forman.
Introducción a las Interfaces de entrada / salida.
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Laboratorio Informática II Clase 5 Excel Controles Active X.
Diseño Lógico Combinacional con VHDL
VHDL El nombre proviene de VHSIC Hardware Description Language, donde VHSIC significa Very High Speed Integrated Circuits. Es un lenguaje formal de especificación.
Administración de Servicios de Red 1 Escuela de Informática y Telecomunicaciones Suplementos: Shell scripts rpm RHA 030 Sistemas Operativos de Red.
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Integración de entidades en VHDL
Librerías y packages (paquetes)
CLASE 5.
Capítulo.3 - Diseño Lógico Combinacional con VHDL
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Operación del Hardware en el manejo de aplicaciones de cómputo
DIPLOMADO EN SISTEMAS DIGITALES USO DE LOS PERIFERICOS DEL SISTEMA DE DESARROLLO SPARTAN 3E Instructor: MC. Rodrigo Lucio Maya Ramírez.
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García.
LA ARQUITECTURA O LA FUNCIONALIDAD DEL SISTEMA DefiniciónDefiniciónDefinición Declaración y reglas sintácticas.Declaración y reglas sintácticas.Declaración.
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
Alumno: Gerardo Mario Valdés Ortega
Diseño jerárquico con VHDL
Diseño Lógico 2 Metodología de Diseño
Algorítmica y Programación
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
VHDL. Indice Sistemas Digitales - FIUBA VHDL Lenguajes descriptores de hardware VHDL - Introducción - Entidad de diseño (declaración de entidad y cuerpo.
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
BANCOS DE PRUEBA CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Asignación de señales en VHDL. VHDL: Asignación de señales La asignación a una señal establece una o más transacciones sobre la misma Cada señal tiene.
U.M.S.A. ETN-601 Sistemas Digitales Decodificador 3 a 8 Aux. David Marza Herrera.
VHDL. Indice Sistemas Digitales - FIUBA VHDL Lenguajes descriptores de hardware VHDL - Introducción - Entidad de diseño (declaración de entidad y cuerpo.
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
Pablo Huerta Pellitero
Hardware Description Language
Programación en VHDL.
ispLSI1032E- Estructura Disseny Electrònic Assistit per Ordinador
(Numerically Controlled Oscillator)
Transcripción de la presentación:

BANCOS DE PRUEBAS CON VHDL (TESTBENCHES)

Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT MONITOR ESTIMULOS Bancos de prueba con VHDL

Sistemas Digitales - FIUBA Bancos de prueba  Lograr un Testbench de calidad es imprescindible para la verificación de los diseños  No están regidos por las normas que se aplican en la síntesis de circuitos  Se utiliza un generador de señales de prueba y se analiza la respuesta del circuito mediante simulación  No eliminan por completo la necesidad de probar el circuito una vez sintetizado Bancos de prueba con VHDL

Formas de aplicar un estímulo Sistemas Digitales - FIUBA Bancos de prueba  Aplicación explícita del estímulo utilizando process  Sentencia For-Loop  Array  Utilización de archivos Bancos de prueba con VHDL

Aplicación explícita del estímulo utilizando process Sistemas Digitales - FIUBA Bancos de prueba Bancos de prueba con VHDL A B C sel Componente a probar (DUT)

Aplicación explícita del estímulo utilizando process Sistemas Digitales - FIUBA Bancos de prueba entity mux_tb is end; architecture beh of mx_tb is -- declaración del componente a probar signal mux_in0, mux_in1, mux_out: std_logic_vector(1 downto 0); signal sel: std_logic; begin pp: mux port map(mux_in0, mux_in1, sel, mux_out); estimulo: process begin sel <= ‘0’; mux_in0 <= “00”; mux_in1 <= “10”; wait for 30 ns; mux_in0 <= “01”; mux_in1 <= “11”; wait for 30 ns; sel <= ‘1’; mux_in0 <= “00”; mux_in1 <= “10”; wait for 30 ns; mux_in0 <= “01”; mux_in1 <= “11”; wait for 30 ns; wait; end process; end; Bancos de prueba con VHDL Se debe incluir la declaración del componente a probar Declaración de las señales de prueba Instanciación del componente a probar Process utilizado para el armado de las señales de prueba

Aplicación explícita del estímulo utilizando process Sistemas Digitales - FIUBA Bancos de prueba Bancos de prueba con VHDL Selector en ‘0’: se selecciona la entrada mux_in0 Selector en ‘1’: se selecciona la entrada mux_in1

Aplicación explícita del estímulo utilizando For-Loop Sistemas Digitales - FIUBA Bancos de prueba entity mux_tb is end; architecture beh of mx_tb is -- declaración del componente a probar constant N_test: natural:= 4; signal mux_in0, mux_in1, mux_out: std_logic_vector(N_test-1 downto 0); signal sel: std_logic; begin pp: mux generic map(N_test) port map(mux_in0, mux_in1, sel, mux_out); estimulo: process begin for i in 0 to 7 loop sel <= '0'; mux_in1 <= conv_std_logic_vector(i, 4); mux_in0 <= conv_std_logic_vector(i+8, 4); wait for 30 ns; end loop; for i in 0 to 7 loop sel <= '1'; mux_in1 <= conv_std_logic_vector(i, 4); mux_in0 <= conv_std_logic_vector(i+8, 4); wait for 30 ns; end loop; wait; end process; end; Bancos de prueba con VHDL Se debe incluir la librería std_logic_arith

Aplicación explícita del estímulo utilizando For-Loop Sistemas Digitales - FIUBA Bancos de prueba Bancos de prueba con VHDL Selector en ‘0’: se selecciona la entrada mux_in0 Selector en ‘1’: se selecciona la entrada mux_in1

Aplicación explícita del estímulo utilizando Arrays Sistemas Digitales - FIUBA Bancos de prueba entity mux_tb is end; architecture beh of mx_tb is -- declaración del componente a probar constant N_test: natural:= 4; signal mux_in0, mux_in1, mux_out: std_logic_vector(N_test-1 downto 0); signal sel: std_logic; begin pp: mux generic map(N_test) port map(mux_in0, mux_in1, sel, mux_out); estimulo: process type vect_sim is array(0 to 7) of std_logic_vector(N_test-1 downto 0); variable vect_sim1: vect_sim:= ("0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111"); variable vect_sim0: vect_sim:= ("1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"); begin for i in 0 to 7 loop sel <= '0'; mux_in0 <= vect_sim0(i); mux_in1 <= vect_sim1(i); wait for 30 ns; end loop; for i in 0 to 7 loop sel <= '1'; mux_in0 <= vect_sim0(i); mux_in1 <= vect_sim1(i); wait for 30 ns; end loop; wait; end process; end; Bancos de prueba con VHDL

Aplicación explícita del estímulo utilizando un Archivo Sistemas Digitales - FIUBA Bancos de prueba Bancos de prueba con VHDL  VHDL provee un tipo de datos llamado file que permite el manejo de archivos tanto de entrada como de salida  Los archivos pueden abrirse de tres maneras: read_mode para lectura, write_mode para escritura y append_mode para agregar datos al final de un archivo existente  Pueden declararse en la parte declarativa de una arquitectura, un proceso o un subprograma

Aplicación explícita del estímulo utilizando un Archivo Sistemas Digitales - FIUBA Bancos de prueba entity mux_tb is end; architecture beh of mx_tb is -- declaración del componente a probar -- declaración de constantes y señales IDEM ejemplo anterior begin pp: mux generic map(N_test) port map(mux_in0, mux_in1, sel, mux_out); estimulo: process variable sel_aux: std_logic_vector(0 downto 0); file arch_stim: text open READ_MODE is "datos_simulacion.txt"; variable linea: line; variable dato1, dato2, dato3: integer; variable ch: character:= ' '; begin while not (endfile(arch_stim)) loop readline(arch_stim, linea); read(linea, dato1); read(linea, ch); read(linea, dato2); read(linea, ch); read(linea, dato3); sel_aux := std_logic_vector(to_unsigned(dato1, 1)); sel <= sel_aux(0); mux_in0 <= std_logic_vector(to_unsigned(dato2, N_test)); mux_in1 <= std_logic_vector(to_unsigned(dato3, N_test)); wait for 30 ns; end loop; wait; end process; end; Bancos de prueba con VHDL datos_simulacion.txt Se debe incluir la librería std.textio

Instrucciones Assert y Report Sistemas Digitales - FIUBA Bancos de prueba Bancos de prueba con VHDL  Instrucciones que se utilizan para verificar una condición y emitir un mensaje durante la simulación  Pueden usarse en cualquier parte de un process assert condition [ report expression ] [ severity expression ]; [ label : ] report expression [ severity expression ] ;

Instrucciones Assert y Report: Ejemplos Sistemas Digitales - FIUBA Bancos de prueba Bancos de prueba con VHDL assert MemoriaLibre >= MEM_LIMITE_MINIMO report “Memoria baja, se sobrescribirán primeros valores” severity note; assert NumeroBytes = 0 report “Se recibió paquete sin datos” severity warning; assert AnchoDePulso >= 2 ns report “Pulso demasiado chico. No generará interrupción.” severity error; report “Inicio de simulación.”