Anda di halaman 1dari 13

Daniel Esteban González Zuluaga

Primer AHPL

--Declaración de librerias

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.numeric_std.all;
--Declaración entity

entity proyectodanmar is

port

clk, reset : in std_logic;

entrada : in std_logic_vector(1 downto 0);

distinto : out std_logic;

auxE: out std_logic_vector (2 downto 0);

dato: out std_logic_vector (1 downto 0)

);

end proyectodanmar;

architecture codigo of proyectodanmar is

--Señales auxiliares

type mis_Estados is (s1,s2);

signal estado: mis_Estados;

signal distinto1: std_logic;

signal aux: std_logic_vector (1 downto 0);

signal aux2: std_logic_vector (1 downto 0);

begin

--Transición de estados

distinto<=distinto1;

process (clk, reset)

begin

if (reset = '0') then

estado <= s1;

elsif (rising_edge(clk)) then


case estado is

when s1=>

if distinto1= '1'then

estado<= s2;

else

estado<= s1;

end if;

when s2=>

estado<=s1;

end case;

end if;

end process;

--Salidas

process (estado)

begin

case estado is

when s1=>

auxE <="001";

aux(0)<= entrada(0);

aux(1)<= entrada(1);

distinto1<= (aux(0)) xor (aux(1));

when s2=>

auxE <="010";

aux(0)<= aux(1);

aux(1)<= aux(0);

end case;

end process;

dato <= aux;


end codigo;

Segundo AHPL
--Declaración de librerias

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.numeric_std.all;

--Declaración entity

entity proyectodanmar is

port

clk, reset, control : in std_logic;

bandera : out std_logic_vector(1 downto 0);

entrada : in std_logic_vector(1 downto 0);

auxE: out std_logic_vector (1 downto 0);

salida: out std_logic_vector (1 downto 0)

);

end proyectodanmar;
architecture codigo of proyectodanmar is

--Señales auxiliares

type mis_Estados is (s1,s2);

signal estado: mis_Estados;

signal distinto1: std_logic;

signal aux: std_logic_vector (1 downto 0);

begin

--Transición de estados

process (clk, reset)

begin

if (reset = '0') then

estado <= s1;

elsif (rising_edge(clk)) then

case estado is

when s1=>

if control= '1'then

estado<= s1;

else

estado<= s2;

end if;

when s2=>

if control= '1'then

estado<= s1;

else

estado<= s2;

end if;

end case;

end if;
end process;

--Salidas

process (estado)

begin

salida(1)<= aux(1);

salida(0)<= aux(0);

case estado is

when s1=>

auxE <="01";

aux(0)<= entrada(0);

aux(1)<= aux(0);

when s2=>

auxE <="10";

aux(1)<= entrada(1);

aux(0)<= aux(1);

end case;

end process;

bandera <= aux;

end codigo;

Conclusión: En este Ahpl tuve una mayor velocidad realizándolo que en el primero que nos envió
el ingeniero ya que le cogí práctica a realizar los Vhdl dependiendo de un Ahpl, en el primer AHPL
tuve una demora de 1 hora en desarrollar la primera base del programa, y más o menos en media
hora corrigiendo errores para que compile. En el otro programa fue algo diferente ya que me
compliqué en una parte ya que en el AHPL se tomaban los arreglos entre 1 y 2, yo lo puse así pero
el programa no detallaba bien las entradas y me colocaba una más.
Mario Andrés Martínez Cuesta

Tercer AHPL

Proceso:

En este punto creamos el AHPL necesario, y lo tomamos para convertirlo a su respectivo código en
VHDL, luego simulamos para verificar su comportamiento y posteriormente revisamos su circuito
esquemático.

Descripción del AHPL:

Este AHPL tiene un paso, pero antes de este definimos una variable llamada Paridad_Instantanea,
la cual toma el valor de una operación XOR, entre dos operaciones XOR anteriores entre dos de los
valores guardados en el arreglo Bit.

XOR XOR XOR


Bit[1] Bit[2] Bit[3] Bit[4] 1&2 3&4 TOT
0 0 0 0 0 0 0
0 0 0 1 0 1 1
0 0 1 0 0 1 1
0 0 1 1 0 0 0
0 1 0 0 1 0 1
0 1 0 1 1 1 0
0 1 1 0 1 1 0
0 1 1 1 1 0 1
1 0 0 0 1 0 1
1 0 0 1 1 1 0
1 0 1 0 1 1 0
1 0 1 1 1 0 1
1 1 0 0 0 0 0
1 1 0 1 0 1 1
1 1 1 0 0 1 1
1 1 1 1 0 0 0
Luego tenemos el paso, en el cual guardamos una serie de valores en secuencia, primero
guardando una variable llamada Serial, en un espacio del arreglo Bit, y así va guardando el dato
anterior en el siguiente espacio del arreglo Bit, hasta el cuarto espacio. Y al final guarda la paridad
instantánea en la registrada. Y al terminar esto hace volver al primer estado, o sea quedarse en
este mismo.

--Declaración de librerias

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.numeric_std.all;

--Declaración entity

entity codigo is

port

clk,Serial, reset: in std_logic;


Paridad_Registrada : out std_logic

);

end codigo;

architecture codigos of codigo is

--Señales auxiliares

type mis_Estados is (s1);

signal estado: mis_Estados;

signal Paridad_Instantanea: std_logic;

signal Bits: std_logic_vector(3 downto 0);

begin

--Transición de estados

process (clk, reset)

begin

if (reset = '0') then

estado <= s1;

Bits<= "1010";

elsif (rising_edge(clk)) then

case estado is

when s1=>

estado<= s1;

Bits(0) <= Serial;

Bits(1) <= Bits(0);

Bits(2) <= Bits(1);

Bits(3) <= Bits(2);

Paridad_Instantanea <= (Bits(0) xor Bits(1)) xor


(Bits(2) xor Bits(3)) ;

end case;
end if;

end process;

--Salida

Paridad_Registrada <= Paridad_Instantanea;

end codigos;

Cuarto AHPL

Proceso:

En este punto creamos el AHPL necesario, y lo tomamos para convertirlo a su respectivo código en
VHDL, luego simulamos para verificar su comportamiento y posteriormente revisamos su circuito
esquemático.

Descripción del AHPL:

Este AHPL es igual al anterior, solo que en este añadimos una variable llamada Punto de
observación, en el cual tenemos la operación XOR entre el tercer y cuarto valor del arreglo Bit., el
cual podemos utilizar como salida del sistema.
--Declaración de librerias

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.numeric_std.all;

--Declaración entity

entity codigo is

port

clk,Serial, reset: in std_logic;

Punto_de_Observacion : out std_logic;

Paridad_Registrada : out std_logic

);

end codigo;

architecture codigos of codigo is

--Señales auxiliares

type mis_Estados is (s1);

signal estado: mis_Estados;

signal Paridad_Instantanea: std_logic;

signal Bits: std_logic_vector(3 downto 0);


begin

--Transición de estados

process (clk, reset)

begin

if (reset = '0') then

estado <= s1;

Bits<= "1010";

elsif (rising_edge(clk)) then

case estado is

when s1=>

estado<= s1;

Bits(0) <= Serial;

Bits(1) <= Bits(0);

Bits(2) <= Bits(1);

Bits(3) <= Bits(2);

Paridad_Instantanea <= (Bits(0) xor Bits(1)) xor


(Bits(2) xor Bits(3)) ;

end case;

end if;

end process;

--Salida

Paridad_Registrada <= Paridad_Instantanea;

Punto_de_Observacion <= Bits(2) xor Bits(3);

end codigos;

Divisiones:
Daniel González: AHPL 1 y 2.
Mario Martínez AHPL 2 y 3.

Anda mungkin juga menyukai