Baixe o app para aproveitar ainda mais
Prévia do material em texto
APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 1 1 – INTRODUÇÃO Um computador digital é uma máquina projetada para armazenar e manipular informações representadas por algarismos ou dígitos que podem assumir dois valores distintos 0 ou 1, por isso são chamados de computadores digitais binários, ou simplesmente, computadores digitais. Fisicamente, os valores 0 ou 1 são representados no computador pelas tensões 0,5 V ou 3,0 V, respectivamente. Estes valores são entendidos pelo computador respeitando uma faixa de tolerância, uma vez que é impossível construir equipamentos ou chips que mantenham exatamente aquelas tensões. O computador é fabricado com circuitos eletrônicos que precisam armazenar os sinais binários e realizar certos tipos de operações com eles. Estes circuitos são chamados de “circuitos digitais” e são formados por pequenos elementos capazes de manipular as grandezas binárias. Estes pequenos elementos são conhecidos como portas (“gates”) por permitirem (ou não) a passagem destes sinais, e os circuitos que contém portas lógicas são conhecidos como circuitos lógicos. Uma porta é um elemento do hardware, que recebe um ou mais sinais de entrada e produz um sinal de saída, cujo valor depende da lógica estabelecida para sua construção. 2 – PORTAS E OPERAÇÕES LÓGICAS Uma vez que as variáveis de entrada em uma porta lógica só podem ser 0 ou 1, é possível tabular as saídas correspondentes em uma “Tabela Verdade”, em função da lógica da porta. Também é possível tabular uma “Tabela Verdade” para um circuito lógico. Importante salientar que o número de entradas em uma porta não precisa ser necessariamente 2 (A e B), pois existem chips com mais entradas para uma mesma porta lógica. APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 2 2.1 – Porta AND (E): A porta AND é definida como sendo o elemento que produz um resultado verdade (1) se e somente se todas as entradas forem verdade. O seu símbolo e a sua “Tabela Verdade’, então são os seguintes: ENTRADA SAÍDA A B X = A . B 0 0 0 0 1 0 1 0 0 1 1 1 Uma das mais importantes utilidades desta porta é a ativação de uma linha de dados para controlar o fluxo de bits em um computador (Ver Capítulo 3). Circuito integrado 7408 possui quatro portas AND.� 2.2 – Porta OR (OU): A porta OR é definida para produzir um resultado verdade (1) se pelo menos uma das entradas for verdade. O seu símbolo e a sua “Tabela Verdade’, então são os seguintes: ENTRADA SAÍDA A B X = A + B 0 0 0 0 1 1 1 0 1 1 1 1 Circuito integrado 7432 possui quatro portas OR. APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 3 2.3 – Porta NOT (NÃO ou INVERSOR): A operação lógica NOT, também chamada de inversor ou complemento, inverte o valor do sinal binário colocado em sua entrada. O seu símbolo e a sua “Tabela Verdade’, então são os seguintes: ENTRADA SAÍDA A ___ X = A 0 1 1 0 É interessante observar que a conexão de dois circuitos inversores em série produz, na saída, um resultado de valor igual ao da entrada. � Circuito integrado 7404 possui seis portas NOT. 2.4 – Porta NAND (NOT AND): A porta NAND é definida como o complemento da porta AND, isto é, a saída de um circuito NAND eqüivale à saída de um circuito AND passando por uma porta NOT. O seu símbolo e a sua “Tabela Verdade’, então são os seguintes: ENTRADA SAÍDA A B __________ X = A . B 0 0 1 0 1 1 1 0 1 1 1 0 A B __________ X = A . B ___ ___ X = A . B 0 0 1 1 0 1 1 0 1 0 1 0 __________ ____ ____ Importante: A . B ���� A . B 1 1 0 0 Circuito integrado 7400 possui quatro portas NAND. APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 4 Outras portas implementadas através de portas NAND: DIAGRAMA 1 2.5 – Porta XOR (EXCLUSIVE OR): A operação XOR, abreviação de EXCLUSIVE OR, pode ser considerada um caso particular da função OR, ou seja, sua definição: “a saída será verdade se exclusivamente uma ou outra entrada for verdade”. Não podem ambas entradas ser verdade e é esta a diferença para os resultados da porta OR. ENTRADA SAÍDA A B X = A ���� B 0 0 0 0 1 1 1 0 1 1 1 0 Circuito integrado 7486 possui quatro portas XOR. 2.6 – Porta NOR (NOT OR): Assim como a porta NAND, a porta NOR é o complemento ou o inverso da porta OR. A saída de um circuito lógico NOR é obtida ao se efetuar a operação lógica OR sobre as entradas e inverter o resultado. O seu símbolo e a sua “Tabela Verdade”, então são os seguintes: ENTRADA SAÍDA A B __________ X = A + B 0 0 1 0 1 0 1 0 0 1 1 0 APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 5 A B __________ X = A + B ___ ___ X = A + B 0 0 1 1 0 1 0 1 1 0 0 1 __________ ____ ____ Importante: A+ B ���� A + B 1 1 0 0 Circuito integrado 7402 possui quatro portas NOR. Outras portas implementadas através de portas NOR: DIAGRAMA 2 3 – ILUSTRAÇÕES SOBRE PORTAS LÓGICAS As portas lógicas são comercializadas em circuitos integrados (CI) em SSI (Small Scale of Integration – Pequena Escala de Integração), sendo conhecidos como família 7400. Existem muitas outras utilizações de portas lógicas em outras escalas de integração (LSI e VLSI), porém elas ficam invisíveis para o usuário, como por exemplo, dentro de memórias e microprocessadores. APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 6 Um multiplexador (MUX) conecta várias entradas em uma única saída. Em qualquer instante, é selecionada uma das entradas para ser passada para a saída. A figura abaixo representa um circuito multiplexador com quatro entradas (I0, I1, I2 e I3) e apenas uma saída Z, conhecido como 4-para-1. A conexão entre a entrada e a saída é realizada em função do endereço codificado em A e B, conforme tabela-verdade: A B Z 0 0 I0 0 1 I1 1 0 I2 1 1 I3 A figura ao lado representa um MUX que possui dois conjuntos de entradas, e um conjunto de saída, todas com 8 bits: � Entrada “A”: Bits de A0 até A7 � Entrada “B”: Bitsde B0 até B7 � Saída “S”: Bits de S0 até S7 O controle é dado pela entrada “C”: � No estado “0”, habilita a entrada “A” e desabilita a entrada “B” � No estado “1”, habilita a entrada “B” e desabilita a entrada “A”. Observe que existe um inversor na entrada C que garante a habilitação de apenas uma das portas de cada vez. Este circuito pode ser utilizado para controle em um microcomputador, selecionando a fonte de dados (memória 1 ou memória 2, por exemplo) para o microprocessador. A porta XOR permite a fabricação de testadores de igualdade entre valores, por exemplo, para testar de modo rápido, se duas palavras são iguais. No exemplo da figura abaixo, se dois bits forem iguais, a saída deste circuito XOR será FALSA (0). Neste caso, a saída do circuito OR que reúne todas as saídas XOR será FALSA, e este valor (0) não provocará nenhuma ação por parte da UCP. Caso apenas um par de bits apresente valores diferentes, a saída do seu XOR será 1 e, conseqüentemente do OR também será 1, provocando a UCP a solicitar reenvio do dado. APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 7 4 – EXPRESSÕES LÓGICAS – APLICAÇÃO DE PORTAS Uma expressão lógica pode ser definida como sendo uma expressão algébrica formada por variáveis lógicas (binárias), por símbolos representativos de uma operação lógica (+, ., � , etc.), por parênteses e por um sinal de igual. Por exemplo: ZYXF ��� . A Tabela Verdade deste circuito pode ser obtida a partir de todas as possibilidades de entrada e as respectivas saídas: ENTRADA SAÍDA X Y Z F 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 As expressões lógicas podem ser resolvidas como uma expressão aritmética comum, levando-se em conta apenas a prioridade do AND (.) sobre o OR (+). O “Teorema de Post” define que é possível se encontrar uma função lógica a partir da sua Tabela Verdade. Para isto temos o seguinte procedimento: � Seleciona-se uma coluna de saída e apenas as linhas diferentes de zero desta coluna; � Para cada linha será definido um termo que corresponde à operação “AND” entre as proposições simples da entrada. Estas proposições simples de entrada serão consideradas normais quando iguais a um, e “invertidas” ou “barra” quando iguais a zero. � A proposição composta completa será obtida pela operação “OR” entre todos os termos obtidos. 4.1 – Álgebra Boolena: A álgebra booleana é uma área da matemática que trata de regras e elementos de lógica. O nome é uma homenagem ao matemático inglês George Boole (1815-1864), que desenvolveu uma análise matemática sobre a lógica. Suas regras básicas são: 1 XX �� 0 13 ZYXZYX ����� )()( 2 11��X 14 ZYXZYX ����� )()( 3 XXX �� 15 ZXYXZYX ������ )( 4 1�� XX 16 XYXX ��� 5 00 ��X 17 XYXX ��� )( 6 XX ��1 18 ZYXZXYX ������ )()( 7 XXX �� 19 YXYXX ���� 8 0�� XX 20 ZYXZYZYYX �������� 9 XX � 21 YXYX ��� )( 10 XYYX ��� 22 YXYX ��� )( 11 0�� XX 23 YXYXYX ����� 12 XYYX ��� 24 YXYXYX ����� APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 8 As equações básicas 1 a 9 podem ser provadas através do emprego das Tabelas Verdade já mostradas anteriormente. As equações 10 a 20 podem ser demonstradas a partir das Tabelas Verdade e das equações básicas 1 a 9. A equação 19 pode ser resolvida substituindo X por X+X.Y (equação 16). As equações 21 e 22 referem-se ao “Teorema de Morgan” e podem ser provadas a partir dos Diagramas 1 e 2 vistos anteriormente. As equações 23 e 24 representam a Tabela Verdade do circuito XOR e NOT-XOR, mas muitas vezes não lembramos deste fato, por isso estão acrescentadas na tabela acima. Todas as equações podem ser utilizadas para simplificação dos circuitos lógicos projetados, a fim de diminuir a quantidade de portas necessárias e, consequentemente, diminuir o custo do mesmo. Analisemos os seguintes casos: YX � implica na utilização de duas portas NOT (para inverte X e Y) e uma porta AND. O equivalente )( YX � utiliza apenas uma porta NOR. YX � implica na utilização de duas portas NOT e uma porta OR. O equivalente )( YX � utiliza apenas uma porta NAND. Muitas vezes, no entanto, não dispomos no chip de uma porta necessária ao circuito, sendo que, neste caso, é importante utilizarmos as disponíveis através de equivalentes. Se precisamos de uma porta NOR, mas nosso chip só tem portas OR e NOT, devemos utilizar estas portas prioritariamente. Exemplo: Simplificar a expressão: ������������� CBACBACBACBAX CABABBCACCBA ������������ )()( 4.2 – Circuitos Combinatórios: Um Circuito Combinatório é definido como sendo um conjunto de portas cuja saída em qualquer instante de tempo é função somente das entradas. Em contrapartida, um Circuito Seqüencial, além de possuir portas, contém elementos de armazenamento denominados flip- flops. Estes circuitos são utilizados para várias funções dentro de um microcomputador, por exemplo, e podem ser utilizados em qualquer dispositivo compatível com a lógica digital. 4.2.1 Circuitos Decodificadores: Podemos exemplificar um circuito combinatório com um “Decodificador BCD8421 para Código Gray” (Tabela Verdade): BCD 8421 GRAY A B C D S3 S2 S1 S0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 9 Simplificando as equações obteremos: S3 = A S1 = B � C S0 = C � D Uma das aplicações mais importantes de um decodificador é a habilitação de circuitos de memória. Desta forma, ao ser enviado um endereço binário para o decodificador, ele habilita apenas o conjunto de bits referente àquele endereço. O exemplo abaixo é de um “decodificador 3 para 8”, que a partir dos endereços (entrada) de três bits é capaz de que selecionar oito memórias: ABCD DABC DCAB DCAB CDBA DCBA DCBA DCBA S3 �������� CDBA DCBA DCBA DCBA BCDA DBCA DCBA DCBA S2 �������� DCAB DCAB CDBA DCBA DCBA DCBA CDBA DCBA S1 �������� DABC DCAB DCBA DCBA DBCA DCBA DCBA DCBA S0 �������� B A BA BA S2 ���� APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 10 4.2.2 Circuitos Aritméticos: Para somarmos dois números binários de “n” bits basta efetuar a operação entre cada um dos seus “n” bits. Devemos considerar ainda o “vai um”, que ocorre quando a soma supera um dígito. O Circuito Somador Completo (FULL ADDER) soma dois bits considerando na soma o bit de carry in (“vem um”) que veio da soma anterior e, gerando além da saída o bit de carry out (“vai um”): Entrada - os dois bits a serem somados e o bit de carry in - A, B e Ci Saída - a soma dos bits e o bit de carry out ("vai um") - S e CoPodemos representar um Circuito Somador Completo pelo diagrama a seguir: APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 11 Um circuito somador de 4 bits é montado a partir dos módulos de Circuito Somador do diagrama anterior: A saída terá também 4 bits para o resultado da operação matemática (soma). Porém, existe a possibilidade de que a soma ultrapasse a capacidade do nosso somador (neste caso, 4 bits). Para isso, precisamos incluir um 5º bit, um bit de overflow. Obs.: Como o somador de entrada não deve receber nenhum bit de carry in, é preciso forçar que o Ci desse somador seja zero. 4.3 – CIRCUITOS SEQÜENCIAIS: Um Circuito Seqüencial é definido como sendo um conjunto de portas cuja saída em qualquer instante de tempo é função das entradas e/ou de seus estados anteriores que permanecem armazenados (através dos Elos de Realimentação). Portanto um Circuito Seqüencial, além de possuir portas, contém elementos de armazenamento denominados flip- flops. FLIP-FLOP RS BÁSICO A Tabela Verdade deste circuito é a seguinte (Qa = Estado anterior, Qf = Estado final). S R Qa Qf Qf Transição Conclusão 0 0 0 0 0 1 Estável Qf = Qa 1 0 0 1 1 0 Estável Qf = Qa 2 0 1 0 0 1 Estável Qf � 0 3 0 1 1 0 1 Instável Qf � 0 4 1 0 0 1 0 Instável Qf � 1 5 1 0 1 1 0 Estável Qf � 1 6 1 1 0 1 1 Não Permitido Q = Q 7 1 1 1 1 1 Não Permitido Q = Q APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 12 Resumindo as conclusões anteriores, temos: S R Qf 0 0 Qa 0 1 0 1 0 1 1 1 Não Permitido Para que o Flip-Flop RS básico seja controlado convenientemente, é necessária a troca dos dois inversores da entrada por portas NAND. No instante adequado ao microprocessador é injetado um pulso de CLOCK informando ao Flip-Flop para receber as entradas R e S. Este pulso de clock entra nas duas outras entradas daquelas portas NAND. FLIP-FLOP RS COMANDADO POR PULSO DE CLOCK Quando CLOCK = 0, as saídas das portas NAND de entrada serão sempre iguais a 1, ou seja, semelhantes à situação Qf = Qa. Quando CLOCK = 1 o circuito irá comportar-se como um Flip-Flop RS básico. Tal circuito ainda tem o defeito de apresentar indefinição quando R e S forem iguais a 1 simultaneamente. Isto pode ser resolvido mantendo uma entrada D ligada ao S, e um D ligado ao R (através de um inversor). 4.4 – MEMÓRIA RAM: MEMÓRIA RAM DE 1 BIT Estando a entrada de endereços em nível lógico 1, as portas AND (P1 e P2) liberarão a passagem para os terminais R e S do Flip-Flop, do dado de entrada ligado na entrada D. APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 13 ESCRITA (WRITE) LEITURA (READ) END = 1 END = 1 Informação � D Controle Escrita/Leitura (Write/Read) � 0 Controle Escrita/Leitura (Write/Read) � 1 Bit � SL A memória RAM de 1 bit descrita anteriormente é insuficiente para termos uma noção completa de acesso (leitura ou gravação) de dados. Para tal devemos ter um conjunto de bits referenciado por um endereço. O diagrama a seguir mostra quatro memórias de três bits cada: O Decodificador endereça o conjunto de bits desejado a partir do endereço recebido pelo barramento. Na verdade isso exigiria barramentos com muitas trilhas para endereçar as memórias. A solução então foi adotar um esquema matricial, onde cada endereço não possui um valor, mas sim dois: “linha” e “coluna”. A quantidade de trilhas do barramento de endereços diminui exponencialmente com esta solução (Ver Apostila 4 – Subsistema de Memória). APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 14 LISTA DE EXERCÍCIOS 1) Desenvolva a tabela verdade para as seguintes expressões booleanas: a) b) c) d) e) f) Respostas: a) Entradas b) Entradas c) Entradas A B C Saída A B C D Saída A B C D Saída 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 d) Entradas 1 0 1 0 1 f) Entradas A B C Saída 1 0 1 1 0 A B C D Saída 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 e) Entradas 0 1 1 0 0 1 1 1 0 A B Saída 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 2) Simplifique as seguintes expressões lógicas: a) b) c) CBACBA ����� )( DBCA ��� CBACBACBA �������� )()()( BACABA ����� BABA ��� DCABA ���� )( DCEEDCEDCABBAX ������������� )( CBACBACBACBAX ������������ CACABABAX �������� APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 15 d) e) f) g) h) i) j) k) Respostas: a) b) c) d) e) f) g) h) i) j) k) 3) Desenhe o diagrama lógico correspondente às seguintes expressões: a) b) c) d) e) Respostas: a) b) c) d) e) )()()()( XZYTSRVWZYXA ����������� CABACBACCAX ���������� BACCBAAACBCAX ������������ )()( YXYXA ���� )()( YXYXA ���� ZYXZXA ����� 1)0()1( ������� DDBAX CCCCABBAX ���������� 0)1( DEBAX ���� CBAX ��� )( CBAX ��� TSRVWZYXA �������� AX � CBAX ��� YXA �� XA � )( YZXA ��� 1�X CAX �� )( EDCBAX ����� )()( ABDCBAX ������ EDCBAX ����� )()( EDCBAY ����� )( EDCBAY ����� )()( APOSTILA 3 – LÓGICA DIGITAL Prof. Murilo Parreira Leal, M.Sc. Disciplina: Arquitetura e Organização de Computadores 12/05/06 - Pág. 16 4) A partir das seguintes tabelas verdade encontre as expressões booleanas, simplifique-as e faça os diagramas lógicos correspondentes: a) Resposta: Entradas Sai. A B S1 0 0 1 0 1 1 1 0 1 1 1 0 b) Resposta: Entradas Saídas A B S1 S2 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 c) Resposta: Entradas Saídas A B S1 S2 S3 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 d) Resposta: Entradas Saídas A B C S1 S2 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 11 0 1 0 1 1 1 1 1 5) Faça o diagrama e descreva o funcionamento de um Flip-Flop RS. 6) Faça o diagrama e descreva o funcionamento de um Flip-Flop RS controlado por pulso de clock. 7) Faça o diagrama e descreva o funcionamento de uma memória RAM de um bit. 8) Para que são utilizadas as entradas END, D, X e a saída S de uma memória RAM de um bit? Resposta: END: Seleciona a memória que será lida ou gravada. D: Entrada do dado (0 ou 1) para gravação. S: Saída do dado (0 ou 1) para leitura. X: Seleção de leitura ou gravação B S1� BA S2 �� A S2 � AB S3 �� BACB S1 ���� BA S1 �� BA S1 �� CBA S2 ���
Compartilhar