Sem descrição.
08/05/2025
Publico
Projete e simule o registrador-deslocador abaixo (parametrizado), com entrada serial.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY aulafor IS
generic (n: integer := 3);
PORT (
LEDR: buffer std_logic_vector(n-1 downto 0);
SW, KEY: in std_logic_vector(0 to 1)
);
END aulafor;
ARCHITECTURE logica OF aulafor IS
signal clk, serial: std_logic;
signal q: std_logic_vector (n-1 downto 0);
BEGIN
clk <= KEY(0);
serial <= SW(0);
LEDR <= q;
process (clk)
begin
meu_for: for i in 0 to n - 1 loop
if (clk='1' and clk'event) then
if(i = n - 1) then
q(i) <= serial;
else
q(i) <= q(i+1);
end if;
end if;
end loop;
end process;
END logica;
Exercício 3: Faça um programa que tenha uma entrada (PORT) que varie de 0 a 7 e uma saída de 4 bits. O programa deve seguir a seguinte relação entre a entrada e a saída:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY aulafor IS
PORT (
a: in integer range 0 to 7;
z: out bit_vector(3 downto 0)
);
END aulafor;
ARCHITECTURE logica OF aulafor IS
BEGIN
process (a)
variable i: integer range 0 to 4;
begin
z <= "0000";
i := 0;
while (i <= 3) loop
if (a = i) then
z(i) <= '1';
end if;
i := i + 1;
end loop;
end process;
END logica;
Faça um programa que coloque na saída Z o valor “1111” quando a entrada A for >=2.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY aulafor IS
PORT (
a: in integer range 0 to 7;
z: out bit_vector(3 downto 0) := "0000"
);
END aulafor;
ARCHITECTURE logica OF aulafor IS
BEGIN
process
begin
wait until A = 2;
z <= "1111";
end process;
END logica;