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