Buscar

Relatório 3 - 19-9-14 - primeiros contatos com a linguagem VHDL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Universidade Estadual de Campinas 
Faculdade de Tecnologia 
TT-411 Circuitos Digitais 2 
 
Wellington Renan Gonçalves 
 
Relatório 3 
 
Aula 3 
Entidade do Projeto 
Declaração de entidade 
Código Sequencial 
 
Na aula 3 continuamos a programação em VHDL utilizando o Quartus II. 
Utilizamos como material de aula a apostila 2 (teleduc) com o conteúdo de 
primeiros contatos com a linguagem VHDL 
 
Como prática de laboratório foram propostas as seguintes atividades: 
 
1 – Usando o Quartus II, as dicas apresentadas na aula anterior e os 
conceitos apresentados na apostila 2, apresente o código de uma entidade 
que descreva as quatro expressões lógicas a seguir. Nessas expressões, 
considere o operador de negação cm maior precedência e o operador lógico 
“ou” com menor precedência. A entidade deve ter quatro portas de 
entrada, “a”, “b”, “c” e “d”, e quatro portas de saída, “s1”, “s2”, “s3” e “s4”, 
todas do tipo bit. 
 
As expressões a serem apresentadas são as seguintes: 
S1 = A or B 
 
S2 = A or B.C or D 
 
S3 = (A or B).(C or D) 
 
S4 = (A or B).(C or AD) 
 
LIBRARY IEEE; 
USE IEEE.std_logic_1164.all; 
USE IEEE.std_logic_unsigned.all; 
 
ENTITY aula3 IS 
 
 PORT (A, B, C, D: IN std_logic; --entradas 
 S1, S2, S3, S4: OUT std_logic); --saídas 
END aula3; 
 
ARCHITECTURE RTL OF aula3 IS 
BEGIN 
 S1 <= (A OR (NOT B)); 
 S2 <= (A OR (((NOT B) AND C) OR D)); 
 S3 <= ((A OR (NOT B)) AND (C OR D)); 
 S4 <= ((A OR (NOT B)) AND (NOT(C OR (A AND D)))); 
END RTL; 
 
Para S1 = A or B 
 
A B S1 
0 0 1 
0 1 0 
1 0 1 
1 1 1 
 
Para S2 = A or B.C or D 
 
A B C D S2 
0 0 0 0 0 
0 0 0 1 1 
0 0 1 0 1 
0 0 1 1 1 
0 1 0 0 0 
0 1 0 1 1 
0 1 1 0 0 
0 1 1 1 1 
1 0 0 0 1 
1 0 0 1 1 
1 0 1 0 1 
1 0 1 1 1 
1 1 0 0 1 
1 1 0 1 1 
1 1 1 0 1 
1 1 1 1 1 
 
Para S3 = (A or B).(C or D) 
 
A B C D S3 
0 0 0 0 0 
0 0 0 1 0 
0 0 1 0 0 
0 0 1 1 0 
0 1 0 0 0 
0 1 0 1 0 
0 1 1 0 0 
0 1 1 1 0 
1 0 0 0 0 
1 0 0 1 0 
1 0 1 0 0 
1 0 1 1 1 
1 1 0 0 0 
1 1 0 1 0 
1 1 1 0 0 
1 1 1 1 0 
 
Para S4 = (A or B).(C or AD) 
 
A B C D S4 
0 0 0 0 1 
0 0 0 1 1 
0 0 1 0 0 
0 0 1 1 0 
0 1 0 0 0 
0 1 0 1 0 
0 1 1 0 0 
0 1 1 1 0 
1 0 0 0 1 
1 0 0 1 1 
1 0 1 0 0 
1 0 1 1 0 
1 1 0 0 1 
1 1 0 1 1 
1 1 1 0 0 
1 1 1 1 0 
 
 
 
 
2. Determine em função do código abaixo, sem o auxílio do simulador, qual 
o valor de cada porta de saída. Note que todos os comando são 
concorrentes e portanto, a ordem das linhas do código não importa. 
 
 
a <= x(1 TO 3); 
a = 101 
 
b <= y(3 DOWNTO 1); 
b = 011 
 
c <= x(5 TO 7); 
c = 001 
 
d <= y(2 DOWNTO 0); 
d = 110 
 
y <= x(2 TO 5); 
y = 0110 
 
3. O código a seguir apresenta erros. Identifique, com a ajuda do simulador, 
as linhas com erro e proponha uma correção. 
 
 
 
LIBRARY IEEE; 
USE IEEE.std_logic_1164.all; 
USE IEEE.std_logic_unsigned.all; 
 
ENTITY errad_1 IS 
 
PORT (a, b, c, d : IN BIT; 
 s : OUT BIT_VECTOR (5 DOWNTO 0)); 
END errad_1; 
 
ARCHITECTURE teste OF errad_1 IS 
BEGIN 
 s(0) <= (a AND b) OR (c AND d); 
 s(1) <= ((a NOR b) NOR c); 
 s(2) <= (a AND b) OR c; 
 s(3) <= NOT ((a AND b) NAND c); 
 s(4) <= ((a XOR b) XOR c); 
 
END teste; 
 
Conclusão: 
 
Na primeira atividade de laboratório proposta foi implementado o código 
em VHDL de uma entidade que executasse as expressões booleanas 
propostas. A entidade foi apresentada logo a seguir, para verificar a validade 
do código para executar as expressões boolenas foi feita a tabela verdade 
(que representa as saídas esperadas para cada combinação de sinal 
recebido nas portas lógicas) para cada uma das 4 expressões, e comparada 
as suas saídas com o “WAVEFORM” (simulação das saídas nas portas 
lógicas) gerado no Quartus II. O resultado obtido valida a entidade criada 
para executar as expressões pedidas. 
Na segunda atividade foi solicitado que se determinasse as saídas de 
algumas portas lógicas sem o auxílio do simulador. Como as saídas recebiam 
valores do tipo BIT_VECTOR foi necessário para determinar as saídas 
cuidado com a ordem de numeração das posições dos vetores TOP ou 
DOWNTOP e a partir de qual e para qual posição estava recebendo, além do 
tamanho total do vetor (para não estourar o buffer). 
Na terceira atividade foi apresentada um código com erros e com auxílio do 
simulador, foi verificado as linhas com erro e proposta uma sugestão para o 
código. O código corrigido foi apresentado logo abaixo da atividade 3, o 
simulador encontrou os erros nas expressões booleanas, elas não 
apresentavam parênteses que é fundamental para o programa reconhecer 
as prioridades entre operações, sendo assim, as correções foram realizados 
nesta parte do código. Após a correção o código funcionou com sucesso.

Outros materiais

Outros materiais