Use o mapa de Karnaugh para simplificar as expressões abaixo com entradas A, B, C e D. Implemente os resultados usando somente os circuitos integrados (CIs) indicados. S=\sum(0,2,5,7,11,13,15), 74 \mathrm{LS} 00.
Passo 1
O que o enunciado pede e os dados que temos (sem resolver ainda):
Pede para simplificar a função booleana S com entradas A,B,C,D usando mapa de Karnaugh e depois implementar o resultado usando apenas CIs 74LS00 (portas NAND de 2 entradas).
Foi dada a função por minterms:S=\sum(0,2,5,7,11,13,15).
Não há restrição extra (por exemplo, forma canônica exigida). Vou simplificar ao menor número de termos/literais possível usando K-map e depois mostrar um circuito usando somente NANDs (74LS00).
Passo 2
Montando o mapa de Karnaugh 4x4 (linhas = AB em ordem Gray 00,01,11,10; colunas = CD em ordem Gray 00,01,11,10) e preenchendo os 1’s para os minterms dados.
Lista binária dos minterms (com A MSB, D LSB):
0 = 0000 (linha AB=00, coluna CD=00)
2 = 0010 (linha AB=00, coluna CD=10)
5 = 0101 (linha AB=01, coluna CD=01)
7 = 0111 (linha AB=01, coluna CD=11)
11 = 1011 (linha AB=10, coluna CD=11)
13 = 1101 (linha AB=11, coluna CD=01)
15 = 1111 (linha AB=11, coluna CD=11)
Mapa (colunas etiquetadas na ordem 00,01,11,10; linhas 00,01,11,10):
Linha AB=00: col 00\to1 (m0), col 01\to0, col 11\to0, col 10\to1 (m2).
Linha AB=01: col 00\to0, col 01\to1 (m5), col 11\to1 (m7), col 10\to0.
Linha AB=11: col 00\to0, col 01\to1 (m13), col 11\to1 (m15), col 10\to0.
Linha AB=10: col 00\to0, col 01\to0, col 11\to1 (m11), col 10\to0.
(Aqui descrevi onde coloquei cada 1 no mapa — isso é suficiente para começar a agrupar.)
Passo 3
Fazendo agrupamentos no mapa (buscando blocos de tamanho 1,2,4,8 com forma retangular e poder de envolver nas bordas):
Observação de um bloco conveniente de 4 uns: as quatro células com D=1 e B=1, ou seja minterms 5,7,13,15 (linhas AB=01 e AB=11, colunas CD=01 e CD=11). Nessas quatro células:
B=1 é constante (porque linhas têm B=1),
D=1 é constante (porque colunas têm D=1).
Logo o bloco 2x2 gera o termo \;B D.
Outro bloco: os dois 1’s na linha AB=00 (m0 e m2) estão em colunas CD=00 e CD=10. Essas colunas são adjacentes (wrap-around entre a última e a primeira coluna), então formam um par:
Na linha AB=00 temos A=0,\;B=0 (ambos constantes), e entre as duas colunas D é 0 constante (CD=00 e 10 têm D=0), enquanto C varia.
Portanto o par produz o termo \;\bar{A}\,\bar{B}\,\bar{D}.
Restou o 1 do minterm 11 (m11, posição AB=10,\;CD=11). Esse 1 pode ser emparelhado com m15 (AB=11,CD=11) verticalmente (as linhas AB=10 e AB=11 são adjacentes). Nesse par:
A=1 é constante (porque em ambas as linhas A=1),
C=1 e D=1 são constantes (coluna CD=11).
Logo o par gera o termo \;A C D.
Esses agrupamentos cobrem todos os 1’s do mapa (grupos permitidos a se sobrepor). São termos essenciais: o par que cobre m11 é necessário, o par que cobre m0,m2 é necessário, e o bloco 2x2 (BD) cobre quatro minterms de uma só vez.
Passo 4
Escrevendo a expressão simplificada a partir dos grupos:
Dos grupos obtidos temos os termos:
\bar{A}\bar{B}\bar{D} (do par que cobre m0 e m2),
B D (do bloco 2x2 que cobre m5,m7,m13,m15),
A C D (do par que cobre m11 e m15).
Portanto a forma mínima (SOP simplificada) é
S = \bar{A}\,\bar{B}\,\bar{D} \;+\; B\,D \;+\; A\,C\,D.
Uma pequena reorganização útil (fatoração) é:
S = \bar{A}\bar{B}\bar{D} \;+\; D\,(B + A C),
que às vezes ajuda a pensar na implementação física (mostra que dois dos termos compartilham o literal D).
Passo 5
Estratégia para implementar somente com portas NAND (74LS00):
Lembrete rápido sobre portas NAND:
Uma porta NAND de duas entradas tem saída \mathrm{NAND}(X,Y) = \overline{X\cdot Y}.
Inversor com NAND: \overline{X} = \mathrm{NAND}(X,X) (ligando as duas entradas juntas).
AND com NAND: X\cdot Y = \overline{\mathrm{NAND}(X,Y)} — ou seja, faz-se uma NAND(X,Y) e inverte o resultado com outro NAND em que ambas as entradas recebem a saída anterior.
OR com NAND (De Morgan): X + Y = \overline{\overline{X}\cdot\overline{Y}} = \mathrm{NAND}(\overline{X},\overline{Y}). Para mais de dois termos, aplica-se recursivamente ou usa-se a forma em cascata indicada abaixo.
Vou implementar a expressão \;S = T_1 + T_2 + T_3 com T_1=\bar{A}\bar{B}\bar{D},\;T_2=BD,\;T_3=ACD.
Primeiro gero as inversões necessárias: \bar{A},\bar{B},\bar{C},\bar{D} usando NAND com entradas atadas.
Depois construo cada termo T_i como AND de 2 ou 3 literais usando NAND seguido de inversão (usando NAND de entrada dupla para inverter).
Finalmente faço a soma (OR) dos termos usando a identidade X+Y=\mathrm{NAND}(\mathrm{NAND}(X,X),\mathrm{NAND}(Y,Y)). Para três termos, uso operação em árvore:
U = X + Y = \mathrm{NAND}(\mathrm{NAND}(X,X),\mathrm{NAND}(Y,Y))
S = U + Z = \mathrm{NAND}(\mathrm{NAND}(U,U),\mathrm{NAND}(Z,Z)).
Tudo isso usa apenas portas NAND de 2 entradas (portas do 74LS00). Abaixo dou um passo-a-passo de ligações gate-a-gate para que seja executável numa bancada.
Passo 6
Implementação prática com portas NAND (descrição gate-a-gate). Cada porte mencionada é uma porta NAND de 2 entradas (74LS00). Vou numerar as portas ficticiamente como G1,G2,\ldots para explicar as ligações; cada Gx é uma porta NAND de 2 entradas.
Geração de inversores básicos (usando NAND com entradas atadas):
G20: entradas = (saída G18=\overline{U}, saída G19=\overline{T_3}) \;\Rightarrow saída final S = \overline{\overline{U}\cdot\overline{T_3}} = U + T_3 = T_1 + T_2 + T_3.
Notas sobre o circuito prático:
Todo o circuito acima usa apenas portas NAND de 2 entradas; cada porta corresponde a uma porta física dentro de um CI 74LS00 (que traz quatro portas NAND). Contando as portas usadas G1 até G20 temos 20 portas NAND — portanto seriam necessários 5 CIs 74LS00 (cada CI tem 4 portas) para implementar tudo. Dependendo de otimizações (por exemplo, compartilhar inversores já gerados) dá para reduzir o número de portas; a descrição acima mostra a forma direta, passo-a-passo, que é mais fácil de seguir na bancada.
Nas ligações físicas, lembre-se de:
Não deixar entradas flutuantes.
Alimentar adequadamente os CIs (Vcc, GND).
Se quiser reduzir portas, observar onde uma mesma inversão ou sinal intermediário pode ser reutilizado em vez de recomputado.