En el Ejemplo 3-5 se muestra el esqueleto de un banco de pruebas. En este caso hemos incluido el generador de reloj, el generador de reset, el dispositivo que deseamos verificar y un proceso secuencial en el que realizaremos las pruebas. A diferencia de ejemplos anteriores definimos el período de reloj a partir de la frecuencia de reloj expresada en MHz.
Ejemplo 3-5. Esqueleto de un testbench
library IEEE; use IEEE.std_logic_1164.all; entity Esqueleto is end entity Esqueleto; architecture Ejemplo of Esqueleto is constant FREQ_CLK : integer:=50; -- Frecuencia del reloj en MHz constant PERI_CLK : time:=1 us/FREQ_CLK; signal clk : std_logic; signal detener : boolean:=false; signal rst : std_logic; begin gen_reloj: process begin clk <= '1', '0' after PERI_CLK/2; wait for PERI_CLK; if detener then wait; end if; end process gen_reloj; rst <= '1', '0' after PERI_CLK*3/2; DUT : ComponenteAProbar generic map() port map(); probar: process begin -- Prueba secuencial de nuestro dispositivo ... -- Fin de las pruebas detener <= true; wait; end process probar; end architecture Ejemplo; -- Entity: Esqueleto