







Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Projeto de um relogio digital em linguagem vhdl, utilizando o software da Xiling, decodificado para display de 7 segmentos... Está bem simples o doc ...pois a prioridade do projeto era entregar ele funcionando... mas acho que já vai ajudar a entender o funcionamento. No proximo semestre acredito que a faculdade já vai ter o gravador para implementar este projeto.
Tipologia: Notas de estudo
1 / 13
Esta página não é visível na pré-visualização
Não perca as partes importantes!








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;
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;
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;
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic_unsigned.all; use IEEE.NUMERIC_STD.ALL; entity dezena_min is Port ( clk_in_dez_min: in std_logic; clk_out_dez_min : out std_logic; bcd_dez_min : out STD_LOGIC_vector (2 downto 0)); end dezena_min; architecture Behavioral of dezena_min is signal dez: std_logic_vector (2 downto 0):= "000"; signal clk_out_tmp_min : std_logic := '0'; begin process (clk_in_dez_min) begin IF (clk_in_dez_min = '1' and clk_in_dez_min'event) then dez <= dez + "1"; IF (dez = 5) then dez <= "000"; clk_out_tmp_min <= '1'; end if; if (dez = 2) then clk_out_tmp_min <= '0'; end if; end if; end process; bcd_dez_min <= dez; clk_out_dez_min <= clk_out_tmp_min; end Behavioral;
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic_unsigned.all; use IEEE.NUMERIC_STD.ALL;
entity relogio is port (clk : in std_logic; seg71: out std_logic_vector (7 downto 0); seg72: out std_logic_vector (7 downto 0); seg73: out std_logic_vector (7 downto 0); seg74: out std_logic_vector (7 downto 0); seg75: out std_logic_vector (7 downto 0); seg76: out std_logic_vector (7 downto 0)); end relogio;
architecture Behavioral of relogio is
signal bcduniseg : STD_LOGIC_vector (3 downto 0); signal bcddezseg : STD_LOGIC_vector (2 downto 0); signal bcdunimin : STD_LOGIC_vector (3 downto 0); signal bcddezmin : STD_LOGIC_vector (2 downto 0); signal bcdunihr : STD_LOGIC_vector (2 downto 0); signal bcddezhora : STD_LOGIC_vector (1 downto 0); signal clock : std_logic_vector (5 downto 1);
constant num0: STD_LOGIC_vector (7 downto 0) := "00000011"; -- codigo numero 0 constant num1: STD_LOGIC_vector (7 downto 0) := "10011111"; -- codigo numero 1 constant num2: STD_LOGIC_vector (7 downto 0) := "00100101"; -- codigo numero 2 constant num3: STD_LOGIC_vector (7 downto 0) := "00001101"; -- codigo numero 3 constant num4: STD_LOGIC_vector (7 downto 0) := "10011001"; -- codigo numero 4 constant num5: STD_LOGIC_vector (7 downto 0) := "01001001"; -- codigo numero 5 constant num6: STD_LOGIC_vector (7 downto 0) := "11000001"; -- codigo numero 6 constant num7: STD_LOGIC_vector (7 downto 0) := "00011111"; -- codigo numero 7 constant num8: STD_LOGIC_vector (7 downto 0) := "00000001"; -- codigo numero 8 constant num9: STD_LOGIC_vector (7 downto 0) := "00011001"; -- codigo numero 9 constant numn: STD_LOGIC_vector (7 downto 0) := "11111111"; -- apaga tudo
component 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 component;
component 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 component;
component 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 component;
component dezena_min is Port ( clk_in_dez_min: in std_logic; clk_out_dez_min : out std_logic; bcd_dez_min : out STD_LOGIC_vector (2 downto 0)); end component;
component unihora is Port ( clk_in_uni_hr: in std_logic; clk_out_uni_hr : out std_logic; bcd_uni_hr : out STD_LOGIC_vector (2 downto 0)); end component;
component dezhora is Port ( clk_in_dez_hora: in std_logic; bcd_dez_hora : out STD_LOGIC_vector (1 downto 0)); end component; begin
num7 when bcddezmin = 7 else num8 when bcddezmin = 8 else num9 when bcddezmin = 9 else numn; end block table_dezmin;
table_unihr: block begin seg75 <=num0 when bcdunihr = 0 else num1 when bcdunihr = 1 else num2 when bcdunihr = 2 else num3 when bcdunihr = 3 else num4 when bcdunihr = 4 else numn; end block table_unihr;
table_dezhr: block begin seg76 <=num0 when bcddezhora = 0 else num1 when bcddezhora = 1 else num2 when bcddezhora = 2 else numn; end block table_dezhr; end Behavioral;
LIBRARY ieee; USE ieee.std_logic_1164.ALL;
ENTITY testerelogio IS END testerelogio;
ARCHITECTURE behavior OF testerelogio IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT relogio PORT( clk : IN std_logic; seg71 : OUT std_logic_vector(7 downto 0); seg72 : OUT std_logic_vector(7 downto 0); seg73 : OUT std_logic_vector(7 downto 0);
seg74 : OUT std_logic_vector(7 downto 0); seg75 : OUT std_logic_vector(7 downto 0); seg76 : OUT std_logic_vector(7 downto 0) ); END COMPONENT;
--Inputs signal clk : std_logic := '0';
--Outputs signal seg71 : std_logic_vector(7 downto 0); signal seg72 : std_logic_vector(7 downto 0); signal seg73 : std_logic_vector(7 downto 0); signal seg74 : std_logic_vector(7 downto 0); signal seg75 : std_logic_vector(7 downto 0); signal seg76 : std_logic_vector(7 downto 0);
-- Clock period definitions constant clk_period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT) uut: relogio PORT MAP ( clk => clk, seg71 => seg71, seg72 => seg72, seg73 => seg73, seg74 => seg74, seg75 => seg75, seg76 => seg );
-- Clock process definitions clk_process :process begin clk <= '0'; wait for clk_period/2; clk <= '1'; wait for clk_period/2; end process;
-- Stimulus process stim_proc: process begin -- hold reset state for 100 ns. wait for 100 ns;
wait for clk_period*10;
-- insert stimulus here
wait; end process;