Parte # 3 - Circuitos Combinatórios

Transcrição

Parte # 3 - Circuitos Combinatórios
CEFET
Departamento de Engenharia Elétrica - DEPEL
GELE 7163 Eletrônica Digital
Parte # 3 - Circuitos Combinatórios
Prof. Alessandro Jacoud Peixoto
1
GELE 7163 Eletrônica Digital
Referências :
• Notas de Aula.
• Mendonça, Alexandre e Zelenovsky, Ricardo, Eletrônica Digital: Curso Prático
e Exercı́cios, MZ Editora Ltda, 2004, ISBN: 85-87385-10-0.
• Tocci, R.J., Widmer, N.S., Moss, G.L. - Sistemas Digitais, Princı́pios e
Aplicações, 10a Edição, São Paulo: Pearson Prentice Hall, 2007, 804 p., ISBN
9788576050957.
• Ercegovac, Milos , Lang, Tomas - Introdução aos Sistemas Digitais - Bookman.
• Wakerly, John F., Digital Designs Principles and Practices, 3o edição, Prentice
Hall, 1990.
Prof. Alessandro Jacoud Peixoto
2
GELE 7163 Eletrônica Digital
3 - Programmable Logic Array (PLA)
• Um PLA é um dispositivo combinacional com 2 nı́veis de AND-OR que pode
ser programado para realizar qualquer expressão lógica de soma-de-produtos.
• Um PLA é limitado por: (i) Número de entradas (n), (ii) Número de saı́das
(m), (iii) Número de termos produto (p).
• Utiliza-se a nomenclatura: “n × m PLA com p termos produto”. Geralmente,
p << 2n .
• Um n × m PLA com p termos produto contém p portas AND de 2n-entradas e
m portas OR de p-entradas.
Prof. Alessandro Jacoud Peixoto
3
GELE 7163 Eletrônica Digital
2 - Programmable Logic Array (PLA)
• É o primeiro PLD (Programmable Logic Device).
• Cada entrada é conectada a um buffer que produz duas versões: original e
complementar.
• Conexões potenciais são indicadas por um ×.
• As conexões são feitas por fusı́veis.
Prof. Alessandro Jacoud Peixoto
4
GELE 7163 Eletrônica Digital
2 - Programmable Logic Array (PLA)
• Um 4 × 3 PLA com 6 termos produto.
Prof. Alessandro Jacoud Peixoto
5
GELE 7163 Eletrônica Digital
2 - Programmable Logic Array (PLA)
Representação compacta do 4 × 3 PLA com 6 termos produto.
Prof. Alessandro Jacoud Peixoto
6
GELE 7163 Eletrônica Digital
7
2 - Programmable Logic Array (PLA)
¯ I2.
¯ I3.
¯ I4
¯
O1 = I1.I2 + I1.
Prof. Alessandro Jacoud Peixoto
¯ + I1.I3.I4
¯
O2 = I1.I3
+ I2
O3 =?
GELE 7163 Eletrônica Digital
2 - Programmable Array Logic (PAL)
• Um dispositivo PAL possui uma matriz fixa de portas OR e termos produto não
são compartilhados pelas saı́das.
• Um PAL é geralmente mais rápido do que um PLA similar.
Prof. Alessandro Jacoud Peixoto
8
GELE 7163 Eletrônica Digital
2 - Programmable Array Logic (PAL) – PAL16L8
Parte de um diagrama lógico do PAL 16L8.
Prof. Alessandro Jacoud Peixoto
9
GELE 7163 Eletrônica Digital
2 - Decodificadores
• Um decodificador é um circuito que converte entradas codificadas em saı́das
codificadas.
• Geralmente, a entrada possui menos bits do que a saı́da.
• O decodificador mais usado é o decodificador n-para-2n (decodificador binário).
• Apenas uma das 2n saı́das é ativada de acordo com a entrada de n bits.
Prof. Alessandro Jacoud Peixoto
10
GELE 7163 Eletrônica Digital
2 - Exemplo: Decodificadores 2-para-4
Prof. Alessandro Jacoud Peixoto
11
GELE 7163 Eletrônica Digital
2 - Outro Exemplo: Decodificadores 74 × 139
O CI 74 × 139 possui dois decodificadores independentes 2-para-4.
Prof. Alessandro Jacoud Peixoto
12
GELE 7163 Eletrônica Digital
2 - Mais um Outro Exemplo: Decodificadores 74 × 138
O CI 74 × 138 possui um decodificador 3-para-8.
Prof. Alessandro Jacoud Peixoto
13
GELE 7163 Eletrônica Digital
2 - Combinação de Decodificadores
• Decodificadores podem ser combinados (cascateados de forma hierárquica)
para decodificar palavras maiores.
• Um decodificador 4-para-16 (= 24 ) pode ser construı́do com dois
decodificadores de 2-para-4.
• Um decodificador 5-para-32 pode ser construı́do com um decodificador de
2-para-4 e quatro decodificadores de 3-para-8.
Prof. Alessandro Jacoud Peixoto
14
GELE 7163 Eletrônica Digital
2 - Exemplo: Decodificador de 4-para-16
U1 é habilitado quando N 3 = 0 e U2 é habilitado quando N 3 = 1.
Prof. Alessandro Jacoud Peixoto
15
GELE 7163 Eletrônica Digital
2 - Exemplo: Decodificador de 5-para-32
Prof. Alessandro Jacoud Peixoto
16
GELE 7163 Eletrônica Digital
2 - Decodificador em VHDL
Descrição estrutural equivalente ao circuito:
Prof. Alessandro Jacoud Peixoto
17
GELE 7163 Eletrônica Digital
2 - Decodificador em VHDL
Prof. Alessandro Jacoud Peixoto
18
GELE 7163 Eletrônica Digital
2 - Decodificador em VHDL – Fluxo de Dados
Prof. Alessandro Jacoud Peixoto
19
GELE 7163 Eletrônica Digital
2 - Decodificador em VHDL – Método Comportamental
Prof. Alessandro Jacoud Peixoto
20
GELE 7163 Eletrônica Digital
2 - Decodificadores de 7 Segmentos
• Um display de 7-segmentos é usado em relógios, calculadoras e outros
dispositivos para mostrar dados decimais. Um dı́gito é mostrado iluminando
um subconjunto dos 7 segmentos.
• Decodificador de 7-segmentos
– entrada: 4-bit BCD
– saı́da: código de 7-segmentos.
Prof. Alessandro Jacoud Peixoto
21
GELE 7163 Eletrônica Digital
2 - Decodificadores de 7 Segmentos: Exercı́cios
• Ex1: Obter as expressões minimizadas para as saı́das do decodificador de
7-segmentos.
• Ex2: Escrever uma descrição comportamental VHDL para o decodificador de
7-segmentos.
Prof. Alessandro Jacoud Peixoto
22
GELE 7163 Eletrônica Digital
2 - Tabela Verdade para os Exercı́cios 1 e 2
Prof. Alessandro Jacoud Peixoto
23
GELE 7163 Eletrônica Digital
2 - Codificadores
• Um codificador é um circuito cujo código de saı́da possui normalmente menos
bits do que o código de entrada.
• O codificador mais simples é o 2n -para-n (codificador binário). Ele tem função
oposta ao decodificador binário. Apenas 1 entrada é ativada por vez.
Prof. Alessandro Jacoud Peixoto
24
GELE 7163 Eletrônica Digital
25
2 - Codificadores 8-para-3
Equações para um codificador 8-para-3:
Y2 Y1
Y0
0
0
0
I0
0
0
1
I1
0
1
0
I2
0
1
1
I3
1
0
0
I4
1
0
1
I5
1
1
0
I6
1
1
1
I7
Prof. Alessandro Jacoud Peixoto
Y 0 = I1 + I3 + I5 + I7
Y 1 = I2 + I3 + I6 + I7
Y 2 = I4 + I5 + I6 + I7
GELE 7163 Eletrônica Digital
2 - Codificadores de Prioridade
• Para implementar pedidos de interrupção (por exemplo), o codificador binário
não funciona! Ele assume que apenas 1 entrada está ativa por vez.
• Quando vários pedidos ocorrem simultaneamente (ou não), um codificador com
prioridade produz o número referente ao pedido de prioridade mais alta.
Prof. Alessandro Jacoud Peixoto
26
GELE 7163 Eletrônica Digital
2 - Codificadores de Prioridade
• A entrada I7 tem prioridade mais alta. Saı́das A2-A0 contém o número da
entrada ativa de maior prioridade. A saı́da IDLE é ativada se nenhuma entrada
¯ I1.
¯ I2.
¯ I3.
¯ I4.
¯ I5.
¯ I6.
¯ I7).
¯
for ativada (IDLE = I0.
Prof. Alessandro Jacoud Peixoto
27
GELE 7163 Eletrônica Digital
2 - Multiplexadores (MUX)
• Um MUX é uma chave digital que conecta dados de n fontes para a sua saı́da.
A entrada SEL seleciona entre as n fontes ⇒ s = ⌈log2 (n)⌉. Se
EN = 0 ⇒ Y = 0. Se EN = 1 o MUX está habilitado.
• Multiplexadores são usados em computadores para selecionar entre os vários
conjuntos de registradores aquele que deve ser conectado a ULA.
Prof. Alessandro Jacoud Peixoto
28
GELE 7163 Eletrônica Digital
2 - MUX – Exemplo 74 × 151
• Um CI 74 × 151 possui um MUX de 8-entradas e 1-saı́da. As entradas de
seleção são chamadas A,B,C, onde C é o bit MSB. A entrada enable (habilita)
ENL é ativa em nı́vel baixo. Duas versões da saı́da (H) e (L).
Prof. Alessandro Jacoud Peixoto
29
GELE 7163 Eletrônica Digital
2 - MUX – Outro Exemplo 74 × 157
• Um CI 74 × 157 possui um MUX de 2-entradas de 4 bits cada e 1-saı́da de 4
bits. A entrada de seleção é S. A entrada enable (habilita) GL é ativa em nı́vel
baixo. Duas versões da saı́da (H) e (L).
Prof. Alessandro Jacoud Peixoto
30
GELE 7163 Eletrônica Digital
2 - MUXs e Demultiplexadores (DMUXs)
• Um multiplexador (MUX) pode ser usado para selecionar uma fonte de dados
(de n fontes possı́veis) que deve ser transmitida através de um barramento.
• Um demultiplexador (DMUX) pode ser usado para rotear o barramento para
um destino (de m destinos possı́veis) – função inversa do MUX.
• Um DMUX de 1-entrada e n-saı́das possui 1 entrada de dados e S-entradas
para selecionar uma das n = 2S saı́das de dados.
Prof. Alessandro Jacoud Peixoto
31
GELE 7163 Eletrônica Digital
2 - MUXs em VHDL – Fluxo de Dados
• É fácil descrever multiplexadores em VHDL. Declaração SELECT !
Prof. Alessandro Jacoud Peixoto
32
GELE 7163 Eletrônica Digital
2 - MUXs em VHDL – Descrição Comportamental
• Declaração CASE !
Prof. Alessandro Jacoud Peixoto
33
GELE 7163 Eletrônica Digital
2 - Funções XOR e XNOR
• Uma porta Exclusive-OR (XOR) é uma porta de 2-entradas (X e Y ) cuja saı́da
é 1 se as entradas forem de ”paridade” distinta (01 ou 10).
• Uma porta Exclusive-NOR (XNOR) é apenas o oposto: saı́da = 1 se X = Y .
• A operação XOR usa o sı́mbolo ⊕: X ⊕ Y = (X + Y ).(X̄ + Ȳ ) = X̄.Y + X.Ȳ .
Prof. Alessandro Jacoud Peixoto
34
GELE 7163 Eletrônica Digital
2 - Sı́mbolos para as funções XOR e XNOR
• Dois sinais quaisquer (entradas ou saı́da) de uma porta XOR ou XNOR pode
ser complementada sem mudança da função lógica resultante.
Prof. Alessandro Jacoud Peixoto
35
GELE 7163 Eletrônica Digital
2 - XOR e Circuitos de Paridade
• N portas XOR podem ser cascateadas para formarem um circuito com N + 1
entradas e uma única saı́da que é 1 se um número ı́mpar de entradas for 1
(circuito de paridade ı́mpar – ODD).
• Se a saı́da de qualquer um dos circuitos for invertida obtém-se um circuito de
paridade par (EVEN).
Prof. Alessandro Jacoud Peixoto
36
GELE 7163 Eletrônica Digital
2 - Paridade - VHDL - Fluxo de Dados
• VHDL fornece os operadores primitivos xor e xnor.
• Um dispositivo XOR de 3-entradas pode ser descrito em VHDL por:
Prof. Alessandro Jacoud Peixoto
37
GELE 7163 Eletrônica Digital
2 - Paridade - VHDL - Comportamental
• Uma função de paridade de 9-entradas pode ser descrita por:
Prof. Alessandro Jacoud Peixoto
38
GELE 7163 Eletrônica Digital
2 - Comparadores
• Um comparador é um circuito que indica se 2 palavras binárias são iguais.
• Comparadores de magnitude interpretam suas entradas como números com ou
sem sinais e indica uma relação de ordem entre eles (maior ou menor que).
• Exemplo 7485: Portas XOR e XNOR podem ser vistas como comparadores de
1-bit (A saı́da DIFF é ativada se as entradas são diferentes).
Prof. Alessandro Jacoud Peixoto
39
GELE 7163 Eletrônica Digital
2 - Comparador de 4-Bits
• A saı́da DIFF é ativada se qualquer um dos pares de bits de entrada forem
diferentes. Este circuito pode ser facilmente adaptado para qualquer número de
bits por palavra.
Prof. Alessandro Jacoud Peixoto
40
GELE 7163 Eletrônica Digital
2 - Comparador Iterativo
• Dois valores X e Y de n-bits podem ser comparados usando um circuito
combinacional (circuito iterativo) com a seguinte estrutura:
• Cada bloco pode ser implementado da seguinte forma:
Prof. Alessandro Jacoud Peixoto
41
GELE 7163 Eletrônica Digital
2 - Exemplo: Comparador de 4-Bits – 74 × 85
• O 74 × 85 fornece uma saı́da maior-que (Greater Than), uma saı́da menor-que
(Lower Than) e uma saı́da igual-a (Equal To). Além disso, possui entradas em
para combinar múltiplos chips e criar comparadores com mais de 4 bits:
–
AGT BOU T = (A > B) + (A = B).AGT BIN
–
AEQBOU T = (A = B).AEQBIN
–
ALT BOU T = (A < B) + (A = B).ALT BIN
Prof. Alessandro Jacoud Peixoto
42
GELE 7163 Eletrônica Digital
2 - Exemplo: Comparador de 12-Bits – 74 × 85
• Três 74 × 85 resultando em um comparador de 12-bits:
Prof. Alessandro Jacoud Peixoto
43
GELE 7163 Eletrônica Digital
2 - Circuito Iterativo Genérico
• O circuito contém n módulos idênticos, cada um tem entradas e saı́das
primárias e em cascata. As primeiras entradas em cascata são geralmente
conectadas a valores fixos.
Prof. Alessandro Jacoud Peixoto
44
GELE 7163 Eletrônica Digital
2 - Comparadores – VHDL
• VHDL possui operadores de comparação para todos os tipos pré-definidos.
Igualdade (=) e diferença (/ =) são aplicáveis a todos os tipos.
• Para tipos matriz e record, os operandos devem possuir tamanho e estrutura
iguais, e os operandos são comparados componente por componente.
• Outros operadores de comparação VHDL (>, <, >=, <=) são aplicáveis
somente a inteiros, tipos enumerados e matrizes unidimensionais de tipos
enumerados ou de inteiros.
Prof. Alessandro Jacoud Peixoto
45
GELE 7163 Eletrônica Digital
46
2 - Somadores - Meio Somador (2-Bits)
• O somador mais simples, chamado de half adder (meio somador), adiciona dois
operandos de 1-bit X e Y, produzindo uma soma de 2-bits.
• A soma pertence à faixa de 0 a 2, o que exige dois bits
(0 + 0 = 00 , 0 + 1 = 01 , 1 + 0 = 01 , 1 + 1 = 10).
• O bit menos significativo da soma é chamado de HS (half sum):
HS = X ⊕ Y = X.Ȳ + X̄.Y
• O bit mais significativo da soma é chamado de CO (carry out – vai um):
CO = X.Y
Prof. Alessandro Jacoud Peixoto
GELE 7163 Eletrônica Digital
47
2 - Somadores - Somador Completo (3-Bits)
• Full adder (somador completo): Além dos bits de entrada X e Y, um somador
completo possui mais um bit de entrada – o bit carry-in (ou vem um) CIN.
• A soma dos 3 bits pertence à faixa de 0 a 3 ⇒ bastam 2 bits.
• Note que: S = X ⊕ Y ⊕ CIN ,
Prof. Alessandro Jacoud Peixoto
COU T = X.Y + X.CIN + Y.CIN
GELE 7163 Eletrônica Digital
2 - Somador de Palavras Binárias
• Duas palavras de n bits podem ser somadas usando um somador em cascata.
• O CIN do estágio somador completo menos significativo (c0) é colocado em 0
e o COUT de cada estágio é conectado ao CIN do próximo (mais significativo).
Prof. Alessandro Jacoud Peixoto
48
GELE 7163 Eletrônica Digital
2 - Subtratores
• A operação de subtração binária é análoga à operação de adição.
• Subtrator completo: entradas X (minuendo), Y (subtraendo) e BIN (borrow in
- toma emprestado) e saı́das D (diferença) e BOUT (borrow out-empresta).
• As seguintes equações podem ser escritas:
D = X ⊕ Y ⊕ BIN , BOU T = X̄.Y + X̄.BIN + Y.BIN .
• Estas equações são similares as equações do somador completo:
¯ , BOU T = X.Ȳ + X.BIN
¯ + Ȳ .BIN
¯
D = X ⊕ Ȳ ⊕ BIN
• Um subtrator completo pode ser construı́do a partir de um somador completo.
X − Y = X + (−Y ) = X + (Ȳ + 1)
Prof. Alessandro Jacoud Peixoto
49
GELE 7163 Eletrônica Digital
2 - Subtrator de Palavras Binárias
Prof. Alessandro Jacoud Peixoto
50
GELE 7163 Eletrônica Digital
2 - Arithmetic and Logic Unit (ALU)
• Uma Unidade Lógica e Aritmética (ULA) é um circuito combinacional que
pode realizar várias operações lógicas e aritméticas em 2 operandos de n-bits.
• A operação a ser realizada é especificada por um conjunto de entradas de
seleção de funções.
• As (MSI) ALUs tı́picas possuem operandos de 4-bits e 3 a 5 entradas de
seleção de funções (até 32 funções diferentes).
• Um CI 74 × 181 possui uma ALU de 4-bits. A operação realizada é selecionada
pelas entradas M (operação aritmética ou lógica) e S3-S0.
Prof. Alessandro Jacoud Peixoto
51
GELE 7163 Eletrônica Digital
2 - Exemplo: ALU 74 × 181
Prof. Alessandro Jacoud Peixoto
52
GELE 7163 Eletrônica Digital
2 - Exemplo: ALU - VHDL
Prof. Alessandro Jacoud Peixoto
53
GELE 7163 Eletrônica Digital
2 - Multiplicadores
• A maioria das abordagens para multiplicadores utiliza o algoritmo tradicional
para obter o resultado ⇒ deslocamentos e adição.
⇒
Entretanto, não é a única solução !!!
• Dadas 2 entradas X e Y de n bits, pode-se escrever uma tabela verdade que
expressa o produto P = X × Y de 2n bits e implementar P (X, Y ) como uma
função combinacional de X e Y.
Prof. Alessandro Jacoud Peixoto
54
GELE 7163 Eletrônica Digital
2 - Multiplicadores - Abordagem Tradicional
Prof. Alessandro Jacoud Peixoto
55
GELE 7163 Eletrônica Digital
2 - Multiplicadores - Abordagem Tradicional
Prof. Alessandro Jacoud Peixoto
56
GELE 7163 Eletrônica Digital
2 - Multiplicadores - VHDL
Prof. Alessandro Jacoud Peixoto
57

Documentos relacionados