CEFET Departamento de Engenharia Elétrica - DEPEL GELE 7163 Eletrônica Digital Parte # 3 - Circuitos Combinatórios 1
GELE 7163 Eletrônica Digital 2 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, 10 a 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.
GELE 7163 Eletrônica Digital 3 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 << 2 n. Um n m PLA com p termos produto contém p portas AND de 2n-entradas e m portas OR de p-entradas.
GELE 7163 Eletrônica Digital 4 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.
GELE 7163 Eletrônica Digital 5 2 - Programmable Logic Array (PLA) Um 4 3 PLA com 6 termos produto.
GELE 7163 Eletrônica Digital 6 2 - Programmable Logic Array (PLA) Representação compacta do 4 3 PLA com 6 termos produto.
GELE 7163 Eletrônica Digital 7 2 - Programmable Logic Array (PLA) O1 = I1.I2 + I1. I2. I3. I4 O2 = I1. I3 + I1.I3.I4 + I2 O3 =?
GELE 7163 Eletrônica Digital 8 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.
GELE 7163 Eletrônica Digital 9 2 - Programmable Array Logic (PAL) PAL16L8 Parte de um diagrama lógico do PAL 16L8.
GELE 7163 Eletrônica Digital 10 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-2 n (decodificador binário). Apenas uma das 2 n saídas é ativada de acordo com a entrada de n bits.
GELE 7163 Eletrônica Digital 11 2 - Exemplo: Decodificadores 2-para-4
GELE 7163 Eletrônica Digital 12 2 - Outro Exemplo: Decodificadores 74 139 O CI 74 139 possui dois decodificadores independentes 2-para-4.
GELE 7163 Eletrônica Digital 13 2 - Mais um Outro Exemplo: Decodificadores 74 138 O CI 74 138 possui um decodificador 3-para-8.
GELE 7163 Eletrônica Digital 14 2 - Combinação de Decodificadores Decodificadores podem ser combinados (cascateados de forma hierárquica) para decodificar palavras maiores. Um decodificador 4-para-16 (= 2 4 ) 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.
GELE 7163 Eletrônica Digital 15 2 - Exemplo: Decodificador de 4-para-16 U1 é habilitado quando N3 = 0 e U2 é habilitado quando N3 = 1.
GELE 7163 Eletrônica Digital 16 2 - Exemplo: Decodificador de 5-para-32
GELE 7163 Eletrônica Digital 17 2 - Decodificador em VHDL Descrição estrutural equivalente ao circuito:
GELE 7163 Eletrônica Digital 18 2 - Decodificador em VHDL
GELE 7163 Eletrônica Digital 19 2 - Decodificador em VHDL Fluxo de Dados
GELE 7163 Eletrônica Digital 20 2 - Decodificador em VHDL Método Comportamental
GELE 7163 Eletrônica Digital 21 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.
GELE 7163 Eletrônica Digital 22 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.
GELE 7163 Eletrônica Digital 23 2 - Tabela Verdade para os Exercícios 1 e 2
GELE 7163 Eletrônica Digital 24 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 2 n -para-n (codificador binário). Ele tem função oposta ao decodificador binário. Apenas 1 entrada é ativada por vez.
GELE 7163 Eletrônica Digital 25 2 - Codificadores 8-para-3 Equações para um codificador 8-para-3: Y 2 Y 1 Y 0 0 0 0 I0 0 0 1 I1 Y 0 = I1 + I3 + I5 + I7 0 1 0 I2 0 1 1 I3 Y 1 = I2 + I3 + I6 + I7 1 0 0 I4 1 0 1 I5 Y 2 = I4 + I5 + I6 + I7 1 1 0 I6 1 1 1 I7
GELE 7163 Eletrônica Digital 26 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.
GELE 7163 Eletrônica Digital 27 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 for ativada (IDLE = I0. I1. I2. I3. I4. I5. I6. I7).
GELE 7163 Eletrônica Digital 28 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 = log 2 (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.
GELE 7163 Eletrônica Digital 29 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) EN L é ativa em nível baixo. Duas versões da saída (H) e (L).
GELE 7163 Eletrônica Digital 30 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) G L é ativa em nível baixo. Duas versões da saída (H) e (L).
GELE 7163 Eletrônica Digital 31 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 = 2 S saídas de dados.
GELE 7163 Eletrônica Digital 32 2 - MUXs em VHDL Fluxo de Dados É fácil descrever multiplexadores em VHDL. Declaração SELECT!
GELE 7163 Eletrônica Digital 33 2 - MUXs em VHDL Descrição Comportamental Declaração CASE!
GELE 7163 Eletrônica Digital 34 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.Ȳ.
GELE 7163 Eletrônica Digital 35 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.
GELE 7163 Eletrônica Digital 36 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).
GELE 7163 Eletrônica Digital 37 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:
GELE 7163 Eletrônica Digital 38 2 - Paridade - VHDL - Comportamental Uma função de paridade de 9-entradas pode ser descrita por:
GELE 7163 Eletrônica Digital 39 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).
GELE 7163 Eletrônica Digital 40 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.
GELE 7163 Eletrônica Digital 41 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:
GELE 7163 Eletrônica Digital 42 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: AGTBOUT = (A > B) + (A = B).AGTBIN AEQBOUT = (A = B).AEQBIN ALTBOUT = (A < B) + (A = B).ALTBIN
GELE 7163 Eletrônica Digital 43 2 - Exemplo: Comparador de 12-Bits 74 85 Três 74 85 resultando em um comparador de 12-bits:
GELE 7163 Eletrônica Digital 44 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.
GELE 7163 Eletrônica Digital 45 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.
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
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, COUT = X.Y + X.CIN + Y.CIN
GELE 7163 Eletrônica Digital 48 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).
GELE 7163 Eletrônica Digital 49 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, BOUT = X.Y + X.BIN + Y.BIN. Estas equações são similares as equações do somador completo: D = X Ȳ BIN, BOUT = X.Ȳ + X. BIN + Ȳ. BIN Um subtrator completo pode ser construído a partir de um somador completo. X Y = X + ( Y ) = X + (Ȳ + 1)
GELE 7163 Eletrônica Digital 50 2 - Subtrator de Palavras Binárias
GELE 7163 Eletrônica Digital 51 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.
GELE 7163 Eletrônica Digital 52 2 - Exemplo: ALU 74 181
GELE 7163 Eletrônica Digital 53 2 - Exemplo: ALU - VHDL
GELE 7163 Eletrônica Digital 54 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.
GELE 7163 Eletrônica Digital 55 2 - Multiplicadores - Abordagem Tradicional
GELE 7163 Eletrônica Digital 56 2 - Multiplicadores - Abordagem Tradicional
GELE 7163 Eletrônica Digital 57 2 - Multiplicadores - VHDL