Este es un patrón de banco que hará lo que quieras.
El procedimiento no es necesario, solo hay una ilustración.
Puede completar el cuerpo del procedimiento, el código y la lista de señales según sea necesario.
Tendrá que cambiar do_test1 para que coincida con el borde del reloj que desea examinar.
Si está usando VHDL2008, puede usar la sintaxis de acceso a la señal del submódulo 'Nombres externos' para hacer que la prueba se ejecute en algún reloj oculto, como se muestra en el ejemplo.
library IEEE;
use IEEE.std_logic_1164.all;
package tests is
procedure other_tests(sigs : types....);
end package;
package body tests is
procedure other_tests(sigs : types....) is
begin
end procedure;
endd package body;
library IEEE;
use IEEE.std_logic_1164.all;
entity TB is
end entity;
architecture bench of TB is
component some_entity is
port (
clk : in std_logic;
op : out std_logic
);
end component;
signal op : std_logic;
alias clk is << signal.tb.uut1.clk : std_logic >>;
begin
do_test1 : process
for n in 1 to 100 loop
wait until rising_edge(clk);
end loop;
other_tests();
end process;
UUT1 : some_entity port map (clk => clk, op => op);
end architecture;