Código para el modulo VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.NUMERIC_STD.ALL;
entity Corrimiento is
port ( a: in unsigned (3 downto 0);
b: in unsigned (2 downto 0);
c: out unsigned (3 downto 0));
end Corrimiento;
architecture Behavioral of Corrimiento is
begin
process (a,b)
begin
case b is
when "000" => c <= a;
when "001" => c <= a ROR 1;-- rotar ala derecha 1 vez
when "010" => c <= a ROR 2;-- rotar ala derecha 2 veces
when "011" => c <= a ROL 1;-- rotar ala izquierda 1 vez
when "100" => c <= a ROL 2;-- rotar ala izquierda 2 veces
when "101" => c <= a SLL 1;--corrimiento logico hacia la izquierda un bit
when "110" => c <= a SLL 2;-- corrimiento logico hacia la izquierda de dos bit
when others => c <= a SRL 1;--corrimiento logico ala derecha de un bit
end case;
end process;
end Behavioral;
Código UCF
# Puertos de entrada
# Interruptores
NET "a<0>" LOC = P11; #Switch 0
NET "a<1>" LOC = L3; #Switch 1
NET "a<2>" LOC = K3; #Switch 2
NET "a<3>" LOC = B4; #Switch 3
NET "b<0>" LOC = G3; #Switch 4
NET "b<1>" LOC = F3; #Switch 5
NET "b<2>" LOC = E2; #Switch 6
# Puertos de salida
# LEDs
NET "c<0>" LOC = M5; #Led 0
NET "c<1>" LOC = M11; #Led 1
NET "c<2>" LOC = P7; #Led 2
NET "c<3>" LOC = P6; #Led 3
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.NUMERIC_STD.ALL;
entity Corrimiento is
port ( a: in unsigned (3 downto 0);
b: in unsigned (2 downto 0);
c: out unsigned (3 downto 0));
end Corrimiento;
architecture Behavioral of Corrimiento is
begin
process (a,b)
begin
case b is
when "000" => c <= a;
when "001" => c <= a ROR 1;-- rotar ala derecha 1 vez
when "010" => c <= a ROR 2;-- rotar ala derecha 2 veces
when "011" => c <= a ROL 1;-- rotar ala izquierda 1 vez
when "100" => c <= a ROL 2;-- rotar ala izquierda 2 veces
when "101" => c <= a SLL 1;--corrimiento logico hacia la izquierda un bit
when "110" => c <= a SLL 2;-- corrimiento logico hacia la izquierda de dos bit
when others => c <= a SRL 1;--corrimiento logico ala derecha de un bit
end case;
end process;
end Behavioral;
Código UCF
# Puertos de entrada
# Interruptores
NET "a<0>" LOC = P11; #Switch 0
NET "a<1>" LOC = L3; #Switch 1
NET "a<2>" LOC = K3; #Switch 2
NET "a<3>" LOC = B4; #Switch 3
NET "b<0>" LOC = G3; #Switch 4
NET "b<1>" LOC = F3; #Switch 5
NET "b<2>" LOC = E2; #Switch 6
# Puertos de salida
# LEDs
NET "c<0>" LOC = M5; #Led 0
NET "c<1>" LOC = M11; #Led 1
NET "c<2>" LOC = P7; #Led 2
NET "c<3>" LOC = P6; #Led 3