Componentes de Circuíto de Propósito Geral
Multiplexadores
Sobre
O multiplexador ou como é comumente chamado, MUX, é um bloco que tem como objetivo selecionar uma informação dentre as várias possíveis entradas, em que a seleção da entrada depende de uma ou mais chaves seletoras. Ou seja, o bloco é simplesmente um seletor de dados.
Para representar o bloco utilizamos dois números, em que o primeiro representa a quantidade de entradas e o segundo o número de saídas. Tome um MUX 4:1 como exemplo
As entradas e assim por diante são selecionadas quando o valor representado em binário pelas chaves seletoras é igual a seu seu índice, note que o bit mais significativo das chaves de seleção encontra-se representado a esquerda, enquanto as entradas estão ordenadas de ordem crescente de cima para baixo.
De maneira geral, o número de entradas em um MUX podem ser tantas quanto seja necessário, no entanto, por conveniência sempre as utilizamos como potências de 2. Note que, k chaves podem reduzir 2^k entradas a uma única saída, assim, para n entradas serão necessárias log2(n) chaves seletoras.
Circuito Combinacional
De início, por simplicidade, vamos nos concentrar no MUX 2:1 para entender a lógica por trás do bloco.
Tabela Verdade MUX 2:1
0 | |
1 |
A fim de escalar o circuito, podemos expandir o número de entradas. Desse modo, para desenvolver um MUX 4:1 temos duas saídas: podemos simplesmente expandir a lógica utilizada anteriormente ou é possível utilizar os próprios multiplexadores 2:1 anteriormente desenvolvidos. Observe as duas implementações respectivamente:
Tabela Verdade MUX 4:1
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
Observe a função booleana resultante da soma dos produtos na primeira implementação
Note que a partir da segunda implementação é possível cascatear quantos multiplexadores forem necessários, de forma que qualquer MUX do formato 2^n:1 pode ser representado a partir de outros MUX.
Circuitos Lógicos através de Multiplexadores
Multiplexadores podem ser utilizados para um propósito mais geral através da simplificação de circuitos lógicos, exploraremos esse axioma em prática nos exercícios ao final do capítulo, antes vamos entender a ideia por trás da afirmação.
Teorema da expansão de Shannon
Não iremos realizar a demonstração do teorema e ficará ao cargo do leitor se aprofundar no tema. O teorema implica que qualquer função booleana pode ser reescrita da seguinte forma:
Por exemplo
É importante ressaltar que a complexidade final da expressão booleana dependerá da escolha de , podendo ser mais ou menos complexa que a lógica inicial, de modo que é vantajoso explorar diferentes escolhas de para otimização. Veja a seguir um má escolha para o circuito anterior:
Veja que podemos realizar a expansão com mais de uma variável em evidencia, de modo que essas variáveis podem representar as diversas chaves seletoras em um MUX n:1
Finalmente, podemos concluir que a expansão de Shannon pode ser feita recursivamente:
Dessa forma em muitos casos a reorganização de circuitos para utilização de multiplexadores podem simplificar a lógica, além disso qualquer circuito pode ser representado utilizando apenas multiplexadores
Demultiplexador
O material não irá se aprofundar nesse circuito, contudo, como o nome sugere, podemos inferir que sua função é transmitir uma única entrada de sinal por uma de suas saídas. Assim, podemos classificá-lo como direcionador de um dado.
Tabela Verdade Demux 1:2
0 | 0 | |
1 | 0 |
Tabela Verdade Demux 1:4
0 | 0 | 0 | 0 | 0 | |
0 | 1 | 0 | 0 | 0 | |
1 | 0 | 0 | 0 | 0 | |
1 | 1 | 0 | 0 | 0 |
Codificadores e Decodificadores
Decoders
Sobre
Dispositivos lógicos utilizados para conversão de determinada entrada de dados em um certo formato especificado, por exemplo, uma entrada de números binários que são convertidas para desejadas saídas. Um decoder de n inputs (entradas) tem 2^n outputs (saídas), assim a nomenclatura destes elementos associam-se de acordo com tais valores, 2:4 Decoder (2 entradas e 4 saídas).
w0, w1 - Entradas do 2:4 Decoder y0, y1, y2, y3 - Saídas do 2:4 Decoder
Agora, a tabela verdade dessas entradas:
w₁ | w₀ | y₀ | y₁ | y₂ | y₃ |
---|---|---|---|---|---|
0 | 0 | 1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 1 |
Note como todas as saídas pelo menos possuem “1” como um dos valores - no primeiro caso y0, segundo caso y1 e assim sucessivamente - essas saídas chamam-se one-hot code, uma vez que cada possui somente um valor ativo.
Circuito Lógico
A implementação do Decoder utilizando elementos de lógica digital segue a seguinte forma:
Veja que cada entrada representa um minterm (minitermo) - expressão booleana que resulta em único valor (0 ou 1). Neste caso são os seguintes:
y0 = !w0!w1 y1 = w0!w1 y2 = !w0w1 y3 = w0w1
Portanto, novamente verifica-se a tabela verdade descrita anteriormente
Uso prático
Em displays de 7 segmentos, utilizados para a representação de números em displays digitais, como painéis de horário encontrados na rua. Um decodificador de display de 7 segmentos converte códigos binários ou outros tipos de entrada em sinais que acendem os segmentos apropriados do display. Ademais, os decodificadores são usados para mostrar números em medidores de velocidade, temperatura e combustível.
Encoder
Dispositivos lógicos que apresentam função contrária ao dos Decoders, ou seja, codifica uma determinada entrada de dados para certo formato especificado. Possui 2^n inputs (entradas) e n outputs (saídas), dos quais pelo menos um deles deve ter o valor 1.
Por exemplo, para um Encoder 4:2 (4 entradas e 2 saídas), as entradas são:
w₃ | w₂ | w₁ | w₀ | y₁ | y₀ |
---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 1 |
Circuito Lógico
A implementação do Encoder utilizando elementos de lógica digital segue a seguinte forma:
Veja que a saída y0 depende somente das entradas w1 e w3, isto é, quando w1 ou w3 valem 1, y0 vale 1. Além disso, da mesma forma a saída y1 depende apenas das entradas w2 ou w3, quando w2 ou w3 valem 1, y1 vale 1 também.
Dessa forma, pode-se usar duas portas OR para obter as saídas y0 e y1, com (w1 OR w3) e (w2 OR w3), respectivamente. Por fim, nota-se que a entrada w0 não exerce influência, por isso não se liga a porta alguma.
Uso prático
Em sistemas de comunicação digital, como a transmissão de dados pela internet via modem ou rede sem fio, os dados são frequentemente codificados para garantir uma transmissão eficiente e segura. O decodificador no modem ou roteador converte os dados codificados recebidos em um formato adequado, permitindo o acesso a websites, e-mails e outros serviços online. Dessa forma, os decoders diminuem o número de bits necessários para representação de determinada informação e também minimizam o número de cabos utilizados.
Exercícios
- Através da seguinte tabela verdade, construa um circuito utilizando apenas um multiplexador 2:1
A | B | C | f |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
- Utilize a seguinte função para derivar um circuito através da expansão de shannon com duas variaveis em evidência, faça a escolha mais eficiente.
- O crossbar switch é um circuito útil em diversas aplicações que conectam dois grupos de fios nas quais o padrão de conexão muda de tempo em tempo. Observe sua lógica de funcionamento através da figura :
A entrada controla a conexão das entradas e as saídas . Se o circuito conecta com e com , caso a conexão é invertida. Construa um crossbar switch 2x2 através de dois multiplexadores 2:1
-
Implemente a função f(w1, w2, w3) = ∑ m(0, 1, 2, 4, 5, 7) utilizando um encoder 3:8 e uma porta OR (inspirado no livro Fundamentals of Digital Logic with Verilog Design).
-
Implemente a função f(w1, w2, w3) = ∑ m(1, 3, 5, 7) utilizando um decoder 3:8 e uma porta OR.
-
Faça um circuito que converta um código binário em Gray code de acordo com a tabela (semelhante ao exercício exemplo 4.27 no livro Fundamentals of Digital Logic with Verilog Design):
b₂ | b₁ | b₀ | g₂ | g₁ | g₀ |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
Gabarito
4-
- Fazer a tabela verdade dos mintermos.
A | B | C | F |
---|---|---|---|
0 | 0 | 0 | m₀ |
0 | 0 | 1 | m₁ |
0 | 1 | 0 | m₂ |
0 | 1 | 1 | m₃ |
1 | 0 | 0 | m₄ |
1 | 0 | 1 | m₅ |
1 | 1 | 0 | m₆ |
1 | 1 | 1 | m₇ |
- Veja que somente interessam as entradas mintermos m0, m1, m2, m4, m5, m7. Agora, fazer a tabela verdade do Decoder 3:8.
w₇ | w₆ | w₅ | w₄ | w₃ | w₂ | w₁ | w₀ | y₂ | y₁ | y₀ |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
- Perceba que para cada m_n (mintermo n) a saída w_n (saída w n) está ativada, ou seja, possui valor 1. Com isso, basta identificar quais entradas (y2, y1, y0) associam-se aos mintermos desejados (m0, m1, m2, m4, m5, m7). Considerando que cada entrada somente possuirá somente uma saída 1, utiliza-se a porta OR ligada aos mintermos de interesse.
5- Semelhante ao exercício 4
6-
- Perceba que para cada valor em g2, o valor em b2 é semelhante, logo: g2 = b2.
- Além disso, a saída g1 resulta da operação XOR entre b1 e b2 (b1 XOR b2), logo: g1 = b1 XOR b2.
- Por fim, a saída g0 resulta da operação XOR entre b0 e b1 (b0 XOR b1), logo: g0 = b0 XOR b1.
- Felipe Camargo Cerri - 15451119
- Rodrigo Silva de Almeida - 15645380
- Matheus Aparecido de Almeida Rodriguez - 14597868
- FUNDAMENTALS OF DIGITAL LOGIC WITH VERILOG DESIGN, THIRD EDITION Digital Design and Computer Architecture
- https://eaulas.usp.br/portal/video.action?idItem=7419
- https://circuitverse.org/