Prévia do material em texto
Aritmética Digital Sistemas Digitais Diretor Executivo DAVID LIRA STEPHEN BARROS Gerente Editorial CRISTIANE SILVEIRA CESAR DE OLIVEIRA Projeto Gráfico TIAGO DA ROCHA Autoria DANYELLE GARCIA GUEDES ALAN DE OLIVEIRA SANTANA AUTORIA Danyelle Garcia Guedes Sou Mestranda pela Universidade Federal de Campina Grande em Ciência e Engenharia de Materiais, Especialista pela Faculdade Campos Elíseos em Docência do Ensino Superior e Bacharel pela Universidade Federal de Campina Grande em Ciência e Engenharia de Materiais. Atuo como membro e pesquisadora, no Laboratório de Desenvolvimento de Biomateriais do Nordeste (Certbio), na pesquisa e no desenvolvimento de dispositivos biossensores e biomateriais, bem como no Laboratório de Tecnologia de Materiais da UFCG no desenvolvimento de materiais cerâmicos e nanofibras. Atualmente, sou membro do Laboratório de Materiais Cerâmicos e Avançados. Sou apaixonada pelo que faço e adoro transmitir minha experiência de vida àqueles que estão iniciando em suas profissões. Por isso, fui convidada pela Editora Telesapiens a integrar seu elenco de autores independentes. Estou muito feliz em poder ajudar você nesta fase de muito estudo e trabalho. Conte comigo! Alan de Oliveira Santana Sou Mestre em Sistemas da Computação pela Universidade Federal do Rio Grande do Norte (2017). Possuo graduação em Ciência da Computação pela Universidade do Estado do Rio Grande do Norte, Natal, RN (2016). Tenho experiência na área de Ciência da Computação, com ênfase em Ciência da Computação, atuando, principalmente, nos seguintes temas: Tutores virtuais, Chatbots e Jogos educativos. Apaixonado pelo que faço, fui convidado pela Editora Telesapiens a integrar seu elenco de autores independentes. Estou muito feliz em poder ajudar você nesta fase de muito estudo e trabalho. Conte comigo! ICONOGRÁFICOS Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: OBJETIVO: para o início do desenvolvimento de uma nova compe- tência; DEFINIÇÃO: houver necessidade de se apresentar um novo conceito; NOTA: quando forem necessários obser- vações ou comple- mentações para o seu conhecimento; IMPORTANTE: as observações escritas tiveram que ser priorizadas para você; EXPLICANDO MELHOR: algo precisa ser melhor explicado ou detalhado; VOCÊ SABIA? curiosidades e indagações lúdicas sobre o tema em estudo, se forem necessárias; SAIBA MAIS: textos, referências bibliográficas e links para aprofundamen- to do seu conheci- mento; REFLITA: se houver a neces- sidade de chamar a atenção sobre algo a ser refletido ou dis- cutido sobre; ACESSE: se for preciso aces- sar um ou mais sites para fazer download, assistir vídeos, ler textos, ouvir podcast; RESUMINDO: quando for preciso se fazer um resumo acumulativo das últi- mas abordagens; ATIVIDADES: quando alguma atividade de au- toaprendizagem for aplicada; TESTANDO: quando o desen- volvimento de uma competência for concluído e questões forem explicadas; SUMÁRIO Adição e Subtração de Números Binário ......................................... 10 Aritmética Binária Parte I............................................................................................................ 10 Subtração Binária ......................................................................................................... 14 Multiplicação e Divisão de Números Binários ................................ 18 Aritmética Binária Parte II .......................................................................................................... 18 Multiplicação Binária ................................................................................................. 18 Divisão Binária ................................................................................................................22 Aritmética Hexadecimal ........................................................................... 25 Operações Hexadecimais .........................................................................................................25 Adição Hexadecimal ..................................................................................................25 Subtração Hexadecimal ..........................................................................................28 Multiplicação e Divisão Hexadecimal ...........................................................29 Modelagem de Componentes Combinacionais ............................. 33 Circuitos Combinacionais ..........................................................................................................33 Somadores ....................................................................................................................... 36 Comparadores ............................................................................................................... 38 Decodificadores ........................................................................................................... 39 Codificador ....................................................................................................................... 40 Multiplexadores ............................................................................................................. 41 7 UNIDADE 04 Sistemas Digitais 8 INTRODUÇÃO O processamento das informações que são implementadas nos sistemas digitais se desenvolve por meio da aplicação de diversas operações lógicas e aritméticas. Como já visualizado ao longo de nosso estudo até aqui, os dados digitais são formatados em sistemas numéricos compatíveis com os sistemas digitais. Para a manipulação dos dados nesse formato, se faz necessário conhecer como se desenvolvem as operações que são programadas nos circuitos digitais. Ao longo desta unidade, você aprenderá a realizar cálculos fundamentais com os dados dos sistemas digitais. Esse conhecimento é primordial para os profissionais que pretendem desenvolver projetos com circuitos, pois, a partir desse conhecimento básico, ele pode desenvolver sistemas cada vez mais complexos para as mais diversas aplicações. Entendeu? Ao longo desta unidade letiva, você vai mergulhar neste universo! Sistemas Digitais 9 OBJETIVOS Olá. Seja muito bem-vindo à Unidade 4 - Aritmética Digital. Nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Adicionar e subtrair números binários, aplicando essas operações nas várias situações-problemas em um sistema digital. 2. Efetuar operações de multiplicação e divisão de números binários, aplicando-as em diversas situações-problemas em sistemas digitais. 3. Realizar as quatro operações aritméticas básicas no sistema hexadecimal. 4. Modelar componentes combinacionais compostos, envolvendo: operadores aritméticos, multiplexadores, somadores, subtratores, comparadores, codificadores, decodificadores, ULAs e suas aplicações práticas. Sistemas Digitais 10 Adição e Subtração de Números Binário OBJETIVO: Ao término deste capítulo, você será capaz de entender como funciona o desenvolvimento de operações de adição e subtração com sinais digitais. Isso será fundamental para o exercício de sua profissão. E então, motivado para desenvolver esta competência? Vamos lá, avante! Aritmética Binária Parte I A aritmética binária compreende um fenômeno primordial para todos os computadores digitais e todos os demais tipos de sistemas digitais. O conhecimento dos fundamentos da adição, subtração, multiplicação e divisão com números binários é essencial para o entendimento de como operam os sistemas digitais. Além disso, esse conhecimento é primodial também para os profissionais que desejam um dia projetar sistemas desse segmento. Figura 1 – Universo de números binários Fonte: Pixabay Sistemas Digitais 11 Ao longo desta seção, serão apresentados os fundamentos da adição e da subtração binária.Adição binária A adição é a operação mais importante dos sistemas digitais (TOCCI, 2007). No que tange a adição com números binários, ela se dá de maneira semelhante ao mecanismo que se estabelece para implementar adições com números decimais. Na verdade, pode-se até afirmar que, com números binários, esse processo é ainda mais simples. Na adição de um número decimal, tem-se que são organizados, como apresentado a seguir, os dois números a serem somados um ao outro, através dos quais é efetuada, inicialmente, a operação de adição dos dígitos menos significativos. Isto é, os que estão na ponta direita do número. Em seguida, implementa-se a soma dos números que estão na posição posterior até que sejam somados os dígitos mais significativos. Vale considerar ainda, que, no caso dos números decimais, quando a soma dos dígitos é maior que 9, ou seja, resultam em um valor com duas casas decimais, é gerado um carry, isto é, um número que vai para a soma dos valores que estão na próxima posição. EXEMPLO Observe a soma dos números decimais 121 + 199. Nesse caso, observe que, ao somar inicialmente os dígitos menos significativos (1+9=10), obtém-se um número com mais de uma casa decimal. Assim, o primeiro número desse resultado é o carry, ele vai para a soma dos dígitos da posição seguinte. Assim, fica (1+2+9=12). Da mesma forma, surge um carry, o qual é atribuído a soma dos dígitos da posição seguinte, o que resulta em (1+1+1=3). O resultado final da operação é, então, 320. Esse mecanismo de desenvolvimento é utilizado de forma semelhante para a adição de números binários. Porém, nesse caso, algumas regrinhas específicas devem ser respeitadas. Sistemas Digitais 12 Em termos gerais, pode-se identificar quatro regras básicas para a adição entre dígitos binários: 0+0=0 - Soma de 0 com transporte (carry) de 0. 0+1=1 - Soma de 1 com transporte (carry) de 0. 1+0=0 - Soma de 1 com transporte (carry) de 0. 1+1=10 - Soma de 0 com transporte (carry) de 1. Perceba que há diferença entre os três primeiros binários somados e o último no resultado, em que para os três primeiros são resultantes apenas bits únicos, mas, no último caso, resultam dois binários (10). Quando os números binários são adicionados, a última condição cria uma soma de 0 em uma determinada coluna; e um transporte de um para a próxima coluna à esquerda. Quando há um transporte de um, tem-se a situação em que três bits estão sendo adicionados (um bit em cada um dos dois números e um bit de transporte). Não é necessário considerar a adição de mais de dois números binários de uma vez, tendo em vista que, na realidade, dos sistemas digitais, os circuitos desenvolvem as operações de adição com apenas dois números por vez. Dessa maneira, quando há a necessidade de serem somados mais de dois números binários, inicialmente somam-se os dois primeiros e, com o resultado desta soma, desenvolve-se a soma com o outro número, até que finalize todos os números da operação. Sob uma primeira perspectiva, pode-se imaginar esse fato como uma desvantagem da operação. No entanto, os sistemas digitais operam em apenas alguns nanossegundos. Então, realizar as operações dessa forma não interferem no desempenho do sistema. Sistemas Digitais 13 Observe agora o desenvolvimento de algumas operações de adição com números binários: • Para a soma do binários 112 e 102: Inicialmente, tem-se a soma de (dígitos menos significativos) 1+0=1 e, em seguida, tem-se a soma de 1+1=10 (dígitos mais significativos). • Para a soma do binários 0112 e 1102: Nesse caso, inicialmente tem-se a soma de (dígitos menos significativos) 1+0=1, em seguida tem-se a soma de 1+1=10 (dígitos mais significativos), que é uma soma de 0 com transporte (carry) de 1, e, por fim, tem-se a soma de 1+0+1=10. • Para a soma do binários 10012 e 11112: Nesse caso, inicialmente, tem-se a soma de (dígitos menos significativos) 1+1=10, que é uma soma de 0 com transporte (carry) de 1; em seguida, tem-se a soma de 1+0+1=10, que é uma soma de 0 com transporte (carry) de 1; novamente, tem-se a soma de 1+0+1=10, que é uma soma de 0 com transporte (carry) de 1, e, por fim, tem-se a soma de 1+1+1=11 (dígitos mais significativos). • Para a soma de binários 112 e 112: Sistemas Digitais 14 Nesse caso, inicialmente, tem-se a soma de (dígitos menos significativos) 1+1=10, soma de 0 com transporte (carry) de 1; em seguida, tem-se a soma de 1+1+1=11 (dígitos mais significativos). • Para a soma do binários 1112 e 112: Nesse caso, inicialmente, tem-se a soma de (dígitos menos significativos) 1+1=10, seguido da soma de 1+1+1=11, e em seguida a soma de 1 tem-se a soma de 1+0+1=10 (dígitos mais significativos). Subtração Binária Assim como no caso das operações de adição, as operações de subtração, com números binários, são desenvolvidas semelhante às operações com números decimais. Em termos gerais, tem-se que há quatro situações básicas possíveis que ocorrem quando se implementam operações de subtração entre bits em qualquer que sejam as posições que estejam localizados no número binário. Observe a seguir essas situações. As quatro regras básicas para subtrair bits são as seguintes: a. 0−0=0 b. 1−1=0 c. 1−0=1 d. 0−1=? Nesse caso é necessário pedir emprestado do 1, assim: 10−1=1. Observe que, durante as operações de subtração, por vezes, se faz necessário pedir emprestado uma quantidade da próxima coluna à esquerda para conseguir efetuar uma operação. Sistemas Digitais 15 Um empréstimo é necessário em binário apenas quando tentamos subtrair 1 de um 0. Nesse caso, quando 1 é emprestado da próxima coluna, à esquerda, um 10 é criado na coluna que está sendo subtraída. Assim, tem-se que o caso D apresentado, representa a necessidade que a operação apresentou de que uma quantidade fosse tomada emprestada da coluna à esquerda para a implementação da subtração 1 de 0. Observe a subtração implementada a seguir, em que é realizada a operação de subtração de 0112 de 1012: Analisando passo a passo como a operação foi desenvolvida, observe que, iniciando pela coluna mais à direita:1-1=0. Em seguida, na coluna do meio, foi feita a seguinte operação: 0-1=? Nessa operação, visualizou-se a necessidade de pegar um dígito 1 emprestado da próxima coluna, o que resultou em 10-1=0. Na coluna em que o 1 foi pego emprestado, ficou em seu lugar o 0. A operação realizada, então, nesse caso, foi: 0-0=0. Observe a imagem a seguir que apresenta esquematicamente essa operação. Figura 2 –Operação de subtração de 0112 de 1012 Fonte: Elaborado pelos autores adaptado de Tocci (2007). Sistemas Digitais 16 Observe agora o desenvolvimento de algumas operações de adição com números binários: • Para a subtração dos binários 112 e 102: Inicialmente, tem-se a subtração de (dígitos menos significativos) 1-0=1 e, em seguida, tem-se a soma de 1-1=0 (dígitos mais significativos). • Para a subtração dos binários 1112 e 1102: Nesse caso, inicialmente, tem-se a subtração de (dígitos menos significativos) 1-0=1, em seguida, tem-se a subtração de 1-1=0 (dígitos do meio), e, por fim, tem-se a subtração de 1-1=0. • Para a subtração dos binários 10012 e 01112: Nesse caso, inicialmente, tem-se a subtração de (dígitos menos significativos) 1-1=0; em seguida, tem-se a subtração de 0-1=10-1= 1, pois pega emprestado da próxima coluna. Em seguida, tem-se novamente 0-1=10-1=1, 1+0+1=10, já que pega emprestado da próxima coluna. E por fim, 0-0=0 (dígitos mais significativos). • Para a subtração dos binários 112 e 112: Nesse caso, inicialmente, tem-se a subtração de (dígitos menos significativos) 1-1=0; em seguida, tem-se a subtração de 1-1=0 (dígitos mais significativos). Sistemas Digitais 17 • Para a subtração dos binários 1112 e 112: Nesse caso, inicialmente, tem-se a subtração de (dígitos menos significativos) 1-1=0; em seguida, tem-se a subtraçãode 1-1=0 (dígito do meio) e, por fim, no mais significativo, tem-se 1-0=1. RESUMINDO: E então, gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que a adição é a operação mais importante dos sistemas digitais. A adição com números binários se dá de maneira semelhante ao mecanismo que se estabelece para implementar adições com números decimais. A operação de soma e subtração com binários ocorre a partir das operações com os dígitos mais à direita até os dígitos mais à esquerda, ou seja, vai do menos significativo ao mais significativo. Em termos gerais, pode-se identificar quatro regras básicas para a adição entre dígitos binários: 0+0=0 Soma de 0 com transporte (carry) de 0. 0+1=1 Soma de 1 com transporte (carry) de 0. 1+0=0 Soma de 1 com transporte (carry) de 0. 1+1=10 Soma de 0 com transporte (carry) de 1. Tem-se, então, que há quatro situações básicas possíveis que ocorrem quando se implementam operações de subtração entre bits em qualquer que sejam as posições que estejam localizados no número binário. As quatro regras básicas para subtrair bits são as seguintes: 0−0=0; 1−1=0; 1−0=1; 0−1=? Nesse caso, é necessário pedir emprestado do 1, assim: 10−1=1. Sistemas Digitais 18 Multiplicação e Divisão de Números Binários OBJETIVO: Ao término deste capítulo, você será capaz de entender como funcionam as operações de multiplicação e divisão de números binários. Isso será fundamental para o exercício de sua profissão. E então, motivado para desenvolver esta competência? Vamos lá, avante!. Aritmética Binária Parte II Continuando o que foi iniciado no capítulo anterior, ao longo deste capítulo serão apresentados como se desenvolvem as operações de multiplicação e divisão com números binários. Multiplicação Binária As operações de multiplicação entre números binários são desenvolvidas também de forma similar às multiplicações de números decimais. Nesse caso, o processo pode ser classificado como mais simples. Ele envolve a formação de produtos parciais, deslocando cada produto parcial sucessivo deixado em um lugar e, em seguida, adicionando todos os produtos parciais. A multiplicação de números binários envolve apenas produtos entre os dígitos 1 e 0. As regras básicas para se implementar o produto entre números binários são: 0x0=0 0x1=0 1x0=0 1x1=1 Sistemas Digitais 19 Observe o exemplo do produto entre os binários 10012 e 10112: Observe que o desenvolvimento da multiplicação se deu por meio da multiplicação individual entre cada bit do multiplicador por todo o número binário do multiplicando e, para cada operação, foram gerados produtos parciais. Inicialmente, foi implementada a multiplicação entre 1 e 1001, ou seja, entre o primeiro bit menos significativo e o multiplicando: Em seguida, foi feita novamente a multiplicação entre 1 e 1001, mas, no caso referente ao segundo bit, após o menos significativo: Seguido da multiplicação entre 0 e 1001: Sistemas Digitais 20 E, por fim, novamente entre 1 e 1001, que, nesse caso, era respectivo ao bit mais significativo do multiplicador. Perceba que a partir do segundo bit do multiplicador, o resultado das operações dos produtos parciais respectivos foram sendo deslocados para a esquerda, assim como é feito em produtos com números decimais. Ao final do desenvolvimento de todos os produtos parciais. Assim, no final, foi implementada a soma entre os produtos parciais, respeitando-se os espaços vazios, assim, obteve-se a seguinte operação: Perceba que, a partir do segundo bit do multiplicador, o resultado das operações de produtos parciais respectivos foram sendo deslocados para a esquerda, assim como é feito em produtos com números decimais. Ao final do desenvolvimento de todos os produtos parciais. Observe agora mais alguns exemplos de multiplicação com números binários: • Para o produto entre os binários 112 e 102: Inicialmente, implementou-se o produto entre 0 e 11 e, em seguida, o produto entre 1 e 11. Ao final, somaram-se os resultados dos produtos parciais. Sistemas Digitais 21 • Para o produto entre os binários 1112 e 1102: Nesse caso, inicialmente, implementou-se o produto entre 0 e 111, depois entre 1 e 111 e, em seguida, o produto entre 1 e 111. Ao final, somaram-se os resultados dos produtos parciais. • Para o produto entre os 10012 e 01112: Nesse caso, inicialmente, implementou-se o produto entre 1 e 1101, depois entre 1 e 1101, novamente entre 1 e 1101 e, em seguida, o produto entre 0 e 1101. Ao final, somaram-se os resultados dos produtos parciais. • Para o produto entre os binários 112 e 112: Implementou-se o produto entre 1 e 11 e, em seguida, o produto entre 1 e 11. Ao final, somaram-se os resultados dos produtos parciais. • Para o produto entre os binários 1112 e 112: Implementou-se o produto entre 1 e 111 e, em seguida, o produto entre 1 e 111. Ao final, somaram-se os resultados dos produtos parciais. Sistemas Digitais 22 É importante observar que, como nos sistemas digitais, normalmente, as operações de somas são feitas com dois números por vez, mesmo na operação de multiplicação, quando a soma dos produtos é realizada, essas são feitas nas máquinas digitais pela soma de dois números por vez. Assim, mesmo que se expresse como uma soma de uma só operação, é interessante lembrar que a soma é feita entre o primeiro e o segundo resultado do produto e depois é que são feitas as somas desse resultado com o resultado seguinte, assim sucessivamente até acabar todos os números. Divisão Binária O desenvolvimento de operações de divisão com números binários é também semelhante às operações desenvolvidas com números decimais. Nesse caso, os cálculos são mais simples, pois são operados apenas zeros e “uns”. Nesse caso, o número binário que será dividido é denominado de dividendo e o outro número é chamado de divisor. Os problemas de divisão binária podem ser resolvidos, usando a divisão longa, que é um método útil para ensinar o processo a você mesmo ou escrever um programa de computador simples. No processo de divisão longa, o dividendo é dividido pelo divisor e a resposta é o quociente. Então, é comparado o divisor com o primeiro dígito do dividendo. Caso o divisor seja um número maior, deve-se continuar adicionando dígitos ao dividendo até que o divisor seja o número menor. O primeiro dígito do quociente é escrito acima do último dígito do dividendo que estava sendo comparado. Deve-se, então, multiplicar e subtrair os valores para encontrar o valor do resto e, em seguida, repetir todo o processo, se necessário, para os demais dígitos. Sistemas Digitais 23 Observe a seguir como deve ser construída a expressão de divisão entre dois números binários. Considere a divisão entre 10010112:112 Observe que a primeira etapa da divisão implementada se baseou na comparação de o divisor 112 com o primeiro dígito do dividendo 10010112. Como o divisor é maior que o dividendo, foi colocado 0 como quociente e, em seguida, foi diminuído o segundo bit do dividendo. Esse processo foi repetido por todos os demais bits até que o dividendo se tornou maior que o divisor. Quando o divisor (112) estava menor do que o novo dividendo (1002), foi multiplicado por 1 e foi escrito o produto como o subtraendo e implementada a operação de subtração entre o subtraendo do minuendo para a obtenção do resto. O próximo número de bits foi baixado do dividendo e o processo foi executado novamente. Todo o processo foi desenvolvido até que todo o dividendo fosse dividido. Por fim, obtivesse o resultado como quociente 11002 e resto 1. Observe agora alguns exemplos de divisão com números binários: • Para a divisão entre os binários 1102 e 112: Sistemas Digitais 24 • Para a divisão entre os binários 1102 e102: Como mencionado anteriormente, a operação aritmética de adição com números binários compreende a mais importante operação aritmética no contexto dos sistemas digitais. Isso se dá pelo fato de que, por meio dessa operação fundamental, é que os computadores e demais sistemas digitais desenvolvem as operações de subtração, multiplicação e divisão. RESUMINDO: E então, gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que as operações de multiplicação entre números binários são desenvolvidas também de forma similar às multiplicações de números decimais. O desenvolvimento da multiplicação se deu por meio da multiplicação individual entre cada bit do multiplicador por todo o número binário do multiplicando e, para cada operação, foram gerados produtos parciais. Ao final do desenvolvimento de todos os produtos parciais. O desenvolvimento de operações de divisão com números binários é também semelhante às operações desenvolvidas com números decimais. Nesse caso, o número binário que será dividido é denominado de dividendo e o outro número é chamado de divisor. No processo de divisão longa, o dividendo é dividido pelo divisor e a resposta é o quociente. Então, é comparado o divisor com o primeiro dígito do dividendo. Caso o divisor seja um número maior, deve-se continuar adicionando dígitos ao dividendo até que o divisor seja o número menor. O primeiro dígito do quociente é escrito acima do último dígito do dividendo que estava sendo comparado. Deve- se, assim, multiplicar e subtrair os valores para encontrar o valor do resto e, em seguida, repetir todo o processo se necessário for para os demais dígitos. Sistemas Digitais 25 Aritmética Hexadecimal OBJETIVO: Ao término deste capítulo você será capaz de entender como funciona a aritmética hexadecimal. Isto será fundamental para o exercício de sua profissão. E então? Motivado para desenvolver esta competência? Então vamos lá. Avante!. Operações Hexadecimais Da mesma forma, como no caso dos números binários, a aritmética para números do sistema hexadecimal é essencial para toda computação digital. De acordo com Tocci (2019), as operações com números hexadecimais são amplamente aplicadas no processo de programação em linguagem de máquina e para a especificação de endereços de memória em computadores, ou seja, são vastamente utilizados, principalmente, em dispositivos microprocessadores e microcontroladores, bem como na programação mais básica e fundamental das unidades centrais de processamento dos dispositivos digitais. Geralmente, nesses segmentos apresentados, os números hexadecimais são normalmente submetidos a operações de adição e subtração. Para compreender os sistemas digitais, devemos conhecer os fundamentos da adição e subtração hexadecimal. Adição Hexadecimal Em nosso cotidiano, as operações aritméticas com números decimais são amplamente utilizadas. Como já estudado, no desenvolvimento de operações de adição de números decimais, tem-se que há 10 dígitos na contagem, que vão de 0 a 9, e quando você chega a 10, carrega um “1” para a próxima coluna, Sistemas Digitais 26 o chamado carry. Esse mesmo processo serve também para a adição de números hexadecimais. Aplicando, pois, o mesmo conceito, mas mudando a base de 10 para 16, será obtido o método adequado para adicionar números hexadecimais. Lembre-se que os números hexadecimais se caracterizam por: • Usar 10 dígitos e 6 letras, 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F. • Onde as letras representam números começando em 10. A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. No caso do sistema de numeração hexadecimal, existem 16 dígitos na contagem, que vão de 0 a F. Nesse esquema, quando o valor 16 é alcançado, carrega-se um “1” para a próxima coluna. O número após F, ou decimal 15, é 10 em hexadecimal, ou 16 em decimal. Na operação de adição hexadecimal, serão implementadas as seguintes etapas: 1. Realiza-se a operação de adição de uma coluna de cada vez. 2. Converte-se em decimal (base 10) e implementa-se a soma dos números. Se o resultado da etapa dois for 16 ou maior, subtraia o resultado de 16 e leve 1 para a próxima coluna. • Caso o resultado da etapa dois seja menor que 16, deve-se converter o número em hexadecimal. • Caso o resultado da etapa dois seja menor que 16, deve-se converter o número em hexadecimal. Observe o caso a seguir em que se realiza a adição entre: I. 2116+1616 Sistemas Digitais 27 Nesse caso, tem-se que na primeira coluna da direita é desenvolvida a seguinte operação: Já para a coluna da esquerda, tem-se desenvolvida a seguinte operação: II. DF16+AD16 Nesse caso, tem-se que, na primeira coluna da direita, é desenvolvida a seguinte operação: Já para a coluna da esquerda, tem-se desenvolvida a seguinte operação: Um outro meio de se implementar as operações de adição hexadecimal é por meio do método de análise direto da tabela que será apresentado a seguir. Sistemas Digitais 28 Figura 3 – Tabela de números hexadecimais Fonte: Tutorialspoint (2021). Nessa situação, a adição de componentes hexadecimais se dá pela análise dos pontos apresentados na tabela. O ponto na área de ‘soma’ em que essas duas colunas se cruzam é a soma de dois números. Observe a demonstração a seguir: A16+516 = ? Em tal caso, deve-se localizar, na tabela, o valor A na coluna x e, posteriormente, o valor 5 na coluna y. O ponto que intercepta essas duas colunas na área da soma é o valor correspondente à soma desses dois números. Assim: A16+516 = F16, pela tabela. Subtração Hexadecimal A subtração de números hexadecimais segue as mesmas regras que a subtração de números em qualquer outro sistema numérico. A única diferença se concentra no número que é emprestado. Sistemas Digitais 29 Assim, executando-se a operação durante a conversão entre valores hexadecimais e decimais pode-se desenvolver a operação de subtração. No caso do sistema hexadecimal, toma-se emprestado um grupo de 16. Isso ocorre devido ao fato de que a coluna da qual está sendo emprestado é 16 vezes maior do que a coluna de empréstimo (o mesmo motivo que o 1 emprestado em decimal representa 10). Se faz necessário, estar atento ás transformações das letras de A a F. Subtraindo 4A616-1B316 Multiplicação e Divisão Hexadecimal As operações de multiplicação e divisão com números hexadecimais não são tão importantes como as operações de adição e subtração, no entanto, a título complementar, será introduzido os princípios dessas operações. O processo de multiplicação é feito da mesma forma como para números decimais, ou seja, se dá pelo desenvolvimento da multiplicação individual entre cada elemento hexadecimal do multiplicador por todo o número binário do multiplicando e, para cada operação, foram gerados produtos parciais que são somados ao final. Porém, na multiplicação de números hexadecimais, se o produto for menor que a raiz do hexadecimal, ou seja, se for 16, então, o consideramos como o resultado. Caso contrário, divide-se pela raiz do hexadecimal, ou seja, 16, e tomamos o resto como o bit menos significativo. O quociente é considerado transportado no próximo dígito significativo. A multiplicação hexadecimal pode ser complicada devido as necessárias conversões entre hexadecimais e decimais ao realizar as operações, uma vez que os numerais tendem a ser maiores. Assim, ter em mãos uma tabuada hexadecimal de multiplicação pode ser útil. Sistemas Digitais 30 Caso contrário, a conversão manual entre decimal e hexadecimal será necessária para cada etapa. Observe a tabela de multiplicação hexadecimal a seguir: Figura 4 – Tabela de multiplicação de números hexadecimais Fonte: Calculator (2021) Observe o detalhado exemplo de multiplicação apresentado a seguir:Sistemas Digitais 31 Nessa situação, tem-se o desenvolvimento do seguinte passo a passo: 3XA=1E; onde 1 é transportado para F. 3XF=2D, +1=2E. CXA=78; onde 7 é transportado para F. CXF=B4, +7=BB. No caso da divisão, o processo é semelhante à divisão longa implementada com números decimais, a diferença está na multiplicação e subtração que se desenvolvem com hexadecimais. Nesse caso, pode- se também converter os valores em decimal e realizar uma divisão longa em decimal e, em seguida, converter de volta quando concluído. Na divisão de números hexadecimais, da mesma forma, pode ser realizada seguindo as regras de divisão de números decimais, mas o dígito máximo permitido será F, que é igual a 15 em decimal. Para a divisão entre os hexadecimais FACE16 e 1216 12/ Observe que foram desenvolvidas as seguintes operações, respectivamente: 12XD=EA; • FA-EA=10. • 12XE=10. • 10C-FC=10. • 12XF=10E. Seguindo o mesmo raciocínio de todas as operações aqui apresentadas, é possível desenvolver todos os tipos de cálculos com os números hexadecimais que se estiver trabalhando. Não esqueça de praticar. Sistemas Digitais 32 RESUMINDO: E então, gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que as operações com números hexadecimais são amplamente aplicadas no processo de programação em linguagem de máquina e para a especificação de endereços de memória em computadores. Da mesma forma, como no caso dos números binários, a aritmética para números do sistema hexadecimal é essencial para toda computação digital. Realiza-se a operação de adição de uma coluna por vez. Converte-se em decimal (base 10) e implementa-se a soma dos números. Se o resultado da etapa dois for 16 ou maior, subtraia o resultado de 16 e leve 1 para a próxima coluna. Caso o resultado da etapa dois seja menor que 16, deve-se converter o número em hexadecimal. Caso o resultado da etapa dois seja menor que 16, deve-se converter o número em hexadecimal. A subtração de números hexadecimais segue as mesmas regras que a subtração de números em qualquer outro sistema numérico. A única diferença se concentra no número que é emprestado. O processo de multiplicação se dá pelo desenvolvimento da multiplicação individual entre cada elemento hexadecimal do multiplicador por todo o número binário do multiplicando e, para cada operação, foram gerados produtos parciais que são somados ao final. No caso da divisão, o processo é semelhante à divisão longa implementada com números decimais, a diferença está na multiplicação e subtração que se desenvolvem com hexadecimais. Nesse caso, pode-se também converter os valores em decimal e realizar uma divisão longa em decimal e, em seguida, converter de volta quando concluído. Sistemas Digitais 33 Modelagem de Componentes Combinacionais OBJETIVO: Ao término deste capítulo, você será capaz de entender como funciona a modelagem de componentes combinacionais compostos: operadores aritméticos, multiplexadores, somadores, subtratores, comparadores, codificadores, decodificadores, ULA’s. Isso será fundamental para o exercício de sua profissão. E então, motivado para desenvolver essa competência? Vamos lá, avante!. Circuitos Combinacionais Os circuitos lógicos combinacionais e os circuitos sequenciais são os circuitos que compõem os sistemas digitais. Neste capítulo, serão introduzidos os circuitos combinacionais. Compreende-se que um circuito combinacional é um tipo de circuito formado por conjuntos de portas lógicas, por meio das quais são implementadas operações lógicas aos dados que são inseridos nas entradas do sistema. Ou seja, os circuitos combinacionais são um método de projeto para desenvolvimento de sistemas digitais, por intermédio de combinações entre portas lógicas como blocos de construção. Vale ressaltar que os circuitos lógicos combinacionais são caracterizados como combinacionais, pois, em qualquer instante de tempo, eles podem emitir níveis lógicos de saída que dependem somente das combinações estabelecidas entre os níveis lógicos presentes nas entradas do sistema. É importante identificar que esse tipo de circuito não apresenta características de memória; assim, os seus valores de saída dependem somente dos valores de entrada atuais. Sistemas Digitais 34 Por outro lado, é necessário destacar ainda que as principais ferramentas necessárias para a construção de circuitos combinacionais compreendem projeto de tabelas-verdade, o conhecimento de álgebra booleana e a implementação das portas lógicas. Em geral, para se projetar um circuito lógico combinacional determina-se uma tabela-verdade a partir de uma declaração verbal ou escrita, que um cliente fornece para o designer. Em seguida, por meio de uma expressão booleana, obtém-se a descrição do comportamento do circuito exigido, conforme expresso pela tabela-verdade. A expressão boolena pode ser convertida em uma mistura arbitrária de operações (AND, OR e NOT) para tornar o circuito mais simples de ser implementado. O circuito apresentado no exemplo a seguir foi construído a partir das informações apresentadas na tabela verdade, a qual apresenta duas entradas, A e B, e uma saída, x. Veja que o circuito só produz a saída 1 quando as entradas são A=0 e B=1. Figura 5 – Exemplo de construção de circuito combinacional a partir da tabela verdade e obtenção da expressão booleana característica A B X 0 0 0 0 1 1 1 0 0 1 1 0 A B A X = AB Fonte: TOCCI, (2019). Assim, tem-se que, nos circuitos combinacionais, são desenvolvidas operações Booleanas no processamento da informação. É possível, então, representar um circuito combinacional esquematicamente como demonstrado a seguir. Perceba que, a partir das combinações que forem determinadas para os valores de entrada, são obtidas informações e valores diferentes de saída. Sistemas Digitais 35 Figura 6 – Diagrama genérico para circuito lógico combinacional Circuito combinacional Entradas: x Saídas: F(x) Fonte: Elaborado pelos autores (2021). Uma saída produzida a partir de um circuito lógico combinacional depende apenas das entradas de corrente, ou seja, as portas que se interconectam e formam o circuito combinacional produzem uma saída a qualquer momento e esta é função apenas da entrada naquele momento. Dessa formas, o surgimento da entrada é seguido quase que imediatamente pelo surgimento da saída (atrasos podem acontecer e estes se dão por obstáculos à propagação do sinal pela porta). EXEMPLO No exemplo de circuito combinacional apresentado na imagem a seguir, pode-se observar partir de uma combinação de portas lógicas do tipo NOT, AND e OR. Figura 7 - exemplo de circuito combinacional A B Z Fonte: TOCCI (2019). Sistemas Digitais 36 Observe que, a partir das diversas entradas, são desenvolvidas operações de inversão, adição e comparação e apenas uma saída final é resultante, a qual é representada por Z. É possível elencar algumas importantes propriedades dos circuitos combinacionais, observe que: • As saídas desses circuitos são dependentes apenas das suas entradas mais recentes. • Eles compreendem circuitos que se processam em altas velocidades. • São facilmente projetados. • Nesses circuitos, não se visualiza feedback entre entrada e saída. • São circuitos que se executam de forma independente do tempo. • Seus blocos de construção são as portas lógicas. • O processamento das informações se dá por operações aritméticas e booleanas. • Não armazenam nenhum estado. • Não exigem acionamento. • Não têm elemento de memória. Especificadamente, existem diversos tipos fundamentais de circuitos combinacionais chamados de operadores aritméticos, multiplexadores, somadores, subtratores, comparadores, codificadores, decodificadores,ULA’s. Somadores O circuito somador é um tipo de circuito que implementa operações aritméticas de adição. Em termos gerais, um circuito somador soma dois elementos de dados binários, geram uma soma e um carry de saída, assim como é apresentado na imagem a seguir. Sistemas Digitais 37 Figura 8 – Estrutura do circuito combinacional somador Fonte: FLOYD (2007). O meio-somador é o circuito lógico que executa operações de soma com dois dígitos de entrada e produz dois dígitos de saída, sendo um carry e um bit de soma. Figura 9 – Estrutura do circuito combinacional meio-somador Fonte: FLOYD (2007). Sistemas Digitais 38 O somador completo, por sua vez, é um circuito lógico que admite duas entradas de bits e também um carry de entrada, gerando uma saída de soma e um carry de saída. Figura 10 – Estrutura do circuito combinacional somador completo Fonte: FLOYD (2007). Tem-se que, por meio da associação de dois ou mais somadores- completos, podem ser construídos somadores binários paralelos, os quais são utilizados para a soma de dois ou mais números binários. Para a soma de dois binários, 1 bit, demanda-se de um somador-completo para cada bit do número. Já para números de dois bits, é preciso dois somadores; usados quatro somadores, e assim por diante. Desse modo, é importante salientar que a operação de subtração também é desempenhada por um circuito lógico, esse processo, no entanto, é normalmente realizado por meio de um somador. Comparadores O circuito combinacional comparador executa a função lógica de comparação. Nesse caso, essa função se fundamenta na comparação das magnitudes dos números binários que estão sendo processados, Dessa forma, é possível estabelecer uma relação comparativa entre ambos os elementos. Em síntese, entende-se que um circuito comparador avalia se dois valores de entradas são iguais. Sistemas Digitais 39 Decodificadores Os decodificados compreendem circuitos combinacionais que buscam o acionamento de um entre os seus diversos componentes de entrada. Em geral, um decodificador detecta se há uma combinação específica de bits nos dados que compõem a sua entrada e indica a presença desse bit, por meio dos seus níveis de saída. Assim, associado a cada combinação de em suas variáveis de entradas, escolhe-se apenas uma das suas saídas. De acordo com o autor Floy (2007), a decodificação pode ser entendida como uma instrução do computador: Uma instrução “diz” ao computador qual operação realizar. As instruções são códigos de máquina (1s e 0s) e, para o computador executar uma instrução, a instrução tem que ser decodificada. A decodificação de instrução é um dos passos da instrução pipelining, que são os seguintes: A instrução é lida na memória (busca da instrução), a instrução é decodificada, o(s) operando(s) é(são) lido(s) na memória (busca do operando), a instrução é executada e o resultado é escrito de volta na memória. Basicamente, o pipelining permite que o processamento da próxima instrução seja iniciado antes que o da atual seja completado. (FLOYD, 2007, p. 332) Os decodificadores apresentam n linhas de entrada para manipular n bits e de uma a linhas de saída para indicar a presença de uma ou mais combinações de n bits. Esse circuito é determinado como decodificar n:m (n por m), que possui n entradas e m saídas, para m ≤ . Sistemas Digitais 40 Observe, na imagem a seguir, a representação de um decodificador 4:16. Figura 11 – Estrutura do circuito combinacional decodifidor 4:16 Fonte: FLOYD, (2007). Por exemplo: se caso existir um decodificador de 6:64 (no caso lê- se decodificar de 6 por 64), assim, cada uma das 64 saídas possui um endereço diferente. Para ativar uma dessas 64 saídas, é preciso apenas 6 variáveis de entrada, por isso 6:64. Codificador Os codificadores são circuitos lógicos que implementam a função inversa à observada no decodificador. Assim, a função desse circuito admite um nível ativo em uma de suas entradas, representando um dígito e converte este valor em uma saída codificada. O processo de conversão de símbolos familiares ou números para um formatocodificado é denominado de codificação. Sistemas Digitais 41 Figura 12 – Estrutura do circuito combinacional codificador de decimal para BCD Fonte: FLOYD (2007). Uma aplicação bastante comum dos circuitos lógicos combinacionais comparadores são os teclados de computadores. No caso, os dez dígitos decimais no teclado de um computador precisam ser codificados para que possam ser processados pelo circuito lógico. Multiplexadores Um multiplexador, ou simplesmente MUX, consiste em uma chave digital que possui entradas de dados, n entradas de seleção ou controle e uma única saída. O MUX direciona os dados de uma das 2n entradas de dados para sua única saída. Identifica-se um multiplexador pela notação multiplexador :1 (pronuncia-se “ para 1”). As linhas de entrada selecionadas controlam qual entrada de dados é conectada à saída. Assim, um multiplexador atua como uma chave digital programável. Sistemas Digitais 42 Observe, na imagem a seguir, a representação de um MUX genérico. Figura 13 – Estrutura do circuito combinacional MUX genérico Fonte: FLOYD(2007). De acordo com Floyd (2007), esse circuito viabiliza que as informações digitais de diversas fontes sejam encaminhadas para uma única linha para serem transmitidas nessa linha para um destino comum. Além disso, também são conhecidos como seletores de dados. RESUMINDO: E então, gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que os circuitos lógicos combinacionais e os circuitos sequenciais são os circuitos que compõem os sistemas digitais. Um circuito combinacional é um tipo de circuito formado por conjuntos de portas lógicas, por meio das quais são implementadas operações lógicas aos dados que são inseridos nas entradas do sistema. Especificamente, existem diversos tipos fundamentais de circuitos combinacionais chamados de operadores aritméticos, multiplexadores, somadores, subtratores, comparadores, codificadores, decodificadores, ULA’s. Sistemas Digitais 43 REFERÊNCIAS BOYLESTAD, R. L.; NASHELSKY, L. Dispositivos eletrônicos e teoria de circuitos. São Paulo: Prentice-Hall do Brasil, 1984. FERDJALLAH, M. Introduction to Digital Systems: Modeling, Synthesis, and Simulation Using VHDL. [s. l.] John Wiley& Sons, 2011. FLOYD, T. Sistemas digitais: fundamentos e aplicações. São Paulo: Bookman Editora, 2007. GOUVEA, M. O que são componentes ativos, passivos e eletromecânicos. 2020. Disponível em: https://produza.ind.br/tecnologia/ componentes-passivos/. Acesso em: 20 set. de 2021. IDOETA, I.V.; CAPUANO, F.G. Elementos de eletrônica digital. São Paulo: Saraiva Educação SA, 1993. JONHSON, S. What is digital code? 2021. Disponível em:https:// www.techwalla.com/articles/how-to-type-a-triangle-character-on-the- pc-keyboard. Acesso em: 20 set. de 2021. KAMAL, R. Digital Systems: Principles and Design. India: Pearson Education, 2009. RIORDAN, M. Transistors. 2021. Disponível em: https://www. britannica.com/technology/transistor. Acesso em: 20 set. de 2021. SILVA, L.M.C. Sistemas de Numeração. 2021. Disponível em: https:// docs.ufpr.br/~marianakleina/Material2.pdf. Acesso em: 20 set. de 2021. TANENBAUM, A. S.; ZUCCHI, W. L. Organização estruturada de computadores. São Paulo: Pearson Prentice Hall, 2013. TOCCI, R. J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas Digitais; princípios e aplicações. São Paulo: Editora Pearson, 2019. Sistemas Digitais https://produza.ind.br/tecnologia/componentes-passivos/ https://produza.ind.br/tecnologia/componentes-passivos/ Adição e Subtração de Números Binário Aritmética Binária Parte I Subtração Binária Multiplicação e Divisão de Números BináriosAritmética Binária Parte II Multiplicação Binária Divisão Binária Aritmética Hexadecimal Operações Hexadecimais Adição Hexadecimal Subtração Hexadecimal Multiplicação e Divisão Hexadecimal Modelagem de Componentes Combinacionais Circuitos Combinacionais Somadores Comparadores Decodificadores Codificador Multiplexadores