técnicas digitais i circuitos digitais
Transcription
técnicas digitais i circuitos digitais
Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TECNOLÓGICO - ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA DE TELECOMUNICAÇÕES APOSTILA PARA DISCIPLINAS DE TÉCNICAS DIGITAIS I & CIRCUITOS DIGITAIS (CURSO DE ENGENHARIA DE TELECOMUNICAÇÕES DA UFF) (CURSO DE BACHARELADO EM INFORMÁTICA DA UFF) 2º PARTE (Versão 0) Profª Carmen Maria Costa de Carvalho Agosto,2002 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Parte 2 – Circuitos Combinacionais 1-Sistemas Digitais 1.1- Histórico - Circuito Integrado 1.2- Escala de Integração 1.3- Famílias lógicas - Principais características das famílias lógicas 1.4- Encapsulamento 2- Circuitos Combinacionais Básicos 2.1- Padrão de Circuitos Combinacionais 2.2- Somadores e Subtratores 2.2.1- Meio somador (Half-Adder) 2.2.2- Somador Inteiro (Full-Adder) 2.2.3- Somador Inteiro a partir de Meio somador 2.2.4- Somador de 4 bits 2.2.5- Complementador a 2 2.2.6- Subtrator de 4 bits em C2 2.2.7- Subtrator de 4 bits em C1 2.2.8- ULA – Unidade Lógica e Aritmética 2.3- Circuitos Conversores de Código 2.3.1- Apresentação de alguns códigos 2.3.2- Exemplo de Conversores de código 2.4- Codificadores / Decodificadores 2.4.1- Decodificadores 2.4.2- Codificadores 2.4.3- Conversor de Código a partir de Decodificador/Codificador 2.5- Multiplexadores / Demultiplexadores 2.5.1- Multiplexadores 2.5.1.1- Mux como Seletor de Canal 2.5.1.2- Mux como Gerador de Função 2.5.2- Demultiplexadores Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 1-Sistemas Digitais 1.1- Histórico - Circuito Integrado Em um Sistema Digital um componente eletrônico sozinho faz muito pouco. São necessários milhares, centenas de milhares, milhões, para compor as portas e as funções lógicas mais complexas desse sistema. Sendo assim, a velocidade do sistema como um todo, depende da velocidade de operação das portas. - Diferentemente dos sistemas analógicos, nos digitais, o valor real da corrente não é o que importa. Os dispositivos eletrônicos do sistema devem conduzir uma quantidade substancial de corrente ou muito pouca ou nenhuma corrente. Histórico: Dos componentes eletrônicos aos Sistemas Digitais • Até 1955 – os sistemas eram baseados em diodos semicondutores e válvulas a vácuo, apresentando as seguintes características: - diodos: relativamente pequenos (milímetros), dissipando relativamente pouca potência; - válvulas: grandes (vários centímetros), dissipando grandes potências (W). A maioria dos componentes compunha portas a base de diodos e resistores, mas também eram necessárias válvulas em grandes quantidades. - Conseqüência – sistemas digitais enormes, caros, consumindo muita potência. • Por volta de 1955 – foi inventado o transistor que veio substituir as válvulas. - Vantagem - muito menos potência (mW), dimensões da ordem de poucos centímetros. • Até 1965 – os semicondutores eram encapsulados individualmente. - Fabricados através da aplicação repetida de certos processos físicos e químicos à superfície de uma pastilha de silício extremamente puro. - Dispositivo na superfície do silício – da ordem de mícrons Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais - A maior parte da dimensão de um dispositivo encapsulado individualmente envolve e próprio encapsulamento e o suporte mecânico para as conexões elétricas. • Por volta de 1965 – iniciou-se uma série de progressos tecnológicos que levaram à fabricação do circuito integrado (CI). Em um CI, muitos transistores e diodos são fabricados, isto é, integrados, sobre a mesma pastilha de silício; na mesma estrutura são também integrados resistores e até mesmo as interligações para fabricar uma porta completa, muitas portas e até mesmo um sistema digital completo. • No início da década de 80 – os chips já atingem o ponto de se obter um circuito que coubesse na palma da mão, dissipando em torno de 1W e superando sistemas existentes há 30 anos que envolviam uma sala cheia de equipamento e consumiam milhares de watts. • Nos dias de hoje, os C.I.’s tornaram-se indispensáveis, pois com sua utilização os sistemas tiveram seus custos extremamente reduzidos e bem mais confiáveis. 1.2- Escala de Integração De acordo com a quantidade de portas ou componentes encapsulados em um mesmo chip os C.I.’s comercialmente disponíveis são classificados em: - SSI – small scale integration (baixa escala de integração) - MSI – medium scale integration (integração em média escala) - LSI – large scale integration (integração em larga escala) - VLSI – very large scale integration (integração em muita larga escala) - ULSI – ultra large scale integration (integração em ultra larga escala) A convenção adotada para a composição de cada uma dessas escalas é a seguinte: - SSI – até 12 portas ou até 99 componentes. - MSI – de 13 a 99 portas ou de 100 a 9999 componentes. - LSI – de 100 a 9999 portas ou de 10.000 a 99.999 componentes. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais - VLSI –de 10.000 a 99.999 portas ou de 100.000 a 999.999 componentes. - ULSI – acima de 100.000 portas 1.3- Famílias lógicas - Principais características das famílias lógicas Existe um número de famílias de C.I. que se distinguem umas das outras pelo tipo de dispositivo semicondutor que incorporam e pela maneira como os dispositivos semicondutores (e resistores, quando usados) são interligados para formar portas. Dentre as famílias, podemos citar: DTL (diode-transistor logic) RTL (resistor transistor logic) RCTL (resistor-capacitor transistor logic) HTL (high-thershold logic) TTL (transistor-transistor logic) ECL (emitter-compled logic) MOS logic (metal oxide semicondutor logic) C MOS (complementary MOS) Algumas das famílias acima citadas já estão obsoletas. As mais comumente encontradas são TTL, CMOS e ECL. OBS: A família encontrada no laboratório de Eletrônica do Departamento de Telecomunicações é a TTL. Principais características das famílias lógicas Uma família lógica é caracterizada por vários parâmetros, dos quais quatro se destacam: a) atraso de propagação e tempo de comutação b) dissipação de potência c) capacidade de saída Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais d) margens de ruído a) Atraso de propagação e tempo de comutação Atraso de propagação é o tempo requerido pela saída de uma porta para responder a uma mudança no nível lógico da entrada da porta (microssegundos e nanosegundos). Tempo de comutação é o tempo que uma porta leva para passar do estado 1 para o estado 0 ou vice-versa. b) Dissipação de potência Geralmente é possível melhorar a velocidade de operação (isto é, reduzir os tempos de a), sacrificando a potência. Como mais potência envolve mais correntes, as capacitâncias “parasitas” podem ser carregadas e descarregadas mais rapidamente. Estas capacitâncias parasitas não são introduzidas deliberadamente no circuito, mas são o resultado inevitável das dimensões e geometria do circuito. A disponibilidade de correntes maiores torna possível ligar e desligar as transistores mais rapidamente. Resta saber se o aumento de viabilidade compensa o sacrifício de potência. Produto velocidade X potência – produto do atraso de propagação pela dissipação de potência de uma porta. c) Capacidade de saída Fan-in – é o número total de entradas da porta lógica Fan-out – é o número que expressa a quantidade máxima de portas da mesma família que poderá ser conectada à saída de uma porta lógica. Uma fonte de um sinal digital aplicado à entrada de uma porta deve ser capaz de estabelecer naquela entrada uma ou outra tensão correspondente a um ou outro nível lógico. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Em qualquer um dos níveis a fonte deve satisfazer os requisitos de corrente da porta acionada. Como a saída de uma porta freqüentemente é usada como fonte para a entrada de outra porta é necessário conhecer o FAN-OUT desta porta. Portas lógicas apresentam uma impedância de saída. Ao conectar outras portas a esta, iremos diminuir cada vez mais a impedância de carga do bloco e, por conseguinte, drenaremos uma maior corrente do circuito, alterando assim mais características de limites de tensão de saída. d) Margem de ruído Níveis lógicos ≠ níveis de tensão Os níveis 1 e 0 não correspondem a 1V e 0V e sim a faixas de tensão específicas para cada família. O nível zero corresponde a uma faixa de tensão pequena, abaixo de um certo valor máximo. O nível um corresponde a uma faixa de tensão acima de um valor mínimo e abaixo de um valor máximo. Dentro deste conceito, os fabricantes especificam as seguintes tensões (de entrada e de saída): VOH – tensão de saída mínima que uma porta fornece quando na saída estiver em nível lógico 1. VOL – tensão de saída máxima que uma porta fornece quando na saída estiver um nível lógico 0. VIH – tensão mínima que pode ser aplicada à entrada de uma porta e reconhecida como nível 1. VIL – tensão máxima que pode ser aplicada à entrada de uma porta e reconhecida como nível 0. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 1.4 - Encapsulamento Os C.I. consistem fisicamente de uma pastilha (chip) sobre a qual os elementos lógicos reais são localizados, encapsulado num pacote com somente os pinos de conexão (leads) extendendo-se através da embalagem. Até uma determinada época, os C.I. eram encapsulados de um dos 2 modos abaixo: - flat pack - dual in lim package - DIP Flat pack – é o mais compacto e é destinado a ser permanentemente soldado no circuito impresso, geralmente de cerâmica. DIP – é mais resistente e pode ser encaixado em um soquete. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Hoje existem outras formas de encapsulamento. Este é um assunto para pesquisa dos alunos. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2- Circuitos Combinacionais Básicos 2.1- Padrão de Circuitos Combinacionais Qualquer circuito combinacional pode ser construído a partir dos seguintes passos: ⇒ identificação do problema (entradas e saídas) ⇒ construção da tabela verdade ⇒ obtenção da função (preferencialmente de forma minimizada) ⇒ representação por diagrama de portas Exemplo de padrão de circuitos combinacionais Ex: Construa um circuito capaz de produzir um nível alto na saída S, sempre que for aplicado à uma entrada uma combinação de bits – com 2 bits adjacentes iguais a zero (entrada de 4 bits). ⇒identificação do problema (entradas e saídas) A B C D Entradas S (saída) ⇒construção da tabela verdade A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 ⇒obtenção da função simplificada 00 01 11 10 00 01 11 10 1 1 1 1 1 1 1 1 S= AB+CD+BC Apenas com portas NOR: S = A B + C D + B C = A+B + C+D + B+C S = A+B + C+D + B+C Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais ⇒representação por diagrama de portas O diagrama de portas da função simplificada é obtido com 3 ANDs, 4 Inversores e 1 OR. Abaixo está desenhada a opção que monta o circuito usando apenas portas nor. 2.2- Somadores e Subtratores Os circuitos de somadores são bastante genéricos, podendo-se a partir deles obter a construção de subtratores e também multiplicadores. 2.2.1- Meio somador (Half-Adder) O primeiro circuito aritmético mais básico é o do meio somador (H.A.), pelo fato de poder realizar apenas a soma de dois bits. Neste caso, numa operação como a abaixo, o Meio Somador é o circuito que pode realizar apenas a soma de A0 com B0. C2 C1 C0 A = .......A3 A2 A1 A0 + B = .......B3 B2 B1 B0 C3 S3 S2 S1 S0 Partindo do padrão de circuitos combinacionais, os passos para a geração do Meio Somador são os seguintes: Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais ⇒identificação do problema A0 H.A. B0 ⇒ construção da tabela verdade S0 C0 (carry) ⇒obtenção da função S0 = A0B0 + A0B0 = A0 ⊕ B0 C0 = A0B0 ⇒representação por diagrama de portas ⇒Outra forma possível de representação por portas: A0 0 0 1 1 B0 0 1 0 1 S0 0 1 1 0 C0 0 0 0 1 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.2.2- Somador Inteiro (Full-Adder) Este circuito já é mais genérico, podendo realizar a soma de três bits quaisquer. C n-1 An Bn Cn Sn Seguindo todos os passos do padrão de circuitos combinacionais, tem-se: C n-1 Sn An F.A. Cn Bn An 0 0 0 0 1 1 1 1 B n C n-1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 Sn 0 1 1 0 1 0 0 1 Cn 0 0 0 1 0 1 1 1 Geração de S n AnBn Cn-1 00 01 11 10 0 1 1 1 1 1 S n = A nB nC n-1 + A nB nC n-1 + A nB nC n-1 + A nB nC n-1 S n = A n (B nC n-1 + B nC n-1) + A n (B nC n-1 + B nC n-1) S n = A n (B n ⊕ C n-1) + A n (B n ⊕ C n-1) S n = A n ⊕ (B n ⊕ C n-1) S n = A n ⊕ B n ⊕ C n-1 OU EXCLUSIVO sempre gera a soma das variáveis Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais OBS: Toda vez que no Mapa de Karnaugh todas e somente as mesmas posições do Mapa, de nº ímpar de variáveis verdadeiras estiverem assinaladas tem-se uma EX-OR de todas as variáveis. Quando estiverem assinaladas todas as posições de nº par de variáveis verdadeiras tem-se uma EX-NOR de todas as variáveis. C C AB AB AB AB 1 1 1 1 ABC + ABC + ABC + ABC 1 3 1 0 2 2 2 AnBn Cn-1 00 01 11 10 0 1 1 1 1 1 C n = A nB n + A nC n-1 + B nC n-1 An Bn EX-OR ABC + ABC + ABC + ABC AB AB AB AB C 1 1 C 1 1 Geração de Cn: 1 Cn-1 Sn U1A U1B Cn EX-NOR Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.2.3- Somador Inteiro a partir de Meio somador Pelo circuito acima, verifica-se que ele é obtido através de 2 H.A. e mais algumas portas. Assim: An⊕Bn A nB n Entretanto, observando mais detalhadamente, percebe-se que para se ter estouro (carry), pelo menos duas variáveis precisam ser 1 e isto acontece quando An e Bn são 1 ou quando o carry de entrada e o resultado da soma de An e Bn também são 1. Logo: C n = (A n ⊕ B n) C n-1 + A nB n An 0 0 0 0 1 1 1 1 B n C n-1 A n ⊕ B n (A n ⊕ B n) C n-1 C n 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 E o circuito do F.A. pode ser construído da forma mais reduzida abaixo. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais An⊕Bn A nB n (A n ⊕ B n) C n-1 2.2.4- Somador de 4 bits Utilizando blocos somadores inteiros, um somador para 2 nos binários de 4 bits, corresponde a: C2 C1 C0 A3 A2 A1 A0 + B3 B2 B1 B0 C3 S3 S2 S1 S0 A3 B3 C3 F.A. A2 B2 C2 F.A. A1 B1 C1 S3 S2 Este somador de 4 bits é encontrado em F.A. A0 B0 C0 S1 A F.A. S0 B forma de CI, de número 7483. 7483 7483 S Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Se forem utilizados 2 CI´s 7483, pode-se obter um somador para 2 nos binários de 8 bits cada um. B7 B6 B5 B4 S8 A7 A6 A5 A4 B3 B2 B1 B0 7483 A3 A2 A1 A0 7483 S7 S6 S5 S4 S3 S2 S1 S0 2.2.5- Complementador a 2 De acordo com a análise feita na Parte 1 da Apostila, item 2.2, a subtração pode ser gerada a partir da soma do minuendo com o complemento do subtraendo. Para tal, já que o somador já está definido, resta gerar o circuito que realiza o complemento. Se a subtração for realizada com a técnica de complemento a 2, o circuito a ser gerado é o do Complementador a 2 que é um circuito combinacional e, como tal, pode ser construído da forma padrão abaixo: B3 B2 B1 B0 C3 Complementador a2 C2 C1 C0 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais B3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 B0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 C3 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 C2 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 C1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 C0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 B3B2 00 B1B0 00 01 1 11 1 10 1 01 11 10 1 1 1 1 1 C3 = B3B2 + B3B0 + B3B1 + B3B2B1B0 C3 = B3 (B0 + B1 + B2) + B3 (B0 + B1 + B2) C3 = B3 ⊕ (B0 + B1 + B2) B3B2 B1B0 00 01 11 10 00 01 11 10 1 1 1 1 1 1 1 1 C2 = B2B1B0 + B2B0 + B2B1 C2 = B2 (B1 + B0) + B2 (B1 + B0) C2 = B2 ⊕ (B1 + B0) B3B2 B1B0 00 01 11 10 00 01 1 1 1 1 11 10 1 1 1 1 B3B2 B1B0 00 01 11 10 00 01 1 1 1 1 11 1 1 1 1 10 C1 = B1B0 + B1B0 C1 = B1 ⊕ B0 C0 = B0 Nem precisava ter feito, era só olhar para a tabela. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais C3 = B3 ⊕ (B0 + B1 + B2) C2 = B2 ⊕ (B0 + B1) C1 = B1 ⊕ B0 C0 = B0 B3 ⊕ (B0 + B1 + B2) B3 B2 C3 B0 + B1 + B2 B2 ⊕ (B0 + B1) B1 C2 B0 + B1 B1 ⊕ B0 B0 C1 C0 Outro modo possível de viabilizar o complemento a 2 é aplicando a regra prática de complemento a 2. B3 B2 B1 B0 C0 = B0 C3 C2 C1 C0 C1 = B1B0 + B1B0 Se B0 for 1, C1 = B1 e se B0 = 0 C1 = B1 C1 = B1 ⊕ B0 C2 = B2B1B0 + B2B0 + B2B1 Se B0 = B1 = 0 então C2 = B2 Se B0 = 1, C2 vai ser igual a B2 Se B1 = 1, C2 vai ser igual a B2 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais C3 = B3B2 + B3B0 + B3B1 + B3B2B1B0 Solução para o complemento de um número de n bits: C n = B n ⊕ (B n-1 + B n-2 + ... + B1 + B0) Uma terceira solução é utilizando o postulado matemático que diz: Cb = Cb-1 + 1 Logo: C2 = C1 + 1 C2 = inversor e soma com 1 2.2.6- Subtrator de 4 bits em C2 Considerando Minuendo ≥ Subtraendo Conforme já visto anteriormente, sempre vai ocorrer estouro quando for feita a soma do minuendo com o complemento a 2 do subtraendo, estouro este que poderá ser desprezado para representação do resultado da subtração. Ex: 5 – 3 = 5 + C23 = R M - S = M + C2S=R Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Circuito este que obviamente pode ser simplificado para: Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Considerando Minuendo < Subtraendo Neste caso, jamais vai haver estouro e o resultado da soma do minuendo com o complemento a 2 do subtraendo deve passar por novo complemento, se o objetivo for o de se obter a real magnitude da subtração. (OBS: Em uma operação de subtração realizada internamente no computador, o resultado é apresentado em SMC2, logo se o resultado é negativo, ele vai permanecer complementado a 2). * A figura abaixo tem um erro. Qual será ? Considerando o caso geral Observa-se que a diferença entre os circuitos acima, que tratam separadamente das subtrações para M > S e M ≤ S, está na necessidade de efetuar o segundo complemento a 2 ou não. Esta situação é identificada a partir do fato de ter ou não ocorrido estouro.Um circuito combinacional que atende a esta idéia de efetuar o complemento a 2 ou não a partir de um determinado comando é o circuito True / Complement, onde a saída corresponde à própria entrada ou ao complemento a 2 da mesma. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Aplicando a proposta do circuito True / Complement para o caso do subtrator genérico de 4 bits, chega-se ao seguinte circuito: Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Ampliando esta idéia, pode-se construir o circuito de um somador / subtrator genérico, para 4 bits, operando em C2, com uma variável de controle para selecionar qual a operação que se deseja realizar. Y = 5º bit da soma ou sinal da subtração Pequenas lógicas internas: C 0 0 1 1 C4 0 1 0 1 Cx 0 0 0 1 Y 0 1 1 0 Cx = C. C4 (Controle do segundo True / Complement) Y = C ⊕ C4 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.2.7- Subtrator de 4 bits em C1 Seguindo a mesma linha de raciocínio adotada para a construção das diversas etapas do subtrator em C2 e analisando a teoria de subtração com a técnica em C1, os diversos circuitos de subtrator de 4 bits em C1 e somador / subtrator em C1 são os abaixo apresentados. Subtrator binário para 2 números de 4 bits, operando em C1 e considerando M > S. (sempre vai ocorrer estouro, que deverá ser somado ao resultado) Subtrator acima, considerando M ≤ S * O Circuito abaixo tem um erro. Qual será ? Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Subtrator geral de 4 bits em C1 Somador / subtrator genérico em C1. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.2.8- ULA – Unidade Lógica e Aritmética A ULA é um circuito lógico inteiramente combinacional (isto é, consiste em portas sem realimentação e sem flip-flops) Ela torna disponível em um único chip a realização de diferentes operações lógicas e aritméticas, como soma, subtração, incremento, ou, e, ou-exclusivo, etc... A operação de uma ULA típica (de 4 bits) é a seguinte: A0, A1, A2, A3 e B0, B1, B2, B3 -> entradas Cn -> carry de entrada (indica vai-um no nível 0) M -> função lógica (1) ou aritmética (0) F0, F1, F2, F3 -> saídas Cn+4 -> carry de saída (indica se vai-um no nível 0) S0, S1, S2, S3 -> seleção de função Quando a unidade é utilizada para soma e a velocidade é importante, pode-se ligar na unidade (ULA) a VUA (vai-um antecipado), normalmente aplicada em computadores de grande porte. Esta adaptação com a VUA visa reduzir a séria limitação de velocidade que resulta no fato de o vai-um ter que se propagar, em seqüência, através de um somador após o outro. Para aumentar a velocidade dos somadores, aplica-se o princípio do vai-um antecipado. Neste método, antecipa-se quando e onde um vai-um seria gerado e circuitos adicionais são usados para gerar o vai-um mais diretamente do que através da propagação do vai-um vindo de estágios anteriores. 2.3- Circuitos Conversores de Código Freqüentemente, informação disponível em forma codificada deve ser traduzida para um código diferente. O circuito lógico que realiza esta tradução é chamado de conversor de código. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.3.1- Apresentação de alguns códigos De modo geral, os códigos podem ser classificados em: Ponderados -> Peso Ordenados ⇒ Códigos Ponderados: a) Binário Natural ou código 8421 B3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 B0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 é a contagem natural em binário 15 OBS: Existe a possibilidade de fazer a representação da um dígito decimal usando sempre 4 bits. Nesse caso, o código gerado é um caso específico do binário natural, já que com 4 bits não é possível representar os correspondentes decimais de 10 a 15, nem qualquer outro acima destes. Este código é chamado BCD ou NBCD. BCD – Decimal Codificado em Binário 1985 0001 1001 1000 0101 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais BCD em 8421 ou NBCD 8 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 4 0 0 0 0 1 1 1 1 0 0 0 2 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 Igual ao binário natural 9 10 b) Outros códigos ponderados: 7421, 2421, 5211, etc... - o código 8421 é o único que não apresenta multiplicidade de solução para um mesmo número. Ex: 4 0 0 0 0 0 1 0 1 0 3 0 0 0 1 0 0 1 0 1 2 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 3 4 5 ⇒ Códigos Ordenados: c) Códigos Gray - a principal característica é que de um nº a outro (anterior ou posterior) apenas varia um bit. No código Gray, os 2 primeiros correspondentes decimais a zero e um são representados normalmente. Os dois nos seguintes, são expressos do seguinte Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais modo: um “espelho” representado por uma linha tracejada é colocada debaixo dos primeiros 2 bits, gerando uma reflexão destes. Depois o dígito 0 é acrescentado acima do espelho e o dígito 1 é acrescentado abaixo do espelho e assim sucessivamente. Gray Natural 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 1 1 Gray BCD 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 Mapa de Karnaugh para Gray Natural O código Gray é o código utilizado para construção do Mapa de Karnaugh e é por este motivo que quando a numeração dos quadrículos no Mapa, é feita através do código binário, ela não segue uma seqüência correta. Já, se a numeração fosse realizada utilizando o código Gray, os quadrículos seriam numerados seqüencialmente, conforme pode ser observado abaixo: 00 01 11 10 00 0 1 2 3 01 7 6 5 4 11 8 9 10 11 10 15 14 13 12 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais d) Código excesso 3 – Ex-3 NBCD - é a transformação do nº decimal no binário correspondente, somando-se a este três unidades. N 0 0 0 0 0 0 0 0 1 1 B 0 0 0 0 1 1 1 1 0 0 C 0 0 1 1 0 0 1 1 0 0 D 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 Ex-3 NBCD 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 É interessante por 2 motivos: - Porque não aparece 0000 e 1111, que podem ser confundidos com linha aberta, ou curto-circuito. - é auto-complementar a 9. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.3.2- Exemplo de Conversores de código Ex: 1) Projete um conversor de NBCD -> Gray BCD B3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 NBCD B2 B1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 B0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Gray BCD G3 G2 G1 G0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 irrelevantes G3 = B3 G2 = B3 + B2 G1 = B2 ⊕ B1 G0 = B1 ⊕ B0 G3 00 01 11 10 00 X 1 01 X 1 11 X X 10 X X G2 00 01 11 10 00 1 X 1 01 1 X 1 11 1 X X 10 1 X X G1 00 01 11 10 00 1 X 01 1 X 11 1 X X 10 1 X X G0 00 01 11 10 00 X 01 1 1 X 1 11 X X 10 1 1 X X 2) Projetar um conversor de Gray BCD para NBCD Gray BCD G3 G2 G1 G0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 B3 0 0 0 0 0 0 0 0 1 1 NBCD B2 B1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 B3 = G3 B0 0 1 0 1 0 1 0 1 0 1 B2 = G3 ⊕ G2 ou B2 = G3 G2 -> sem usar o irrelevante B2 00 01 11 10 00 1 X 01 1 X 11 1 X X 10 1 X X Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais B1 00 01 11 10 00 1 X 01 1 X 11 1 X X 10 1 X X B1 = G2 G1 + G3 G2 G1 B1 = G3 G2 G1 + G3 G2 G1 = G3 (G2 ⊕ G1) Sem usar o irrelevante Os irrelevantes agora são a continuação da tabela GRAY B0 00 01 11 10 00 1 X 01 1 1 X 11 1 X X 10 1 X X B0 = G3 ⊕ G2 ⊕ G1 ⊕ G0 (todas as posições com nº ímpar de variáveis _______ ) 3) Projetar um conversor GRAY ⇔ NBCD selecionável. Arbitrar que C = 0 -> converte de GRAY para BCD C = 1 -> converte de BCD para GRAY C Y3 Y2 Y1 Y0 X3 X2 X1 X0 B3 = G3 ∴ X3 = Y3 B2 00 01 11 10 00 1 X 01 1 X 11 1 X X 10 1 X X G2 00 01 11 10 00 1 X 1 01 1 X 1 11 1 X X 10 1 X X B1 00 01 11 10 00 1 X 01 1 X 11 1 X X 10 1 X X B0 00 01 11 10 00 1 X 01 1 1 X 11 1 X X 10 1 X X G1 00 01 11 10 00 1 X 01 1 X 11 1 X X 10 1 X X G0 00 01 11 10 00 X 01 1 1 X 1 11 X X 10 1 1 X X Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais X2 = Y3Y2 + Y3Y2 X1 = Y3Y2Y1 + Y3Y2Y1 X2 = Y2 ⊕ Y3 X1 = Y3 (Y1 ⊕ Y2) B0 = G3 ⊕ G2 ⊕ G1 ⊕ G0 G0 = B1 ⊕ B0 X0 = (Y1 ⊕ Y0)C + (Y3 ⊕ Y2 ⊕ Y1 ⊕ Y0)C X0 = Y1 ⊕ Y0 ⊕ (Y3 ⊕ Y2)C X3 Y3 X2 Y2 Y1 X1 Y0 X0 C Outra solução mais simples para X0: C Y3 Y2 Y1 Y0 X0 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 4) Conversor BCD para 7 segmentos Utilização do Decoder/Driver – 9368 e do Display de 7 segmentos FND 500 FND 560 A Display de 7 segmentos: F E - G D B C Geralmente cada filamento é um LED. Só conduz quando polarizado diretamente Conversor BCD/7 segmentos Cada segmento do display O projeto do conversor BCD para 7 segmentos é objeto de exercício para o aluno. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.4- Codificadores / Decodificadores São circuitos que efetuam a passagem de um determinado código para outro assim como os conversores de código, porém eles possuem características específicas. 2.4.1- Decodificadores Os decodificadores constituem um tipo de conversor de código que apresentam a característica de que para cada entrada, somente uma saída é ativada. Isto significa que uma das saídas sempre será diferenciada das outras. (Ex.: uma saída estará em nível lógico 1 e as outras estarão em 0, ou vice-versa). O decodificador é composto apenas por portas AND, se cada saída for ativada através de nível lógico 1. Decodificador 1 alto de N (endereçados) Este circuito possui N saídas, das quais uma (a selecionada) sempre em 1 (nível lógico alto) e as demais em 0 (nível lógico baixo). Ex.: 1 alto de 2 C 0 1 X1 X0 0 1 1 0 1 =C 0 =C x x Ex.: 1 alto de 4 C1 C0 X3 X2 X1 X0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 Para facilitar, o endereçamento é feito para a variável de número igual ao valor de controle. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Ex.: C1C0 à 10 (=2) — endereça a saída X2. 0 = c1.c 1 = c1.c0 2 = c1 .c0 3 = c1 . c0 x x x x 0 0 1 10 Decoder 7442 — trabalha de forma análoga porém inversa. Trata-se de um decodificador 1 baixo de 10, a saída é endereçada através de um zero. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.4.2- Codificadores Os codificadores executam a função inversa em relação aos decodificadores; isto é, operam com códigos de entrada que têm a característica de, em qualquer momento, apresentar uma entrada com nível lógico diferente de todas as demais. Muitas vezes as entradas de um codificador são as saídas de um decodificador. Ex.: (arbitrariamente) I0 I1 I2 A3 1 1 1 0 1 1 A2 1 1 0 A1 0 0 1 A0 1 1 1 Considerando que o código de entrada acima, só tem cada variável verdadeira em uma única situação e todas as demais combinações em que esta variável pudesse ser verdadeira são irrelevantes (já que não existem), as funções de saída poderão ser constituídas apenas por portas OU, como apresentado abaixo: A3c = I0c + I2C A2c = I0c + I1c A1c = I2c A0c = I0c + I1c + I2c 2.4.3- Conversor de Código a partir de Decodificador/Codificador Uma outra maneira de se gerar um conversor de código, sem seguir os passos de um circuito combinacional padrão, é fazendo uma associação de decodificador com codificador. Neste caso, em uma conversão de um código A para um outro código B, escolhe-se um código intermediário C, onde apenas uma variável seja diferenciada das demais, a cada instante, que fará o papel de decodificador, de A para C e de codificador de C para B. Se o código C escolhido tiver apenas uma variável verdadeira, a cada instante, o circuito será constituído de um conjunto de and’s (decodificador) associado a um conjunto de or’s (codificador). Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.5- Multiplexadores / Demultiplexadores 2.5.1- Multiplexadores Os multiplexadores são circuitos que podem ser aplicados de duas maneiras distintas: • Como seletores de canal • Como geradores de função 2.5.1.1- Mux como Seletor de Canal O multiplexador, como seletor de canal, é utilizado para selecionar dentre várias entradas uma para ser ligada à saída. Uma chave de n posições controlável que permite a passagem de somente uma entrada para a saída representa bem a função do multiplexador: (Ex.: seletor de canal de televisões antigas). I . . . I 8 SELEÇÃO Estrutura lógica de um MUX de 2 canais por 1 linha: 0 è X=A0 Ch 1 è X=A1 A1 A0 Ch X 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 A1 A0 00 Ch 0 1 X = 01 10 11 1 1 1 1 A0 .Ch + A1 . Ch Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Estrutura lógica de um MUX 4 canais por 1 linha. 4 entradas requerem 2 bits para selecionar Estrutura lógica de um MUX 4 canais por 2 linhas – MUX 4 x 2 (utilizado para um endereçamento de palavras com n bits — no caso a seguir, n=2 —, palavra esta situada em um único endereço). S1 S0 0 0 0 1 1 0 1 1 B0 B1 B2 B3 A0 A1 A2 A3 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Estrutura lógica de um MUX 16 canais por 1 linha (a partir de MUX’s 4x1) Canais 0a3 Servirão como entradas de seleção mais significativas (S3 S2) 678 Canais 4a7 Canais 8 a 11 Y= A0 à S3S2S1S0 = 0000 Y= X2 à S3S2S1S0 = 1000 (canal 8) Canais 12 a 15 Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais MUX 4x1 (74153 do laboratório) (efetivamente sua construção é de um MUX 4x2) • 1G e 2G • • terminais de controle — ENABLE (habilita). Ativas quando em baixa. Permite saída tri-state. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.5.1.2- Mux como Gerador de Função O Multiplexador pode ser usado não só para selecionar uma linha dentre um número de linhas, mas também para gerar uma função lógica arbitrária de “variáveis selecionáveis”. Ou seja, pode ser utilizado para montar qualquer circuito combinacional. Para isto, basta gerar a tabela verdade do circuito que se deseja. Voltando ao MUX original 4x1 G0 G1 G2 G3 Supondo que não existissem as linhas de entrada I0 – I3. neste caso as linhas de entrada de seleção das portas AND seriam exatamente as necessárias para gerar todos os mintermos das variáveis S1S0. A porta G0 gera m0 ( S 1.S 0 ), a porta G1 gera m1 ( S 1. S 0 ), etc. Pensando agora nas entradas I0,... , I3 como entradas habilitadoras. Se I0=0 a saída de G0 será 0 independente de S0 e S1, no entanto se I0=1, a saída G0 será igual a S 1.S 0 e assim sucessivamente. Assim, as quatro portas AND habilitadas pelas entradas correspondentes I0, ..., I3 geram os quatro mintermos das variáveis de seleção e a saída lógica é a soma lógica dos mintermos selecionados. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Ex: Gerar com um MUX 8x1, a função W = B.C. + A.B.C + A.B.C W = B.C.( A + A) + A.B.C + A.B.C W = AB.C. + ABC + A.B.C + A.B.C { { { { m7 m3 m2 m4 Com um MUX 8x1 (formado a partir de 4x1’s) W= Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais Pensando nas variáveis B e C como entradas de seleção e A como uma variável livre, é possível gerar a mesma função W a partir de um MUX 4 x 1. Centro Tecnológico Escola de Engenharia Departamento de Engenharia de Telecomunicações Técnicas Digitais I / Circuitos Digitais 2.5.2- Demultiplexadores O DEMUX proporciona o direcionamento de um dado de entrada para a entre n linhas de saída. Demux 1x4 Situação que serve como exemplo: 5 linhas telefônicas; de acordo com o endereço selecionado a origem vai se interligar com 1 dos 4 destinatários. A estrutura é similar a de um decodificador com a modificação que cada porta tem uma entrada adicional, que é a mesma para todas as portas. Dependendo do endereço requerido pelos bits de endereço S1S0, o dado de entrada será dirigido a um ou outro destino. Filosoficamente, o decodificador e o DEMUX são bem diferentes, já que o primeiro tem como objetivo principal distinguir uma saída das demais, enquanto que o último, objetiva direcionar o dado de entrada para uma das saídas, permitindo inclusive, que todas as saídas tenham o mesmo valor lógico.