Carregando...
Sem descrição.
07/05/2025
Publico
-- Nome Projeto: Trabalho 2
-- Data: 07/05/25
-- Nome: Rafael_Farias_Meneses/2263831
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity trabalho2 is
port (sw : IN std_logic_vector(9 downto 0);
key: IN std_logic_vector (0 to 1);
ledr : OUT std_logic_vector(2 downto 0));
end trabalho2;
ARCHITECTURE logica OF trabalho2 is
constant n: integer := 3;
signal clear, ena, clk: std_logic;
signal d, q: std_logic_vector(2 downto 0);
begin
clear <= key(1);
clk <= key(0);
ena <= sw(9);
ledr <= q;
gen: for i in n-1 downto 0 generate
process (d, clk, clear, ena)
begin
if (ena = '0') then
q(i) <= 'Z';
elsif (clk='1' and clk'event) then
if(clear = '0') then
q(i) <= d(i);
else
q(i) <= '0';
end if;
end if;
end process;
d(i) <= sw(i);
end generate gen;
end logica;
-- Nome Projeto: Trabalho 2
-- Data: 07/05/25
-- Nome: Rafael_Farias_Meneses/2263831
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity trabalho2 is
generic (n: integer := 3);
port (sw : IN std_logic_vector(9 downto 0);
key: IN std_logic_vector (0 to 1);
ledr : OUT std_logic_vector(n-1 downto 0));
end trabalho2;
ARCHITECTURE logica OF trabalho2 is
signal clear, ena, clk: std_logic;
signal d, q: std_logic_vector(n-1 downto 0);
begin
-- Mapeando as chaves e switches e leds de saída
clear <= key(1);
clk <= key(0);
ena <= sw(9);
ledr <= q;
-- Gerando o bloco de lógica N vezes
gen: for i in n-1 downto 0 generate
process (d, clk, clear, ena)
begin
-- Se não estiver ENA saída é alta impedância
if (ena = '0') then
q(i) <= 'Z';
-- Detecção de borda
elsif (clk='1' and clk'event) then
if(clear = '0') then
q(i) <= d(i);
else
q(i) <= '0';
end if;
end if;
end process;
-- Mapeia os switches no sinal d (não sequencial)
d(i) <= sw(i);
end generate gen;
end logica;
-- Nome Projeto: Trabalho 2
-- Data: 07/05/25
-- Nome: Rafael_Farias_Meneses/2263831
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity trabalho2 is
generic (n: integer := 3);
port (sw : IN std_logic_vector(9 downto 0);
key: IN std_logic_vector (0 to 1);
ledr : OUT std_logic_vector(n-1 downto 0));
end trabalho2;
ARCHITECTURE logica OF trabalho2 is
signal clear, ena, clk: std_logic;
signal d, q: std_logic_vector(n-1 downto 0);
begin
-- Mapeando as chaves e switches e leds de saída
clear <= key(1);
clk <= key(0);
ena <= sw(9);
ledr <= q;
-- Gerando o bloco de lógica N vezes
gen: for i in n-1 downto 0 generate
process (d, clk, clear, ena)
begin
-- Se não estiver ENA saída é alta impedância
if (ena = '0') then
q(i) <= 'Z';
-- clar assincrono
elsif (clear = '1') then
q(i) <= '0';
-- Detecção de borda
elsif (clk='1' and clk'event) then
q(i) <= d(i);
end if;
end process;
-- Mapeia os switches no sinal d (não sequencial)
d(i) <= sw(i);
end generate gen;
end logica;