Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Digitais Aula 07: Circuitos combinacionais dedicados Apresentação Estudaremos os codi�cadores e os decodi�cadores, que são circuitos combinacionais de média escala de integração de uso geral. Além deles, veremos outros circuitos combinacionais, capazes de realizar operações aritméticas de adição e subtração. Veremos ainda um dos principais componentes de uma Unidade Central de Processamento (CPU, em inglês) de um computador moderno, a Unidade Lógico e Aritmética (ULA), que é um circuito combinacional. Objetivos Descrever os codi�cadores e os decodi�cadores com exemplos; Explicar a representação de números inteiros em binários; Identi�car o somador e o subtrator completos. O que são codi�cadores e decodi�cadores? Os codi�cadores são circuitos combinacionais que recebem sinais brutos, um conjunto de sinais distintos com semântica correlacionada, e transformam esses sinais em um código. Exemplo O exemplo clássico de codi�cador é o responsável por receber os sinais de dez teclas rotuladas de 0 até 9 e codi�car esse sinal em BCD. Veremos esse codi�cador mais à frente. Um decodi�cador é um circuito combinacional dedicado que recebe uma informação codi�cada e transforma essa informação em um conjunto de sinais brutos com semântica correlacionada. A melhor forma de entender a função de um decodi�cador é por meio de um exemplo. Mais à frente, estudaremos o decodi�cador para display de sete segmentos. Acompanhe. Codi�cadores Já mencionamos o codi�cador decimal, que é aquele que recebe os sinais de dez teclas rotuladas de 0 até 9 e os codi�ca em BCD. Esquematicamente, é representado pela �gura 1. Figura 1 – Codificador decimal – BCD | Fonte: Elaborada pelo autor, 2020 Veja a seguir a tabela de funcionamento simpli�cada desse codi�cador (tabela 1). Observe que, como são dez entradas distintas, se fossemos construir a tabela verdade completa, teríamos 1024 linhas = 2 .10 As dez linhas representadas na tabela indicam o comportamento do codi�cador. Todas as outras 1014 linhas não são relavantes, uma vez que, apertar simultâneamente duas ou mais teclas, é um comportamento completamente anômalo. Deixaremos de apresentar o circuito desse codi�cador porque a manipulação de dez variáveis é complexa. Comercialmente, ele é vendido na família de circuitos integrados TTL, como 74147, cujo circuito interno é o da �gura 2 Figura 2 – Codificador 74147 | Fonte: TEXAS INSTRUMENTS, 2004 Figura 2 – Codificador 74147 | Fonte: TEXAS INSTRUMENTS, 2004. Uma família de codi�cadores é de particular interesse. Trata-se da família dos transcodi�cadores. Um transcodi�cador é um codi�cador que traduz um código em outro. Por exemplo, pode ser útil transcodi�car um código Gray de três bits em um binário de 3 bits. A especi�cação do transcodi�cador é uma tabela com os códigos de entrada e de saída. No caso do exemplo que estamos tratando, a tabela 2 mostra a transcodi�cação. O próximo passo é projetar os circuitos combinacionais equivalentes às funções F1, F2 e F3. A função F1 é trivial. A coluna F1 é igual à coluna A, assim 𝐹=𝐴. F2 e F3 precisam ser analisadas, logo, vamos aos mapas. Mapa 1 e mapa 2 de F2 e F3 respectivamente: Atenção Devemos ter certo cuidado no preenchimento dos mapas 1 e 2. Observe que a tabela verdade do transcodi�cador não está preenchida na ordem usual, assim, o preenchimento do mapa tem de ser feito pela interpretação cuidadosa de cada linha. Por exemplo, na linha 5 (A=1, B=1, C=0), F2 tem valor 0 e F3 também. Esses valores devem ser colocados convenientemente nos mapas. A ordem foi destacada colorindo-se as linhas. Fazendo a leitura dos mapas, temos: . Pela metodologia que vimos, o próximo passo seria a composição de portas para desenho do esquema elétrico. Mas vamos observar as funções F2 e F3 um pouco melhor. A função F2 é 𝐹2=𝐴⨁𝐵. Manipulando algebricamente F3, temos: 𝐹3=𝐶( +𝐴𝐵)+ . Vamos relembrar que: 𝐴⨁𝐵= + e que 𝐴⨀𝐵= +𝐴𝐵 e que . Por essa razão, 𝐹3=𝐶(𝐴⨀𝐵)+ (𝐴⨁𝐵)=𝐶( )+ (𝐴⨁𝐵)=𝐴⨁𝐵⨁𝐶. Simpli�cando muito o hardware do transcodi�cador (�gura 3), temos: F2 = B + AB e F3 = C + ABC + A Ā̄̄ AB¯ ¯¯̄¯ BC¯ ¯¯̄¯ AB¯ ¯¯̄¯ ( B + A )C̄̄̄ Ā̄̄ B̄̄̄ BĀ̄̄ AB̄̄̄ AB¯ ¯¯̄¯ = A ⊙ BA ⊕ B¯ ¯¯̄ ¯̄ ¯̄¯ C̄̄̄ A ⊕ B¯ ¯¯̄ ¯̄ ¯̄¯ C Figura 3 – Hardware do transcodificador | Fonte: Elaborada pelo autor, 2020 Atenção Observe que o cálculo de 𝐴⨁𝐵 foi reaproveitado para o cálculo de F3. Isso é desejável sempre que possível, uma vez que diminui a quantidade de portas lógicas envolvidas no circuito. Decodi�cadores Figura 4 – Display de sete segmentos | Fonte: KINGBRIGHT, 2019 Voltemos ao decodi�cador para display de sete segmentos. Ele é um arranjo de Diodos Emissores de Luz (LEDs, Light Emitting Diodes, em inglês). Por meio do acendimento de um subconjunto desses LEDs, podemos visualizar um dígito numérico. A �gura 4 ilustra um display de sete segmentos. A ideia do decodi�cador é simples, receber o dígito codi�cado em BCD e acender os segmentos do display para formar a imagem do dígito. Por exemplo, ao receber 0000, zero em BCD, deverão ser acionados (vão acender) os segmentos a, b, c, d, e, f. A tabela 3 ilustra o funcionamento do arranjo. Transformando as sete saídas em mapas de Karnaugh e resolvendo-os, temos o circuito a seguir (�gura 5): Figura 5 – Decodificador de sete segmentos (7448) | Fonte: MOTOROLA, s. d. Circuitos aritméticos Para entendermos bem o funcionamento dos circuitos aritméticos, precisamos entender como realizar as operações aritméticas sem usar sinais (+ ou –). Lembre-se de que só é possível representar em um circuito combinacional os sinais elétricos alto e baixo, 0 ou 1, por convenção. Como primeiro passo, veremos a soma em base 10, aquela que aprendemos na nossa alfabetização. Vejamos um exemplo: Aprendemos que a soma é feita do dígito menos signi�cativo para o mais signi�cativo, aplicando a tabuada da soma. Quando a soma de dois dígitos excede dez, aplicamos o artifício de vai um para o próximo dígito. Na �gura 6, a soma dos dois primeiros dígitos é 2 + 9 = 11; assim, o resultado, para o primeiro dígito, é 1 vai 1. Os próximos dígitos somados são 1 + 7 + 2 = 10, ou seja 0 vai 1. Se tivéssemos uma máquina de somar dígito a dígito, a máquina teria como entrada o vem 1, o dígito da primeira parcela e o dígito da segunda parcela, isto é, três entradas; e, como saída, o dígito do resultado da soma e o vai 1. Em base 2, aplicamos o mesmo algoritmo, o que muda é a tabuada. A tabela 4 é a tabuada da soma em base 2. Chamamos de carry in (vem 1) e carry out (vai 1). Para projetar um circuito capaz de realizar a soma de dois bits, precisamos projetar dois circuitos combinacionais. O primeiro calcula a soma e o segundo o carry out. Os mapas 3 e 4 minimizam as expressões lógicas. A leitura do mapa 3 é . Manipulando algebricamente: A leitura do mapa 4 é 𝐶𝑜=𝐵𝐶+𝐴𝐵+𝐴𝐶. Manipulando algebricamente, temos: S = C + B + ABC + BA − B − A − C − A − C − S = C( + AB) + ( + A ) = A ⊕ B ⊕ C.AB¯ ¯¯̄¯ C̄̄̄ AB¯ ¯¯̄¯ B̄̄̄ 𝐶𝑜=𝐴𝐵+𝐶(𝐴+𝐵) 𝐶𝑜=𝐴𝐵+𝐶(𝐴+ B) 𝐶𝑜=𝐴𝐵+𝐶𝐴+𝐶 B 𝐶𝑜=𝐴(𝐵+𝐶)+𝐶 B 𝐶𝑜=𝐴(𝐵+ C)+𝐶 B 𝐶𝑜=𝐴𝐵+𝐴 C+ B𝐶 𝐶𝑜=𝐴𝐵+𝐶(𝐴 + B) Ā̄̄ Ā̄̄ Ā̄̄ B̄̄̄ Ā̄̄ B̄̄̄ Ā̄̄ B̄̄̄ Ā̄̄ 𝐶𝑜=𝐴𝐵+𝐶(𝐴⨁𝐵) A manipulação algébrica resulta em um circuito mais simples. A �gura 7 é o esquema elétrico desse circuito chamado de Somador completo bit slice. Figura 7 – Somador completo bit slice | Fonte: Elaborada pelo autor, 2020 Usamos o somador completo bit slice para somar uma quantidade arbitrária de bits. Por exemplo, para somar dois números de quatro bits, empregamos quatro somadores bit slice conforme a �gura 8. A unidade da direita soma os bits menos signi�cativos. Figura 8 – Somador de 4 bits empregando somadores bit slice | Fonte: Elaborada pelo autor, 2020 Subtração O processo do cálculo da subtração é semelhante ao da soma. O algoritmo é executado do dígito menos signi�cativo para o mais signi�cativo,subtraindo, dígito a dígito, conforme a tabuada da subtração. Vejamos um exemplo na �gura 9. O exemplo da �gura 9 ilustra o principal problema do algoritmo de subtração, o pedir emprestado. Observe que, logo no primeiro dígito, não é possível efetuar a subtração 0 – 2, assim, é necessário pedir emprestado ao próximo dígito da subtração, e este efeito é cascateável, isto é, propaga-se ao longo do número. O pedir emprestado propagável é um complicador no projeto do subtrator. A questão é: Existe forma de realizar a subtração sem o pedir emprestado? Resposta: Sim, veremos como. Analisemos a subtração da �gura 10. O resultado desta operação é o mesmo da operação realizada na �gura 9, exceto 10000, isto é, 10058 em vez de 58. Figura 10 – Subtração | Fonte: Elaborada pelo autor, 2020. Figura 11 – Subtração | Fonte: Elaborada pelo autor, 2020. Se escrevermos 10000 como 9999 + 1, a operação é reescrita como na �gura 11. Observe que, se realizarmos a subtração de 9999-942, não precisaremos pedir emprestado. Assim, o circuito que realizará essa operação torna-se muito mais simples e a subtração transforma-se na soma da �gura 12. Figura 12 – Subtração transformada em soma | Fonte: Elaborada pelo autor, 2020. Figura 13 – Subtração de 26 – 19 = 7 | Fonte: Elaborada pelo autor, 2020. Desprezando-se os 10000 em excesso, temos o resultado desejado, 58, sem necessitar do pedir emprestado. Veremos como isso funciona em base 2. Veremos a subtração dos binários da �gura 13. Aplicando-se o raciocínio análogo, temos a subtração da �gura 14. Figura 14 – Transformação da subtração | Fonte: Elaborada pelo autor, 2020. Figura 15 – Subtração transformada em soma | Fonte: Elaborada pelo autor, 2020 Vejamos agora a subtração 11111 – 10011 = 01100. Observe que ela é equivalente a negar os dígitos de 10011. Assim, a execução é simples, pois basta passar os dígitos em um inversor. Agora, a subtração transformou- se na soma da �gura 15. Assim, o resultado da subtração é 00111 com excesso 100000, conforme ocorreu em base 10. Esse resultado mostra que o circuito do subtrator é o mesmo do somador, acrescentando somente um inversor em uma das entradas. A �gura 16 mostra um subtrator de 4 bits. A unidade somadora da direita subtrai o bit menos signi�cativo. Observe que usamos o carry in do bit menos signi�cativo para incluir a parcela extra do 1. Por isso, o carry in do bit menos signi�cativo é conectado em Vcc. Figura 16 – Subtrator de 4 bits, calcula B-A | Fonte: Elaborada pelo autor, 2020 O uso do somador como subtrator é muito e�ciente. Temos um único hardware capaz de executar as operações de soma e subtração. Por isso, utilizamos o método descrito como forma de representar números inteiros negativos. Essa forma de representação chama-se complemento a dois e consiste do que �zemos com o subtraendo para realizar a subtração. Isto é, para representar um número em complemento a dois, negamos seus bits e somamos uma unidade. Atenção Uma observação importante é que essa forma de representação só é válida para uma quantidade de bits �xa, de�nida previamente. Por exemplo: com 8 bits, o número 53 é representado 00110101. O número –53 é presentado 11001010 + 1 = 11001011. Atenção Outra observação importante é que o bit mais signi�cativo na representação em complemento a dois indica o sinal do número. Assim, todo número com o MSB igual a um é negativo. Por exemplo: 11100101 é um número negativo. Para determinar o valor dele em módulo, fazemos o processo de complementação a dois, isto é, negamos seus bits e somamos um. Para o exemplo, Not (11100101) = 00011010 + 1 = 00011011 = 51. Assim 11100101 representa o número –51. O coroamento do estudo dos circuitos combinacionais é o projeto de uma Unidade Lógica e Aritmética Bit Slice (ULA). Esta unidade é capaz de realizar as operações: AND, OR, NOT e soma. A �gura 17 ilustra o circuito. Figura 17 – Unidade Lógica Aritmética bit slice | Fonte: TANENBAUM, 2007 Na �gura 17, vemos os principais módulos de uma ULA. Temos o decodi�cador de função, que recebe dois bits F e F , que determinam a operação que será realizada: 00 – AND, 01 – OR, 10 – NOT e 11 – Soma. As entradas são A e B. Existe um sinal de controle INVA responsável por inverter o bit de entrada A e, assim, implementar o subtrator bit slice, o vai um e vem um, assim como os sinais de controle para habilitar a entrada dos bits A e B. 0 1 Atividades 1- Usando um decodi�cador de 4-16, encontre as três funções lógicas NrANrB, em função das saídas do decodi�cador, que compare dois números de 2 bits, representados pelos bits NrA = A,B e NrB = C,D de entrada do decodi�cador. Lembre- se de que A é o bit mais signi�cativo de entrada. 2- A soma de dois números positivos não pode dar como resultado um número negativo, assim como a soma de dois números negativos não pode resultar em um positivo. Esta situação, quando ocorre, caracteriza um over�ow, isto é, um resultado anormal que o hardware não consegue manipular. Considerando o arranjo somador de 4 bits, composto pelo cascateamento de quatro somadores bit slice, encontre a expressão canônica mínima da funcionalidade que veri�ca o over�ow, isto é, quando a soma de dois números positivou ou de dois números negativos apresentam resultado anômalo descrito. Notas CNE 1 Conselho Nacional de Educação. Título modal 1 Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ�ca e de impressos. Referências MALVINO, A.; BATES, D. Eletrônica. 8. ed. Porto Alegre: AMGH, 2016. v. 1. MOTOROLA. BCD to 7-segment decoder: logic diagram. [s. d.]. Disponível em: https://docs.google.com/document/d/15myZNZBeITp4YB6AKQUNHGyRM6d28ipzLxxl9n-LJGM/edit. <https://docs.google.com/document/d/15myZNZBeITp4YB6AKQUNHGyRM6d28ipzLxxl9n-LJGM/edit. > . Acesso em: 21 jul. 2020. TANENBAUM, A. S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson Prentice Hall, 2007. TEXAS INSTRUMENTS. Encoder: 54147 Datasheet. 2004. Disponível em: https://datasheetspdf.com/datasheet/54147.html. <https://datasheetspdf.com/datasheet/54147.html.> Acesso em: 21 jul. 2020. TOKHEIM, R. Fundamentos de eletrônica digital: sistemas combinacionais. 7. ed. Porto Alegre: AMGH, 2013. v. 1. (Série Tekne) Próxima aula Estudo de circuitos sequenciais Explore mais Leia o livro O básico sobre eletrônica digital O básico sobre eletrônica digital https://www.newtoncbraga.com.br/livros/livro5_ncb_mouser.pdf https://docs.google.com/document/d/15myZNZBeITp4YB6AKQUNHGyRM6d28ipzLxxl9n-LJGM/edit. https://datasheetspdf.com/datasheet/54147.html. javascript:void(0);
Compartilhar