EL LENGUAJE VHDL • El banco de pruebas (test bench) es una

Microelectrónica
ITT-Sistemas Electrónicos
EL LENGUAJE VHDL
BANCOS DE PRUEBAS
•
El banco de pruebas (test bench) es una descripción en VHDL
que se utiliza para testear el funcionamiento de los circuitos
descritos tambien en VHDL.
•
Esquema de un entorno de test
Generador de
estímulos
(Banco de pruebas)
Monitor de resultados
(cronogramas o
archivo de datos)
•
Modelo del hardware
(Código VHDL)
Generación de estímulos:
– Código VHDL no sintetizable
– Vectores de datos almacenados en vectores o tablas
– Vec
Vectores
o es de datos
d os almacenados
ce dos en
e un
u archivo
c vo
•
De momento solo se explicara el código VHDL no sintetizable
– La declaración de entidad del banco de pruebas no tiene puertos.
– En la arquitectura se declaran como señales los estímulos y
respuestas del modelo.
– Se instancia el modelo que se desea simular conectando sus
entradas a los estímulos y sus salidas a las respuestas.
– Por último
último, se definen los vectores de simulación
simulación, es decir
decir, los
valores que deben tomar los estímulos durante la simulación.
METODOLOGÍAS Y HERRAMIENTAS PARA EL DISEÑO DE SISTEMAS DIGITALES
1
Microelectrónica
ITT-Sistemas Electrónicos
EL LENGUAJE VHDL
BANCOS DE PRUEBAS
– Ejemplo de banco de pruebas:
entity test_retardo is
end test_retardo;
architecture para_test_retardo of test_retardo is
component comp1 port(a : in bit;
b : out bit);
end component;
f U0:comp1
for
U0
1 use entity
i work.inversor(rtl);
ki
( l)
signal t_s1, t_s2:bit;
begin
U0:comp1 port map (t_s1, t_s2);
t_s1<= not t_s1 after 20 ns;
end para_test_retardo;
begin
U0:comp1 port map (t_s1, t_s2);
estimulos: process
begin
t_s1<='0';
wait for 20 ns;
t s1<='1';
t_s1<='1';
wait for 20 ns;
end process;
end para_test_retardo;
begin
U0:comp1 port map (t_s1, t_s2);
process
begin
t_s1 <=‘0’ , ‘1’ after 20 ns;
wait for 40 ns;
end process;
end para_test_retardo;
para test retardo;
t_s1
0
20
40
60
80
100
t(ns)
METODOLOGÍAS Y HERRAMIENTAS PARA EL DISEÑO DE SISTEMAS DIGITALES
2
Microelectrónica
ITT-Sistemas Electrónicos
EL LENGUAJE VHDL
BANCOS DE PRUEBAS
– Ejemplo de banco de pruebas para el circuito secuencial
básico
entity test_retardo is
end test_retardo;;
architecture para_test_retardo of test_retardo is
component comp1 port(clk, d1 : in bit;
q2 : out bit);
end component;
for U0:comp1 use entity work.ejemplo(rtl);
signal a, b, z :bit;
begin
U0:comp1 port map (a,b,z);
est1: process
begin
a<=‘0’ ; wait for 5 ns;
a<=‘1’ ; wait for 5 ns;
end process;
est2: process
begin
b<=‘0’ ; wait for 2 ns;
b<=‘1’ ; wait for 18 ns;
b<=‘0’; wait for 20 ns;
end process;
end para_test_retardo;
begin
a<=‘0’
a<=
0 , ’1’
1 after 5 ns;
wait for 10 ns;
end process;
begin
U0:comp1 port map (a,b,z);
a<=‘0’ after 0 ns,
‘1’ after 5 ns,
‘0’ after 15 ns,
‘1’ after 20 ns,
‘0’ after 25 ns,
‘1’
1 after 30 ns
ns,
‘0’ after 35 ns;
b<=‘0’ after 0 ns,
‘1’ after 2 ns,
‘0’ after 20 ns;
eend
d pa
paraa_test_
test retardo;
eta do;
clk
d1
0
5
10
15
20
25
30
METODOLOGÍAS Y HERRAMIENTAS PARA EL DISEÑO DE SISTEMAS DIGITALES
3