Italo Info


Circuitos lógicos

Então, pelos microcircuitos dos computadores, trafegam correntes elétricas que podem assumir dois estados (ligado: tensão de 2volts a 5volts ou desligado: tensão inferior a 0,5volts) e, pelas entradas e saídas de um circuito lógico podem trafegar correntes elétricas nessas tensões. Então, os circuitos lógicos, dependendo da corrente elétrica nas entradas, geram uma, ou mais, saídas (pulsos elétricos em um dos estados: ligado ou desligado).

Circuitos digitais
Circuitos digitais

Em linguagem binária, o estado ligado corresponde a um 1 e o estado desligado corresponde ao 0. Logo, para representar dados com pulsos elétricos, basta resolver o problema de codificar os dados em binário. Por exemplo, as diferentes teclas do teclado de um computador são associadas a diferentes números codificados em binário. Isso porque, o pressionamento de uma tecla do teclado gera pulsos eletricos que seguem por vias conectadas como entradas a um microcircuito controlador de dispositivo ligado ao devido barramento que o liga ao processador. E se por essas vias trafega pulsos elétricos, trafega bits. Por causa da necessidade de codificação de dados em binário, todos os dados: programas de computador, arquivos de audio, vídeo, imagem, texto, etc, são, para o computador, sequências de zeros e uns que são formatados segundo um padrão (formato) que especifica como que os bits devem estar organizados para representar um arquivo ou dado em tal formato. A unidade de memória mais básica é o bit ela pode armazenar um 0 ou um 1 (a nível de microeletrônica, o bit corresponde a um sinal elétrico com a devida tensão). Cada byte de dados equivale a 8 bits. Cada KByte equivale a 1024 bytes e cada MByte equivale a 1024 KBytes e cada GByte equivale a 1024 MBytes.

Circuitos integrados (CIs)

Os circuitos integrados são, geralmente, embutidos em microchips e são conjuntos de microcircuitos. Os microcircuitos são também conhecidos como circuitos lógicos (ou digitais), isso porque são formados por portas lógicas cujas saídas de umas são entradas de outras. As portas lógicas executam processamentos diferentes. Por exemplo, uma porta lógica AND gera como saída um bit 1, apenas se todas as suas entradas, em tal instante, recebem bits 1. Já a porta OR, gera um bit 0, apenas se todas as entradas forem 0. Existem também as portas NOT, XOR, e as derivadas NAND (AND e NOT), NOR (OR e NOT) e XNOR (XOR e NOT). Você deve estar se perguntando, como fazer algo de útil através de circuitos lógicos? Isto é, por exemplo, como implementar uma simples calculadora aritmética que opera sobre bits? como implementar memória? Registradores?.É possível! Pois existem as memórias RAM, alimentadas por corrente elétrica cujo armazenamento é feito também por circuitos lógicos. Existem também: a unidade lógica e aritmética, registradores e unidade de controle que são, também, componentes de um microprocessador que são implementados por circuitos lógicos. Veja abaixo uma ilustração das principais portas lógicas:

Principais portas lógicas
Principais portas lógicas

Na imagem acima, as tabelas abaixo das portas lógicas são chamadas tabelas verdade. Isso porque, dadas as entradas, as saídas das portas lógicas podem assumir o valor 1 (verdade) ou o valor 0 (falso). As tabelas verdades da imagem se referem a apenas duas entradas: E1 e E2 e a saída: S. Essas tabelas mostram as saídas para todas as possibilidades de entradas.

Agora, imagine a afirmação lógica: "Pedro é arquiteto e engenheiro ou médico, mas não é professor". Essa afirmação envolve várias afirmações que podem ser verdadeiras ou falsas e estão conectadas pelos conectores: E, OU e NÃO. Opa! Se parece com as portas lógicas! AND traduzido para português é E, OR é OU e NOT é NÂO. Logo tal afirmação (expressão) lógica é verdadeira apenas se pedro de fato é, tanto arquiteto como engenheiro ou se ele é médico, mas não for professor, caso contrário, por exemplo, se ele for professor ou se não for nem arquiteto nem engenheiro nem médico, ou se for apenas arquiteto ou se for apenas engenheiro, a afirmação é falsa. E as entradas para o circuito lógico seriam: (A) pedro é engenheiro, (B) pedro é arquiteto, (C) pedro é médico, (D) pedro é professor. Cada uma dessas entradas podem assumir valores verdade ou falso. Então, a lógica é essa, é assim que coisas úteis podem ser feitas com os circuitos lógicos! Veja abaixo uma imagem capturada do circuito lógico que resolve o problema da verificação se a afirmação acima é verdadeira ou falsa com base em suas 4 entradas (A,B,C e D):

Diagrama de Circuito lógico
Diagrama de circuito lógico

Mas, como implementar uma simples soma com circuitos lógicos? Como relacionar as operações lógicas as aritméticas? Bom, para cada número decimal existe um número binário correspondente. Para encontrá-lo basta fazer uma mudança de base (de base 10 para base 2) existem os calculos para isso e, existem também os cálculos aritméticos feitos sobre números binários. Por exemplo, veja a sequência decimal: 1 2 3 4 5 6 ..., veja os números binários correspondentes: 0 1 10 11 100 101... . Logo, em binário, 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 e 1 + 1 = 0 e vai 1. Ou seja, 1 + 1 = 10, 10 + 1 = 11, 11 + 1 = 100 e 1000 + 1100 = 10100. 1000 corresponde ao número 8, 1100 corresponde ao número 12 e 10100 corresponde ao número 22. E o circuito lógico para realizar tal operação? Bom, tomei a liberdade de criar um circuito lógico com funcionalidade de calculadora de soma de bits. Achei complicado e trabalhoso desenhar todo o circuito utilizando algum programa de criação, edição e manipulação de imagens. Por isso, desenhei o circuito em um caderno e capturei a imagem por celular. Abaixo a imagem do circuito:

Circuito soma bits
Circuito soma bits

Perceba na imagem acima que na parte inferior esquerda da imagem existem quatro entradas que representam o primeiro número e, na parte inferior direita, existem outras quatro entradas por onde fluem as correntes elétricas nas tensões que representam os bits do segundo número. A saída também é de quatro bits, por isso, são quatro sinais de saída que ficam na parte superior da imagem. A saída que sinaliza se houve ou não estouro fica do lado esquerdo do circuito. No caso desse circuito, há estouro quando o resultado da soma é um número binário com correspondente decimal maior que 15. Isso porque a calculadora suporta dois números de entrada e um número de saída, quatro bits por número. Perceba que as portas lógicas utilizadas foram as portas: AND, OR e XOR e a calculadora não suporta números negativos.

Quatro bits correspondem a 16 possibilidades de combinações de zeros e uns, logo, só é possível, com apenas quatro bits, representar 16 diferentes números, isto é, os números de 0 a 15.

Os circuitos lógicos podem ficar muito grandes logo quando projetados e, existem também técnicas de simplificação de circuitos que consistem em, dado um circuito grande, encontrar outro mais simplificado que possa gerar as mesmas saídas do circúito não simplificado, se receber as mesmas entradas que ele. Uma dessas técnicas é a álgebra de boole, outra é conhecida como mapas de karnaugh. Por exemplo, o circuito de entradas "a", "b" e "c": "a AND b OR a AND c", pode ser simplificado pela regra distributiva para "a AND (b OR c)" por isso, a porta AND pode ser associada na álgebra de boole a um operador de multiplicação, e o operador OR, a um operador de soma. Mas, existem as outras portas logicas: NOT, XOR, NAND, NOR e XNOR, e a álgebra de boole as abrange também.