TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Código de sincronização através de componentes

Tese: Código de sincronização através de componentes. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  10/11/2014  •  Tese  •  2.519 Palavras (11 Páginas)  •  238 Visualizações

Página 1 de 11

Contadores 0 (zero) a 60 e 0 (zero) a 24 respectivamente

Código Relógio através de componentes

Depois de diversas tentativas para adaptar esses códigos a linguagem do software e sucesso quase algum para sua finalização foi desenvolvido outro modelo de contador, um contador que conta unidades e dezenas separadamente para só então criar o código com o relógio todo montado e já decodificado para display de 7 segmentos. Segue a baixo o código de cada um dos componentes utilizados e em seguida uma pequena descrição do mesmo.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use ieee.std_logic_unsigned.all;

use IEEE.NUMERIC_STD.ALL;

entity unidade_seg is

Port ( clk_in_uni_seg: in std_logic;

clk_out_uni_seg: out std_logic;

bcd_uni_seg : out STD_LOGIC_vector (3 downto 0));

end unidade_seg;

architecture Behavioral of unidade_seg is

signal uni_seg: std_logic_vector (3 downto 0):= "0000";

signal clk_out_tmp_seg : std_logic := '0';

begin

process (clk_in_uni_seg)

begin

IF (clk_in_uni_seg = '1' and clk_in_uni_seg'event) then

uni_seg <= uni_seg + "1";

IF (uni_seg = 9) then

uni_seg <= "0000";

clk_out_tmp_seg <= '1';

end if;

IF (uni_seg = 5) then

clk_out_tmp_seg <= '0';

end if;

end if; end process;

bcd_uni_seg <= uni_seg;

clk_out_uni_seg <= clk_out_tmp_seg;

end Behavioral;

Contador 0 a 9 – unidade segundo

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use ieee.std_logic_unsigned.all;

use IEEE.NUMERIC_STD.ALL;

entity dezena_seg is

Port ( clk_in_dez_seg: in std_logic;

clk_out_dez_seg : out std_logic;

bcd_dez_seg : out STD_LOGIC_vector (2 downto 0));

end dezena_seg;

architecture Behavioral of dezena_seg is

signal dez: std_logic_vector (2 downto 0):= "000";

signal clk_out_tmp_seg : std_logic := '0';

begin

process (clk_in_dez_seg)

begin

IF (clk_in_dez_seg = '1' and clk_in_dez_seg'event) then

dez <= dez + "1";

IF (dez = 5) then

dez <= "000";

clk_out_tmp_seg <= '1';

end if;

if (dez = 2) then

clk_out_tmp_seg <= '0';

end if;

end if; end process;

bcd_dez_seg <= dez;

clk_out_dez_seg <= clk_out_tmp_seg;

end Behavioral;

Contador 0 a 6 – dezena Segundo

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use ieee.std_logic_unsigned.all;

use IEEE.NUMERIC_STD.ALL;

entity unidade_min is

Port ( clk_in_uni_min: in std_logic;

clk_out_uni_min : out std_logic;

bcd_uni_min : out STD_LOGIC_vector (3 downto 0));

end unidade_min;

architecture Behavioral of unidade_min is

signal uni_min: std_logic_vector (3 downto 0):= "0000";

signal clk_out_tmp_min : std_logic := '0';

begin

process (clk_in_uni_min)

begin

IF (clk_in_uni_min = '1' and clk_in_uni_min'event) then

uni_min <= uni_min + "1";

IF (uni_min = 9) then

uni_min <= "0000";

clk_out_tmp_min <= '1';

end if;

if (uni_min = 5) then

clk_out_tmp_min <= '0';

end if;

end if;

end process;

bcd_uni_min <= uni_min;

clk_out_uni_min <= clk_out_tmp_min;

end Behavioral;

Contador 0 a 9 unidade minute

...

Baixar como (para membros premium)  txt (15.2 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no TrabalhosGratuitos.com