Buscar

745317_729658_Labsisdig-Roteiro-Aula-6-26-jan-2014 - Cópia

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 11 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 11 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 9, do total de 11 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

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 1 
 
 
Aula 6 
 
Codificadores e 
decodificadores 
 
 
 
Codificadores e decodificadores na tecnologia TTL 
 
 
Exemplo de codificador: 74LS148 – Apresenta em sua saída de três bits (A1, A2 e A0) o código 
binário correspondente à entrada de dados (I0 a I7) que estiver ativada. As entradas de dados de 
maior número têm prioridade sobre as de menor número. Todas as entradas e todas as saídas são 
ativas em nível lógico baixo (L). Veja a seguir o diagrama em bloco (com a “pinagem”) e a 
tabela funcional do componente. Detalhes adicionais sobre componentes da família TTL podem 
ser vistos nas suas respectivas folhas de dados. 
 
 
 
 
 
 
L = nível lógico baixo H = nível lógico alto X = qualquer nível lógico 
 
EI, GS e EO podem ser utilizadas para expansão do codificador e têm a seguinte funcionalidade: 
 
EI – Enable Input: deve ser ativada para que a codificação aconteça 
EO – Enable Output: estará ativada sempre que EI estiver ativada e nenhuma das oito linhas 
de entrada estiver ativada. 
GS – Group Select: Indica que EI está ativada e pelo menos uma das oito linhas de entrada 
está ativada. 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 2 
 
Exemplo de decodificador: 74LS138 – Ativa uma de suas oito saídas (O0, O1, O2, O3, O4, O5, 
O6, O7), de acordo com o código binário presente em seus três bits de entrada de endereço (A0, 
A1, A2). O circuito dispõe de três entradas de habilitação (E, ou “Enable”), das quais duas são 
ativas em nível lógico baixo (L) e uma é ativa em nível lógico alto (H). Note que as entradas de 
endereço são ativas em nível lógico alto, enquanto que as saídas decodificadas são ativas em 
nível lógico baixo. Veja a seguir o diagrama em bloco (com a “pinagem”) e a tabela funcional do 
componente. Detalhes adicionais sobre componentes da família TTL podem ser vistos nas suas 
respectivas folhas de dados. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 3 
 
 
VHDL: Tipo de dados std_logic 
 
Bit é adequado para uso em modelos abstratos, quando não se está interessado nos detalhes dos 
sinais elétricos do sistema digital. O tipo de dados std_logic foi concebido para ser usado 
quando, na representação dos sinais, deseja-se levar em conta suas propriedades elétricas. 
 
Valores possíveis de um sinal do tipo std_logic: 
 
‘0’ : Forcing low 
‘1’ : Forcing high 
‘L’ : Weak low 
‘H’ : Weak high 
‘Z’ : High impedance 
‘X’ : Forcing unknown 
‘W’ : Weak unknown 
‘ ‘ : Don’t care. 
 
 
 
Process 
 
Process é uma parte de um código VHDL cujos comandos são executados sequencialmente, a 
cada vez que um sinal de sua lista de sensibilidade muda de valor, ou a cada vez que as 
condições de um comando Wait são atendidas. 
 
 
 
 
 
 
A seguir são apresentados alguns exemplos de descrições de circuitos de codificadores e de 
decodificadores, na linguagem VHDL. 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 4 
 
-- Circuito 1: 
-- Codificador com prioridade, funcionalmente equivalente ao 
-- Circuito Integrado TTL 74LS148 
-- Versão A 
 
library IEEE; 
use IEEE.std_logic_1164.all; 
 
entity LS74148A is 
 port ( INPUT : in std_logic_vector(7 downto 0); 
 EI : in std_logic; 
 GS,EO : out std_logic; 
 A : out std_logic_vector(2 downto 0) ); 
end LS74148A; 
 
architecture behavior of LS74148A is 
 
begin 
 
 process ( EI,INPUT ) begin 
 if ( EI = '1' ) then 
 A <= O"7"; 
 GS <= '1'; 
 EO <= '1'; 
 else 
 if ( INPUT = X"FF" ) then 
 A <= O"7"; 
 GS <= '1'; 
 EO <= '0'; 
 else 
 if ( INPUT(7) = '0' ) then 
 A <= O"0"; 
 elsif ( INPUT(6) = '0' ) then 
 A <= O"1"; 
 elsif ( INPUT(5) = '0' ) then 
 A <= O"2"; 
 elsif ( INPUT(4) = '0' ) then 
 A <= O"3"; 
 elsif ( INPUT(3) = '0' ) then 
 A <= O"4"; 
 elsif ( INPUT(2) = '0' ) then 
 A <= O"5"; 
 elsif ( INPUT(1) = '0' ) then 
 A <= O"6"; 
 else 
 A <= O"7"; 
 end if; 
 GS <= '0'; 
 EO <= '1'; 
 end if; 
 end if; 
 end process; 
end behavior; 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 5 
 
 
-- Circuito 2: 
-- Codificador com prioridade, funcionalmente equivalente ao 
-- Circuito Integrado TTL 74LS148 
-- Versão B 
 
 
library IEEE; 
use IEEE.std_logic_1164.all; 
 
entity LS74148B is 
 port ( INPUT : in std_logic_vector(7 downto 0); 
 EI : in std_logic; 
 GS,EO : out std_logic; 
 A : out std_logic_vector(2 downto 0) ); 
end LS74148B; 
 
architecture behavior of LS74148B is 
 
begin 
 
 GS <= '1' when EI = '1' or INPUT = X"FF" else 
 '0'; 
 
 EO <= '1' when EI = '1' or INPUT /= X"FF" else 
 '0'; 
 
 process ( EI,INPUT ) begin 
 if ( EI = '1' ) then 
 A <= O"7"; 
 elsif ( INPUT(7) = '0' ) then 
 A <= O"0"; 
 elsif ( INPUT(6) = '0' ) then 
 A <= O"1"; 
 elsif ( INPUT(5) = '0' ) then 
 A <= O"2"; 
 elsif ( INPUT(4) = '0' ) then 
 A <= O"3"; 
 elsif ( INPUT(3) = '0' ) then 
 A <= O"4"; 
 elsif ( INPUT(2) = '0' ) then 
 A <= O"5"; 
 elsif ( INPUT(1) = '0' ) then 
 A <= O"6"; 
 else 
 A <= O"7"; 
 end if; 
 end process; 
end behavior; 
 
 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 6 
 
 
-- Circuito 3: 
-- Codificador simples, com prioridade 
 
 
entity CODIFICADOR is 
 port ( INPUT : in bit_vector(7 downto 0); 
 A : out integer range 0 to 7; 
 VALIDO: out bit ); 
end CODIFICADOR; 
 
architecture SIMPLES of CODIFICADOR is 
 
begin 
 
 A <= 7 when INPUT(7) = '1' else 
 6 when INPUT(6) = '1' else 
 5 when INPUT(5) = '1' else 
 4 when INPUT(4) = '1' else 
 3 when INPUT(3) = '1' else 
 2 when INPUT(2) = '1' else 
 1 when INPUT(1) = '1' else 
 0; 
 
 VALIDO <= INPUT(7) or INPUT(6) or INPUT(5) or INPUT(4) 
 or INPUT(3) or INPUT(2) or INPUT(1) or INPUT(0); 
 
end SIMPLES; 
 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas DigitaisGuia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 7 
 
-- Circuito 4: 
-- Decodificador funcionalmente equivalente ao C.I. TTL 74LS138 
-- Versão A 
 
 
Entity LS74138A is 
 port ( a: in bit_vector(5 downto 0); 
 y: out bit_vector(7 downto 0) ); 
end LS74138A; 
 
-- a(5), a(4) e a(3) são as entradas de habilitação. 
-- a(5) é ativa no nível alto, enquanto que a(4) e a(3) são ativas 
-- no nível baixo. 
-- a(2), a(1) e a(0) são as entradas de dados, em binário. 
-- Y(7) a y(0) são as saídas de dados decodificadas, ativas no nível baixo. 
 
Architecture simples of LS74138A is 
 begin 
 with a select 
 y <= "11111110" when "100000", 
 "11111101" when "100001", 
 "11111011" when "100010", 
 "11110111" when "100011", 
 "11101111" when "100100", 
 "11011111" when "100101", 
 "10111111" when "100110", 
 "01111111" when "100111", 
 "11111111" when others; 
end simples; 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 8 
 
-- Circuito 5: 
-- Decodificador funcionalmente equivalente ao C.I. TTL 74LS138 
-- Versão B 
 
 
Entity LS74138B is 
 port ( A0, A1, A2, E1, E2, E3: in bit; 
 y: out bit_vector(7 downto 0) ); 
end LS74138B; 
 
-- E1, E2, E3 são as entradas de habilitação. 
-- E3 é ativa no nível alto, enquanto que E1 e E2 são ativas no nível baixo. 
-- A0, A1 e A2 são as entradas de dados, em binário, onde A2 é o bit mais 
significativo. 
-- y(7) a y(0) são as saídas de dados decodificadas, ativas no nível baixo. 
 
Architecture equacoes of LS74138B is 
 begin 
 y(7) <= (E1 or E2 or not E3) or (not A0 or not A1 or not A2); 
 y(6) <= (E1 or E2 or not E3) or ( A0 or not A1 or not A2); 
 y(5) <= (E1 or E2 or not E3) or (not A0 or A1 or not A2); 
 y(4) <= (E1 or E2 or not E3) or ( A0 or A1 or not A2); 
 y(3) <= (E1 or E2 or not E3) or (not A0 or not A1 or A2); 
 y(2) <= (E1 or E2 or not E3) or ( A0 or not A1 or A2); 
 y(1) <= (E1 or E2 or not E3) or (not A0 or A1 or A2); 
 y(0) <= (E1 or E2 or not E3) or ( A0 or A1 or A2); 
end equacoes; 
 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 9 
 
Experimento de Laboratório 
 
Cada grupo deverá implementar, no kit DE2, um codificador ou decodificador, conforme o 
seguinte critério: 
 
Grupo I: Circuito 1 
Grupo II: Circuito 2 
Grupo III: Circuito 5 
Grupo IV: Circuito 4 
 
Sequência do experimento: 
 
a) Se isso ainda não foi feito, crie, no diretório C:\ do Windows, uma pasta denominada 
dddhhmmGx, onde: 
ddd: Dia da semana em que ocorre a aula (seg, ter, qua, qui, sex, sab) 
hhmm: Horário de início da aula (0700, 0850, 1040, 1330, etc.) 
x: Número do grupo, conforme o número da bancada correspondente (I, II, III, IV) 
 
b) Usando o software Quartus II, crie um projeto (“project”) denominado cod_decod na pasta 
criada no item a. A entidade de mais alto nível de seu projeto deverá ter o mesmo nome da 
entidade (“entity”) do código VHDL. Escolha a família de dispositivos Cyclone II e o 
dispositivo EP2C35F672C6. 
 
c) Crie um novo arquivo de entrada de projeto (“design”) em VHDL (New  Design Files  
VHDL file). Copie deste roteiro o código correspondente ao seu grupo e cole-o no arquivo 
criado. Edite se necessário. 
 
d) Salve o código no diretório de seu projeto (“Project”), com a extensão “.vhd” e o mesmo 
nome da entidade (“entity”) do seu código VHDL. Por exemplo, para o Circuito 1 o arquivo 
deverá ser salvo como “LS74148A.vhd”. 
 
e) Altere o nome da entidade de mais alto nível de seu projeto para o nome do arquivo VHDL 
que estiver sendo editado (com o arquivo aberto na tela, faça: Project  Set as Top Level 
Entity). 
 
f) Compile seu “design” (Processing  Start Compilation). Caso ocorram mensagens de erro, 
corrija-os editando seu “design” e compilando novamente, até que não ocorram mais erros. 
 
g) Leia cuidadosamente as mensagens de aviso (“Warning”), pois algumas dessas mensagens 
podem ser muito importantes. 
 
h) Caso ocorra o aviso: “Warning: The Reserve All Unused Pins setting has not been specified, 
and will default to 'As output driving ground'”, deve-se obrigatoriamente mudar para: “As 
input tri-stated”, para evitar o risco de causar danos ao kit DE2. (Assignments  Device  
Device and Pin Options  Unused Pins  As input tri-stated  OK  OK). Compile 
novamente o “design”, assegurando-se de que o aviso não aparece mais. 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 10 
 
 
i) Os avisos “Warning: Feature LogicLock is only available with a valid subscription license. 
Please purchase a software subscription to gain full access to this feature” e “Warning: 
Found 5 output pins without output pin load capacitance assignment” não são importantes 
para nosso projeto. 
 
j) Quando o projeto foi criado, pode ser que tenha sido informado ao Quartus II que a entidade 
de mais alto nível era “cod_decod”. Posteriormente, o nome da entidade de maior nível foi 
alterado e a entidade “cod_decod” passou a não existir mais em nosso projeto. Se isso 
ocorreu, pode ocorrer o aviso “Warning: Ignored assignments for entity "cod_decod" -- 
entity does not exist in design”, que deverá ser desconsiderado. 
 
k) Se desejado, o Quartus II pode mostrar um diagrama do circuito que ele gerou a partir da 
descrição do circuito compilada, que corresponde à entidade de mais alto nível do projeto 
(Tools  Netlist Viewers  RTL Viewer). Esse diagrama poderá conter diversos símbolos 
de circuitos que ainda não foram estudados nesta disciplina, tais como multiplexadores. 
Conforme será visto em aulas seguintes, os multiplexadores são um tipo de circuitos 
“coringa”, que podem ser utilizados como peças na montagem de circuitos mais complexos 
 
l) Também poderá ser feita uma simulação do funcionamento do circuito, através da 
observação de formas de onda de saída geradas pelo Quartus II a partir das formas de onda 
de entrada desenhadas pelo projetista (New  Verification/Debugging Files  Vector 
Waveform Files). Com a prática, o usuário poderá tornar-se hábil na edição de formas de 
onda adequadas para a simulação de um circuito. 
 
m) Nos experimentos deste laboratório que envolvem FPGA, os circuitos utilizarão, como 
entradas e como saídas, os recursos físicos disponíveis no kit DE2 (chaves, botões, LEDs, 
displays, etc.). Deve-se lembrar que esses recursos já estão fisicamente conectados a pinos 
muito bem definidos do FPGA. Portanto, neste momento é indispensável decidir quais os 
recursos do kit DE2 serão usados na implementação. Como exemplo, na implementação de 
um codificador compatível com o C.I. TTL 74LS148 poderíamos decidir da seguinte forma: 
 
Entradas: 
INPUT[7] – INPUT[0]: SW7 – SW0 
EI: SW17 
 
Saídas: 
EO: LEDR[17] 
GS: LEDG[0] 
A[2] – A[0]: LEDR[2] – LEDR[0] 
 
n) As tabelas mostrando como os recursos do kit DE2 estão ligados aospinos do FPGA podem 
ser encontradas no documento DE2 User Manual. No exemplo, a entrada INPUT[7] deverá 
ser vinculada ao pino “PIN_C13” do FPGA, a entrada INPUT[6] deverá ser vinculada ao 
pino “PIN_AC13”, e assim por diante. 
 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
Laboratório de Sistemas Digitais Janeiro 2014 Página 11 
 
o) Para vincular os “pinos” de entrada e de saída do projeto aos pinos físicos do FPGA: 
(Assignments  Pins). Dar um clique duplo em “Location”, na linha correspondente a cada 
pino (“node”), e digitar o nome do pino correspondente no FPGA. Compile novamente o 
projeto. 
 
p) Configuração (“programação”) do kit DE2. 
 
1. Certifique-se de que a chave RUN/PROG do kit DE2 esteja na posição RUN. Ligue a 
entrada “USB Blaster” do kit DE2 ao computador, utilizando para isso um cabo USB. 
Conecte o kit DE2 a uma fonte de energia 127V A.C. e ligue-o (botão vermelho). 
2. O FPGA pode agora ser configurado, utilizando o módulo de programação do Quartus II 
(Tools  Programmer) e selecionando o arquivo de configuração adequado, com a 
extensão “sof” (SRAM Object File). 
 
q) Concluída a configuração, o circuito desenvolvido já poderá ser utilizado. 
 
 
 
 
Trabalho para casa: 
 
a) Utilizando PLD, o ambiente Quartus II a e linguagem VHDL, projete e simule o 
funcionamento de um codificador decádico (ou seja, com dez linhas de entrada). Não é 
necessário fazer a implementação física do circuito no kit DE2. 
 
b) Utilizando PLD, o ambiente Quartus II a e linguagem VHDL, projete e simule o 
funcionamento de um decodificador para códigos BCD. Entradas inválidas não deverão 
ativar qualquer saída. Não é necessário fazer a implementação física do circuito no kit DE2.

Outros materiais

Outros materiais