Escolar Documentos
Profissional Documentos
Cultura Documentos
Integrantes
ABSTRACT
RESUMEN
Desarrollo
1.-Simular el circuito de corrimiento universal de 8 bits para cada
funcin permitida, reportar las imgenes de los diagramas de
tiempo con texto explicativo.
Figura A.Registro de corrimiento de 4 bits.
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
entity cu is
port(
clk, reset :in std_logic;--reloj 50MHz
esd, esi : in std_logic;--entradas seriales
modir : in std_logic_vector(2 downto 0);--selector de
corrimiento
ent : in std_logic_vector(7 downto 0);--entrada paralela
sal : out std_logic_vector(7 downto 0));--salida 8 bits
end cu;
architecture Behavioral of cu is
signal aux:std_logic_vector(7 downto 0);
begin
sal<=aux;
process(clk, reset)
begin
if reset='1' then aux<=(others => '0');
elsif clk' event and clk = '1' then
case modir is
when "001"=>--corrimiento a
la izquierda
aux(7)<=esd;--entrada
de dato a la derecha
aux(6)<=aux(7);
aux(5)<=aux(6);
aux(4)<=aux(5);
aux(3)<=aux(4);
aux(2)<=aux(3);
aux(1)<=aux(2);
aux(0)<=aux(1);
library IEEE;
3
when "010"=>--corrimiento a
la derecha
aux(7)<=aux(6);
aux(6)<=aux(5);
aux(5)<=aux(4);
aux(4)<=aux(3);
aux(3)<=aux(2);
aux(2)<=aux(1);
aux(1)<=aux(0);
aux(0)<=esi;--entra
dato izquierda
when "011"=>--rotacin a la
izquierda
aux(7)<=aux(6);
aux(6)<=aux(5);
aux(5)<=aux(4);
aux(4)<=aux(3);
aux(3)<=aux(2);
aux(2)<=aux(1);
aux(1)<=aux(0);
aux(0)<=aux(7);
when "100"=> --rotacin a la
derecha
aux(7)<=aux(0);
aux(6)<=aux(7);
aux(5)<=aux(6);
aux(4)<=aux(5);
aux(3)<=aux(4);
aux(2)<=aux(3);
aux(1)<=aux(2);
aux(0)<=aux(1);
when
"101"=>--salida
paralela
aux<=ent;
when others => null;
end case;
end if;
end process;
end Behavioral;
Carga en paralelo
Rotacion a la derecha reten
Carga en paralelo
Desplazamiento ala izquierda insertanto 8 unos y ceros .
Desplazamiento ala derecha insertando ocho unos y ceros
Reset
-Programacin 2
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY jhonson_anillo_counters IS PORT ( ckin : IN std_logic;
ck : INOUT std_logic;
s: IN std_logic_vector(2 DOWNTO 0);
reset: in std_logic;
hold: IN std_logic;
carga: IN std_logic;
rotd: IN std_logic;
d: IN std_logic_vector(7 DOWNTO 0);
q : INOUT std_logic_vector (7 DOWNTO 0));
END jhonson_anillo_counters;
END IF;
ELSIF s="100" THEN --carga en paralelo rotacion
IF (carga ='1') THEN --carga en paralelo
IF ck'event AND ck='1' THEN
q(0)<=d(0);
q(1)<=d(1);
q(2)<=d(2);
q(3)<=d(3);
q(4)<=d(4);
q(5)<=d(5);
q(6)<=d(6);
q(7)<=d(7);
END IF;
ELSIF (rotd ='1') THEN --rotacion derecha
IF ck'event AND ck='1' THEN
q(0)<=q(7);
q(1)<=q(0);
q(2)<=q(1);
q(3)<=q(2);
q(4)<=q(3);
q(5)<=q(4);
q(6)<=q(5);
q(7)<=q(6);
END IF;
ELSE --rotacion izquierda
IF ck'event AND ck='1' THEN
q(0)<=q(1);
q(1)<=q(2);
q(2)<=q(3);
q(3)<=q(4);
q(4)<=q(5);
q(5)<=q(6);
q(6)<=q(7);
q(7)<=q(0);
END IF;
END IF;
ELSE --anillo
IF ck'event AND ck='1' THEN
q(0)<=q(7);
q(1)<=q(0);
q(2)<=q(1);
q(3)<=q(2);
q(4)<=q(3);
q(5)<=q(4);
q(6)<=q(5);
q(7)<=q(6);
END IF;
END IF;
END IF;
END PROCESS;
END behavioral;
-Programacin 3
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;
clk: IN std_logic;--B8
reset:IN std_logic
Ck: INOUT std_logic_vector(4 downto 0);--Div. de frec.
Pul : INOUT std_logic:='0';
D,I:IN std_logic;
x: IN std_logic_vector(3 downto 0);
ent: IN std_logic_vector(4 downto 0);
);
END practica9;
ARCHITECTURE MulDiv OF practica9 IS
SIGNAL aux: std_logic_vector(4 DOWNTO 0);
SIGNAL count : integer :=0;
BEGIN
PROCESS(clk) --DIVISOR DE FRECUENCIA
BEGIN
IF(clk'event AND clk='1') THEN
count <=count+1;
IF(count = 10000000) THEN
Pul <= NOT Pul;
count <=0;
END IF;
END IF;
END PROCESS;
Ck<=aux;
PROCESS(Pul, reset)
BEGIN
IF reset = '1' THEN aux<=(OTHERS => '0');
--RESETEAR
ELSIF Pul'event AND Pul= '1' THEN
CASE x IS
WHEN "0001" => --MULTIPLICACION FACTOR 2
aux(4)<= ent(3);
aux(3)<= ent(2);
aux(2)<= ent(1);
aux(1)<= ent(0);
aux(0)<= I;
WHEN "0010" => ----DIVICION FACTOR 2
aux(4)<= D;
aux(3)<= ent(4);
aux(2)<= ent(3);
aux(1)<= ent(2);
aux(0)<= ent(1);
WHEN "0100" => --MULTIPLICACION FACTOR 4
aux(4)<= ent(1);
aux(3)<= ent(0);
aux(2)<= ent(4);
aux(1)<= ent(3);
aux(0)<= ent(2);
WHEN "1000" => --DIVICION FACTOR 4
aux(4)<= ent(2);
aux(3)<= ent(1);
aux(2)<= ent(0);
aux(1)<= ent(4);
aux(0)<= ent(3);
WHEN OTHERS => aux<=ent;
END CASE;
END IF;
END PROCESS;
END MulDiv;
Figura 3.1.-Numero 5
Fotografias de trabajo.
Figura 3.4.-12/4
Figura 3.2.-5*2
Figura 3.3.-5/2
Figura 3.5.-12/2
8
-Programacin 4
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY jhonson_anillo_counters IS PORT ( ckin : IN std_logic;--entrada b8
ck : INOUT std_logic;--reloj con divisor de frec. 1hz
reset: IN std_logic;--resetear programa
hold: IN std_logic;--mantener estatico
carga: IN std_logic;--determinar si corrimiento con 1 o 2 bits
rotd: IN std_logic;--cambiar sentido de giro
d: IN std_logic_vector(3 DOWNTO 0);--entradas para "carga"
q : INOUT std_logic_vector (3 DOWNTO 0));--salidas a motor
END jhonson_anillo_counters;
ARCHITECTURE behavioral OF jhonson_anillo_counters IS
q(3)<=q(2);
END IF;
ELSE --rotacion izquierda
IF ck'event AND ck='1' THEN
q(0)<=q(1);
q(1)<=q(2);
q(2)<=q(3);
q(3)<=q(0);
END IF;
END IF;
END IF;
END IF;
END PROCESS;
END behavioral;
Conclusiones:
Conclusin Acosta T. A.
Concluyo que por medio de los circuitos logicos secuenciales se
puede llevar a acabo aplicaciones diversas, como son la
automatizacion de giro de motores, calculadoras o drivers entre
comunicacion serial y paralela. Asi mismo, se sabe que la
complejidad de cada proyecto depende del diseo y de las
caracteristicas que se quieran sustentar, aunque el diseo en FPGA
da mucha potencia al momento de hacer nuestras aplicaciones.
Conclusin Mondragon R. S. A.
En conclusin los registros de corrimiento con una iuncreible
herraminta dentro de los circuitros lgicos secuenciales que por
permite guardar datos y usarlos de forma paralela o serial,dentro de
un proyecto me resultara interesante aplicarlo por ejemplo en la
creacin de un display que muestre datos en movimiento.
Conclusin general
Se concluye que los registros de corrimiento son herramientas
verstiles dentro de los circuitos lgicos secuenciales, y que nos
permitirn trabajar datos de forma serial y paralela tanto de entrada
como de salida.
Bibliografa
Pardo F., Boluda J. A. (2004) VHDL, lenguajes para sntesis y
modelado de circuitos (2da edicin). Mxico: Alfaomega
Software de desarrollo, varias compaas, (ISE) www.xilinx.com,
(QuartusII) www.altera.com, (Libero) www.actel.com
13