buenas tardes, sucede que he introducido dentro de una sentencia process un loop.
La teoria dice que este loop deberia activarse siempre y cuando la lista de sensibilidad del process se haga valida.
y solamente cuando aquello pase, el loop deberia trabajar.
alguien me puede decir donde esta mi error? por favor!!!
La teoria dice que este loop deberia activarse siempre y cuando la lista de sensibilidad del process se haga valida.
y solamente cuando aquello pase, el loop deberia trabajar.
alguien me puede decir donde esta mi error? por favor!!!
Código:
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity contador is port(
clk, rst, rec, sav: in bit;
cout: out std_logic_vector(7 downto 0); --vector del contador
dout: out std_logic_vector(7 downto 0) --vector de datos de salida
);
end contador;
architecture arch of contador is
signal cnt: std_logic_vector(7 downto 0):= (others =>'0'); --pone la cuenta en cero
signal f :integer range 0 to 7:= 0;
signal i :integer range 0 to 7:= 0;
signal j :integer range 0 to 7:= 0;
TYPE matriz IS array(integer range 0 to 7) of std_logic_vector(7 downto 0);
signal tabla: matriz;
begin
grabar: process(clk, sav)
begin
if clk'event and clk='0' and sav='1' then
tabla(7)<="00000001";
tabla(6)<="00000011";
tabla(5)<="00000111";
tabla(4)<="11111111";
tabla(3)<="00011111";
tabla(2)<="00111111";
tabla(1)<="01111111";
tabla(0)<="00001111";
end if;
end process;
--aqui esta mi problema!!
--este loop deberia activarse siempre y cuando clk hagan alguna transicion y rst=1
--y el resultado es que se activa DESDE EL PRINCIPIO DE LA SIMULACION
cuenta: process(rst, clk)
begin
if clk'event and clk='0' and rst='1' then
FOR f IN 0 TO 7 LOOP
dout<=tabla(f) after 100 ns;
--wait rst for 100ns;
end loop;
end if;
end process;
end arch;