Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Estadual de Campinas Faculdade de Tecnologia TT-411 Circuitos Digitais 2 Wellington Renan Gonçalves Relatório 2 Aula 2 Na aula 2 foi iniciada a programação em VHDL utilizando o Quartus II. Como atividade de aula foi proposta a implementação do código que executasse a seguinte expressão Booleana Y = A nand B + B xor C. -- importa std_logic da IEEE library library IEEE; use IEEE.std_logic_1164.all; -- Declara uma entidade entity aula2 is port ( A : in std_logic; B : in std_logic; C : in std_logic; OUT1: out std_logic; OUT2: out std_logic); end aula2; architecture RTL of aula2 is begin OUT1 <= A nand B; OUT2 <= (A nand B) or (B xor C); end RTL; Tabela Verdade A B A nand B 0 0 1 0 1 1 1 0 1 1 1 0 B C B xor C 0 0 1 0 1 0 1 0 0 1 1 0 A nand B B xor C (A nand B) or (B xor C) 0 0 0 0 1 1 1 0 1 1 1 1 Como segunda ativida foi sugerido que usando variáveis que não são nem entradas (IN) e nem saídas (OUT) execute a função Booleana anterior em partes. -- importa std_logic da IEEE library library IEEE; use IEEE.std_logic_1164.all; -- Declara uma entidade entity aula2 is port ( A : inout std_logic; B : inout std_logic; C : inout std_logic; OUT1: buffer std_logic); end aula2; architecture RTL of aula2 is signal OUT2 : std_logic; signal OUT3 : std_logic; begin OUT2 <= A nand B; OUT3 <= B xor C; OUT1 <= OUT1 or OUT2; end RTL; Conclusão: Na primeira etapa da aula foi implementado em VHDL a expressão booleana "A" utilizando o ambiente de programação do Quartus II, o código utilizado assim como as saídas registradas foram apresentados acima, para verificar a validade do código implementado utilizamos da tabela da verdade para confirmar os dados obtidos com os dados esperados. E houve compatibilidade nos resuldados. Na segunda etapa da aula foi solicitado que a mesma expressão booleana "A" fosse implementa só que desta vez não utilizando IN e OUT. Desta forma foram necessárias utilizar de INOUT (Quando o sinal é declarado como INOUT, ele servirá tanto para entrada quanto para a saída. Ou seja, este sinal de saída será um registrador interno também) e SIGNAL (Para troca de dados entre processos deve-se utilizar sinal ao invés de variáveis). Depois de implementado e compilado o código, foi verificada as saídas obtidas que também apresentou compatibilidade com a tabela verdade.
Compartilhar