Test Bench
Test Bench
Test Bench
(TESTBENCHES)
Bancos de prueba con VHDL
DUT MONITOR
ESTIMULOS
Sentencia For-Loop
Array
Utilización de archivos
A
C
B
sel
Se debe incluir la
entity mux_tb is declaración del
componente a
end; Declaración de las
probar señales de prueba
architecture beh of mx_tb is
Instanciación del
-- declaración del componente a probar
componente a
signal mux_in0, mux_in1, mux_out: std_logic_vector(1 downto 0);probar
signal sel: std_logic;
begin
pp: mux port map(mux_in0, mux_in1, sel, mux_out);
estimulo: process
Process utilizado
begin
para el armado de
sel <= ‘0’; las señales de
mux_in0 <= “00”; mux_in1 <= “10”; wait for 30 ns; prueba
mux_in0 <= “01”; mux_in1 <= “11”; wait for 30 ns;
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;
assert condition
[ report expression ] [ severity expression ];
assert NumeroBytes /= 0
report “Se recibió paquete sin datos”
severity warning;
DUT
Archivo
Comp Decisión
de texto
Retardo
Testbench
8y3 11
8 3 11 Sumador
2 5 7
… Comp Decisión
…
… Retardo
11 11
Testbench
a_file
b_file z_dut
DUT
Archivo
Comp Decisión
de texto
Retardo
z_del
z_file
Testbench
a_file 8 2 1
b_file 3 5 2
z_file 11 7 3
z_dut 11 7 3
z_del 11 7 3
1 2 3 Delay
en en en en
z_file D Q D Q D Q D Q z_del
rst rst rst rst
1 2 3 Delay
en en en en
z_file D Q D Q D Q D Q z_del
rst rst rst rst
aux(0) <= A;
gen_retardo: for i in 0 to DELAY generate
sin_retardo: if i = 0 generate
aux(1) <= aux(0);
end generate;
con_retardo: if i > 0 generate
aa: ffd port map(clk => clk, rst => '0', D => aux(i), Q => aux(i+1));
end generate;
end generate;
B <= aux(DELAY+1);
FIN