Article image
Fernando Araujo
Fernando Araujo13/05/2024 11:57
Compartilhe

<Direto ao Ponto 29> Circuitos digitais combinacionais

  • #Informática Básica

Artigos desta série: ( < ) Anterior | Índice | Seguinte ( > )

  

Olá, dev!

  

Este é mais um artigo da série DIRETO AO PONTO, que eu estou escrevendo para a DIO. Ele vai tratar de um tipo de circuitos digitais básicos para a construção de um computador, os circuitos combinacionais.

 

Sumário

1.   Introdução

2.   Os circuitos digitais básicos

3.   Outros circuitos digitais combinacionais

4.  Considerações finais

5.   Referências

 

1 – Introdução

 

A série DIRETO AO PONTO enfoca artigos sobre conhecimentos básicos da programação e é voltada, principalmente, para os iniciantes.

 

Este novo artigo vai tratar dos circuitos combinacionais, que são usados para a implementação de equipamentos digitais, como os computadores.

 

Um computador é construído por:

·        componentes analógicos (resistores, capacitores e transistores);

·        circuitos digitais básicos (portas lógicas OR, AND, NOT, XOR, NAND e NOR);

·        outros circuitos combinacionais (multiplexadores, demultiplexadores, codificadores e decodificadores);

·        circuitos sequenciais (flip-flops, registradores, memórias).

 

Neste artigo vamos tratar apenas dos circuitos combinacionais diferentes das portas lógicas, aqueles que têm suas saídas determinadas apenas pelas entradas atuais.

  

 

2 – Os circuitos digitais básicos

 

Os circuitos combinacionais básicos são as portas lógicas que implementam a lógica booleana, NOT, OR, AND, XOR e outras).

 

Elas já foram tratadas aqui nesta série em 2 artigos (“<Direto ao Ponto 19> Operações lógicas em binário e <Direto ao ponto 20> Projeto de um somador completo).

 

Não vou repetir o conteúdo destes artigos, apenas resumir cada uma das portas, mostrando o símbolo lógico de cada uma e um resumo de suas funcionalidades.


image


Porta NOT - A saída sempre será o inverso do valor da entrada. Se a entrada for 0 (zero), a saída será 1, e vice-versa.

 

Porta AND - A saída só será 1 se ambas as entradas tiverem valor 1, caso contrário, será 0.

 

Porta OR - A saída só será 0 se ambas as entradas tiverem valor 0, caso contrário, será 1.

 

Porta XOR - A saída só será 1 se ambas as entradas tiverem valores diferentes, caso contrário, será 0. Ou seja, para entradas com valores 0 e 1, a saída será 1, caso contrário (ambas as entradas serem 0 ou ambas serem 1), a saída será 0.

 

Porta NAND (NOT AND) - É o inverso da porta AND. A saída só será 0 se ambas as entradas tiverem valor 1, caso contrário, será 1.

 

Porta NOR (NOT OR) - É o inverso da porta OR. A saída só será 1 se ambas as entradas tiverem valor 0, caso contrário, será 0.

 

 

3 – Outros circuitos digitais combinacionais


Além destes circuitos combinacionais, outros circuitos do mesmo tipo, para usos específicos, são comuns nos circuitos digitais, como multiplexadores e codificadores.

 

Multiplexador

 

Segundo TOCCI [1], um multiplexador (MUX) permite selecionar uma das entradas para aparecer na sua saída, e é conhecido como um seletor de dados.

 

Um bom exemplo do cotidiano é a seleção de uma das entradas de um sistema de som (rádio, MP3, toca-discos, CD), para ser ouvida nos alto-falantes de saída.

 

São comuns os circuitos de multiplexadores com 2 entradas, 4, 8 e até 16 entradas, para 1 única saída.

 

A representação funcional de um multiplexador de 2 entradas é vista a seguir:


image

  

As entradas de dados são I0 e I1, S é a entrada de seleção e Z é a saída. Cada linha recebe apenas um bit, com valor 0 ou 1.

 

A entrada S pode assumir os valores 0 ou 1. Caso ela seja 0, a entrada I0 aparecerá na saída, caso contrário, a saída I1 aparecerá.

 

A figura a seguir mostra a tabela verdade e as portas lógicas que implementam este circuito:

 

image 

 

 Agora, segue o bloco funcional de um multiplexador de 4 entradas e 1 saída.


image

  

Neste caso, são necessárias 2 entradas para seleção da entrada que será apresentada na saída, cobrindo as 4 possibilidades de seleção, como mostra a tabela verdade do circuito, na figura a seguir.

 

 image

 

O número de entradas de dados (potências de 2) determina o número de entradas de seleção necessárias. Por exemplo, para 2 entradas de dados, basta 1 entrada de seleção (21), para 4 entradas de dados, são necessárias 2 entradas de seleção (22), e assim por diante (23, 24, etc.).

 

Podem ser construídos multiplexadores para um número grande de entradas, usando técnicas de projeto de circuitos digitais (tabela verdade, mapas de Karnaugh e álgebra booleana), mas existem circuitos integrados que já oferecem multiplexadores de 4 (74151) e 8 (74157) entradas de dados.

 

Além disso, eles podem ser combinados, para formar multiplexadores com maior número de entradas. Por exemplo, 2 multiplexadores de 16 entradas podem implementar um de 32 entradas.

 

As aplicações comuns para multiplexadores são:

·        Roteamento de dados;

·        Conversão de dados em paralelo para série;

·        Sequenciamento de operações;

·        Geração de funções lógicas.

 

 

Demultiplexador

 

Ainda de acordo com TOCCI [1], o demultiplexador (DEMUX) é um circuito que tem funcionamento inverso ao de um multiplexador. Ele permite selecionar uma das saídas que vai apresentar os dados da única linha de entrada. Por isso, eles são chamados de distribuidores de dados.

 

Um bom exemplo do cotidiano é um sistema de telefone PABX, que recebe uma chamada e seleciona um dos ramais (saídas) para conectar à chamada.

 

A representação funcional de um demultiplexador de 8 saídas é vista a seguir:


image

  

A entrada de dados é I, as entradas de seleção são S2, S1 e S0 e as saídas são Z0 a Z7. Cada linha recebe apenas um bit, 0 ou 1. Existe uma correspondência clara entre os bits da seleção e a saída que será ativada. Por exemplo, se os bits de seleção (S2, S1, S0) forem 1, 1, 0, respectivamente, a saída Z6 será ativada, pois o número 110 em binário representa o número 6 em decimal, e assim por diante.

 

A figura a seguir mostra a tabela verdade para este circuito:

 

image

 

A figura a seguir mostra as portas lógicas que implementam este circuito:

 

image

 

 

Codificador

 

Este circuito, segundo TOCCI [1], tem um conjunto de linhas de entrada em que somente uma delas é ativada por vez, e produz um código de saída de vários bits, de acordo com a entrada que foi ativada.

 

Ele faz o oposto que um decodificador realiza. Na verdade, codificadores e decodificadores podem ser considerados a mesma coisa, dependendo do código aplicado na sua entrada.

 

Uma aplicação prática é a codificação das teclas de um teclado numérico (de 0 a 9) de uma calculadora eletrônica para o código binário, para processamento matemático pelos circuitos internos.

 

A figura a seguir mostra um diagrama de blocos deste circuito.

 

 image

  

As entradas são 10 linhas para os 10 algarismos decimais (0 a 9), na saída, temos 4 linhas para os bits representativos em binário para estes algarismos (de 0000 a 1001). Ou seja, a saída é uma representação em binário dos algarismos decimais.

 

Em geral, o número de entradas é uma potência de 2, mas, neste caso, as outras 6 entradas (de um total de 16) são desconsideradas, pois só queremos representar os 10 algarismos decimais, sem considerar os algarismos literais hexadecimais (A, B, C, D e F).

 


A tabela a seguir mostra os dados de saída para cada algarismo de entrada:

 

image


Para cada entrada (I0 a I9), que corresponde a um algarismo decimal (0 a 9), é mostrada a saída (DCBA), sua representação em binário, nesta ordem, e o algarismo decimal representado.

 

No exemplo da calculadora, cada tecla digitada no teclado passaria por este circuito, que geraria o código binário da tecla e armazenaria cada um deles, formando o número desejado, em binário, para operação pelos circuitos aritméticos da calculadora.

 

 

 

Decodificador

 

Segundo TOCCI [1], este circuito recebe um código binário na entrada e ativa apenas uma das suas saídas de acordo com o número presente na sua entrada.

 

Um exemplo do cotidiano pode ser um conjunto de portas, onde apenas uma delas abre de cada vez, dependendo do número que aparece na entrada do circuito. Por exemplo, se a entrada é o número 3 (011 em binário), apenas a porta 3 será aberta, caso o número seja 4, apenas a a porta número 4 será aberta e assim por diante.

 

Como exemplo didático, vamos aproveitar o exemplo da calculadora, visto na seção anterior, sobre o codificador.

 

Para cada tecla digitada pelo usuário, o algarismo equivalente deverá ser mostrado no visor da calculadora, seja em LED ou em cristal líquido.

 

Aproveitando que já temos o número binário que representa cada tecla digitada, na saída do codificador, vamos usar um decodificador comum de números BCD para display de 7 segmentos.

 

Neste caso, cada algarismo deverá acender os segmentos do display que formarão o algarismo na sua tela.

 

Um display de 7 segmentos é mostrado na figura abaixo:

 

 image

 

Cada segmento (de a até g) pode ser aceso (ativado) individualmente, formando os algarismos decimais e até mesmo desenhos diferentes. No exemplo acima, para mostrar o algarismo 7, são ativados os segmentos a, b, d, os outros permanecem apagados. Veja todos os desenhos que podem ser formados com um display de 7 segmentos:


image

 

A figura a seguir mostra o diagrama de blocos para este decodificador:

 

image


A tabela-verdade a seguir apresenta o funcionamento deste decodificador:

 

image


Para cada algarismo decimal, e seu equivalente binário BCD (entradas DCBA), são mostrados os segmentos (a até g) que serão ativados (acesos), marcados com o nível lógico 1. Por exemplo, para o algarismo 5 (binário 0101), serão ativados os segmentos a, c, d, e, f, g.

 

A figura a seguir ilustra bem esta aplicação de ler dados do teclado e apresenta-los em um display de 7 segmentos.

 

 image



Alguns circuitos integrados ativam a saída correspondente (com o nível lógico 1), já outros ativam a saída com o nível lógico 0 (zero), evitando ter que usar portas lógicas inversoras (NOT) em cada uma das saídas, caso o circuito seguinte exija um nível 0.

 

Os decodificadores são utilizados sempre que uma saída, ou um grupo delas, precisa ser ativada para uma combinação específica de níveis de entrada.

 

Algumas aplicações comuns são:

·        Ativação sequencial de saídas, com um contador de entrada, para ligar/desligar dispositivos em determinados momentos;

·        Em um computador, respondendo aos endereços gerados pela CPU para ativar uma posição específica de memória;

·        Ativação de displays de 7 segmentos, para apresentar números decimais de 0 a 9, representados em binário BCD (“Bynary Coded Decimal”);

 

 

4 – Considerações finais

Este é mais um artigo da série DIRETO AO PONTO, que eu estou escrevendo para a DIO.

 

Desta vez, foram tratados outros circuitos combinacionais diferentes das portas lógicas básicas, como multiplexadores e codificadores, muito usados em computadores e circuitos eletrônicos, como calculadoras eletrônicas.

 

Os multiplexadores (e demultiplexadores) são usados para roteamento de dados, selecionando caminhos de saída para apresentação das entradas dadas.

 

Os codificadores (e decodificadores) servem para conversões de códigos diversos, seja para conversão de bases numéricas ou para converter códigos usados por dispositivos de entrada e de saída, de forma a integrá-los.

 

Nos próximos artigos, serão tratados os circuitos eletrônicos analógicos e os circuitos digitais sequenciais, importantíssimos para as memórias dos computadores e processamento da CPU.

 

 

5 – Referências

 

[1] Ronald TOCCI, et al. Sistemas Digitais – princípios e aplicações. 12ª Edição, Pearson, 2019.

 

 

Artigos desta série: ( < ) Anterior | Índice | Seguinte ( > )

 

 

 

Compartilhe
Comentários (0)