Este tipo de máquina permite:



La información provista a continuación fue tomada y derivada de [Savage]


Este tipo de direccionamiento guarda el estado siguiente y las salidas de cada estado de la carta ASM en un registro de memoria. Una parte del registro, la liga, es usada para guardar el estado siguiente. La otra parte del registro, la salida indica las salidas tanto no conidicionadas como las condicionadas [Savage].


Reg-D Memory Leak Reg D clk Salida defasada un ciclo Reg-D msb lsb Qk : Edo. presente [...σ2,σ1] Address [...γ2,γ1] Data Qk+1: Edo. siguiente



Concatenando las entradas con la liga se forma la dirección en memoria del registro que contiene el estado siguiente.

El registro conectado en la palabra «Data», al ser sensitivo a la transición del reloj, hace que la salida se defase un ciclo de reloj.


El contenido de un registro de memoria se indica en la siguiente tabla:

Enrada a memoria
(dirección del registro
en memoria)
Salidas de memoria
Estado presentes
Qk
Entradas
[...σ2,σ1]
Liga
(Edo. sig)
Qk+1
Salidas
[...γ2,γ1]

Notas:


Dado un sistema cuyas entradas, binarias, son : s3, s2, s1 y cuyas salidas, tmabién binarias, son: g4, g3, g2, g1.




El lector debe notar que las entradas y las salidas se numeran a partir del índice "1".



Edo.
presente
Entradas Liga
(Edo. sig.)
Salidas
  s3 s2 s1   g4 g3 g2 g1
00 X 0 0 00 0 0 0 1
00 X 1 0 11 0 0 0 1
00 X X 1 01 0 0 0 1
01 0 X X 10 1 1 0 0
01 1 X X 00 1 0 1 0
10 X X X 00 0 1 1 0
11 X X X 00 0 0 1 0


El código consiste de dos archivos:




library ieee;
use ieee.std_logic_1164.all;

entity trayectoria is
port(
	clk      :  in std_logic;
	S	 :  in std_logic_vector(3 downto 1);   --entradas externas
	G 	 : out std_logic_vector(4 downto 1)    --Salidas
	);
end entity trayectoria;

architecture behavioral of trayectoria is
signal    leak : std_logic_vector (1 downto 0);
signal outputs : std_logic_vector (3 downto 0);
signal address : std_logic_vector (4 downto 0);
begin

u1 : entity work.memoria (behavioral) port map( address, leak , outputs);

process (clk)
begin
	if clk'event and clk='1' then
		address <= (leak & S);
		G <= outputs;
	end if;
end process;

end architecture behavioral;




library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity memoria is
port (
	address	:  in std_logic_vector (4 downto 0);
	leak	: out std_logic_vector (1 downto 0);
	outputs	: out std_logic_vector (3 downto 0)
);
end entity memoria;

architecture behavioral of memoria is
	type tLeakArray is array (0 to 31) of std_logic_vector (1 downto 0);
	type tDataArray is array (0 to 31) of std_logic_vector (3 downto 0);

	constant memLeak : tLeakArray :=("00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00",
					 "00");
												
	constant memOutputs : tDataArray := ("0000",
				 	     "0000",
			 		     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000",
					     "0000");
begin

	leak	<= memLeak   (to_integer(unsigned(address)));
	outputs <= memOutputs(to_integer(unsigned(address)));

end architecture behavioral;





El circuito de «Direccionamiento por trayectoria» puede ser usado para guardar la codificación de varias cartas ASM, independientes entre sí. Mediante la entrada «Carta ASM» se elige la carta ASM a ejecutar.


Reg-D Memory Leak Reg D clk Salida defasada un ciclo Reg-D msb lsb Edo. presente [...σ2,σ1] Address [...γ2,γ1] Outputs Reg-D Carta ASM word



Enrada a memoriaSalidas de memoria
Carta ASM Estado presente Entradas Liga
(Edo. sig)
Salidas
00 ... ...
01 ... ...
... ... ...






[Savage] Dr. Jesús Savage Carmona
Ing. Gabriel Vázquez
MI: Norma Elva Chávez Rodríguez
Diseño de microprocesadores
Facultad de Ingeniería; UNAM
2009
México

Cap. 3