Ex.5. Mostre como dois CIs 74157 e um 74151 podem ser configurados para formar um multiplexador 16:1 sem a necessidade de lógica adicional. Identifique as entradas I_{0} a I_{15} para mostrar como elas correspondem ao código de seleção.

Passo 1

O que o enunciado pede e o que já temos de dado.
  • Pedido: montar um multiplexador 16\!:\!1 (escolhe uma entre 16 entradas) usando somente dois CI 74157 e um CI 74151, sem usar lógica externa adicional; e identificar as entradas \,I_{0} a \,I_{15} mostrando a correspondência com o código de seleção.
  • Componentes disponíveis (informação que vou usar para resolver):
    • Dois CI 74157 (cada um contém quatro multiplexadores 2:1 com uma entrada de seleção comum e uma entrada de habilitação).
    • Um CI 74151 (multiplexador 8:1 com três linhas de seleção e entradas I_0\ldots I_7; fornece saída selecionada).
  • Resultado esperado: ligação (quem vai em que pino conceitualmente) e a tabela mapeando o código de seleção de 4 bits para as entradas \,I_{0} a \,I_{15}.

Passo 2

O que faz cada CI — explicação didática passo a passo (sem pular etapas).
  • Conceito básico de multiplexador: um multiplexador é um “escolhedor” de sinais. Com n\) linhas de seleção consegue escolher uma entre \(2^{n}\) entradas. Por exemplo, um multiplexador \(2\!:\!1\) tem uma linha de seleção \(S\); se \(S=0\) ele passa a entrada \(A\), se \(S=1\) passa a entrada \(B\). - 74157 (quad 2:1): - Internamente tem quatro mux independentes 2:1. Cada mux tem duas entradas (vou chamar genericamente de entrada par e ímpar) e uma saída. - Todas as quatro muxes do mesmo CI compartilham a mesma linha de seleção (vou chamar essa linha de \(S_0\) quando usada no projeto). - Também existe uma entrada de habilitação (enable); para que as saídas sigam a seleção a habilitação deve estar no nível apropriado (normalmente habilitação ativa em nível baixo em várias famílias — na prática deve-se colocar a habilitação no estado que permita operação; vou explicitar isso na ligação). - Comportamento (conceitual): para cada canal \(j\) do 74157, \[\text{saida}_j = \begin{cases} \text{entrada par}_j, & \text{se } S_0=0,\\[4pt] \text{entrada impar}_j, & \text{se } S_0=1. \end{cases}
  • 74151 (8:1):
    • Tem oito entradas nomeadas I_0,\ldots,I_7\] e três linhas de seleção (chamadas aqui de \(S_1,S_2,S_3), que em conjunto escolhem qual das oito entradas aparecerá na saída.
    • Comportamento (conceitual): se as três linhas (S_3,S_2,S_1) formam o número binário p\in\{0,\dots,7\}, então a saída vale a entrada I_p.
    • Em muitas implementações a ordem dos pinos de seleção é tal que uma linha é LSB; no nosso projeto eu vou adotar a convenção clara: S_1 = bit menos significativo do grupo de três e S_3 = bit mais significativo (vou explicitar a fórmula de índice abaixo). Isto é só escolha de notação — a ligação física segue essa mesma ordem dos fios.]

Passo 3

Estratégia de montagem (ideia geral antes dos detalhes elétricos).
  • Um 16\!:\!1 pode ser visto como duas etapas:
    1. organizar 8 multiplexadores 2:1 que pre-selecionam pares de entradas (I_0\!/I_1), (I_2\!/I_3),\dots,(I_{14}\!/I_{15}). Cada um desses mux 2:1 escolhe qual das duas entradas do par vai passar, usando o bit menos significativo de seleção (chamado S_0).
    2. usar um multiplexador 8:1 para escolher qual dos 8 resultados pré-selecionados será a saída final; esse 8:1 é comandado pelos 3 bits mais significativos (S_3,S_2,S_1).
  • Os dois 74157 fornecem exatamente 8 muxes 2:1 (4 em cada CI). Assim, os dois 74157 implementam a etapa (1). O 74151 implementa a etapa (2).
  • Resumo prático de sinais:
    • S_0 (LSB) → linha de seleção comum dos dois 74157.
    • (S_3,S_2,S_1) (os três bits mais significativos) → linhas de seleção do 74151 (mapearei qual é qual mais abaixo).
    • Saídas dos canais dos 74157 → entradas I_0\ldots I_7 do 74151.
    • Habilitações: colocar habilitação dos 74157 e do 74151 no estado que permita operação contínua (normalmente lógico baixo para habilitar em famílias TTL; no diagrama de princípio explicitarei: EN _{157} = ativo, EN _{151} = ativo).

Passo 4

Detalhamento de ligações entre os CIs (quem alimenta quem), com nomes e identificação de pares.
  • Identificar os dois 74157 como U_A e U_B.
    • U_A contém quatro muxes que eu uso para formar os pares correspondentes às entradas globais \,I_0\!-\!I_7:
      • canal 0 de U_A seleciona entre \,I_0 e \,I_1 → saída conecta ao pino I_0 (entrada 0) do 74151;
      • canal 1 de U_A seleciona entre \,I_2 e \,I_3 → saída conecta ao pino I_1 do 74151;
      • canal 2 de U_A seleciona entre \,I_4 e \,I_5 → saída conecta ao pino I_2 do 74151;
      • canal 3 de U_A seleciona entre \,I_6 e \,I_7 → saída conecta ao pino I_3 do 74151.
    • U_B contém quatro muxes que eu uso para formar os pares correspondentes às entradas globais \,I_8\!-\!I_{15}:
      • canal 0 de U_B seleciona entre \,I_8 e \,I_9 → saída conecta ao pino I_4 do 74151;
      • canal 1 de U_B seleciona entre \,I_{10} e \,I_{11} → saída conecta ao pino I_5 do 74151;
      • canal 2 de U_B seleciona entre \,I_{12} e \,I_{13} → saída conecta ao pino I_6 do 74151;
      • canal 3 de U_B seleciona entre \,I_{14} e \,I_{15} → saída conecta ao pino I_7 do 74151.
  • Linhas de seleção e habilitação:
    • Conectar S_0 (LSB do código de seleção de 4 bits) à entrada de seleção comum dos dois 74157 (assim todos os 8 2:1 usam o mesmo S_0).
    • Conectar S_1,S_2,S_3 (os três bits mais significativos) às entradas de seleção do 74151. Vou adotar a convenção prática: \text{no }74151:\quad A=S_1,\; B=S_2,\; C=S_3,onde A é o bit menos significativo entre os três e C o mais significativo. Assim o índice do I escolhido pelo 74151 é p = \bigl(C\,B\,A\bigr)_2 = (S_3\,S_2\,S_1)_2,e o 74151 seleciona então sua entrada I_p.
    • Habilitações: colocar a linha de enable de cada 74157 no nível que deixa as saídas ativas (normalmente LOW em TTL — ou seja, ligar EN _{157} a 0 lógico). Habilitar o 74151 também (EN _{151} ativo). Isso evita necessidade de lógica externa.
  • Comportamento final (resumo):
    • Primeiro nível (os 74157): cada par (I_{2p},I_{2p+1}) é reduzido a um único sinal conforme S_0.
    • Segundo nível (o 74151): escolhe qual desses 8 sinais pré-selecionados será a saída final, conforme p=(S_3S_2S_1)_2.
    • Índice da entrada final selecionada (índice global k\in\{0,\ldots,15\}) é k = 2\cdot p + S_0 = 2\cdot (S_3S_2S_1)_2 + S_0.

Passo 5

Tabela explícita de correspondência entre o código de seleção de 4 bits e a entrada escolhida \,I_k — listar todas as 16 combinações (esta é a identificação pedida).
  • Aplicando a fórmula k = 2\cdot (S_3S_2S_1)_2 + S_0, segue a tabela (cada linha mostra (S_3S_2S_1S_0)\Rightarrow I_k):
S_3S_2S_1S_0 = 0000 \Rightarrow I_{0}
S_3S_2S_1S_0 = 0001 \Rightarrow I_{1}
S_3S_2S_1S_0 = 0010 \Rightarrow I_{2}
S_3S_2S_1S_0 = 0011 \Rightarrow I_{3}
S_3S_2S_1S_0 = 0100 \Rightarrow I_{4}
S_3S_2S_1S_0 = 0101 \Rightarrow I_{5}
S_3S_2S_1S_0 = 0110 \Rightarrow I_{6}
S_3S_2S_1S_0 = 0111 \Rightarrow I_{7}
S_3S_2S_1S_0 = 1000 \Rightarrow I_{8}
S_3S_2S_1S_0 = 1001 \Rightarrow I_{9}
S_3S_2S_1S_0 = 1010 \Rightarrow I_{10}
S_3S_2S_1S_0 = 1011 \Rightarrow I_{11}
S_3S_2S_1S_0 = 1100 \Rightarrow I_{12}
S_3S_2S_1S_0 = 1101 \Rightarrow I_{13}
S_3S_2S_1S_0 = 1110 \Rightarrow I_{14}
S_3S_2S_1S_0 = 1111 \Rightarrow I_{15}
(Esta lista mostra explicitamente que os dois 74157 implementam seleção dentro dos pares usando S_0 e que o 74151 escolhe qual par, via (S_3,S_2,S_1).)

Passo 6

Observações práticas, dicas e cuidados para a hora da prova ou montagem real
  • Habilitação (enable): verificar no datasheet da família TTL/CMOS que estiver usando se a entrada de enable é ativa em nível baixo ou alto; na prática para operação contínua coloque essa linha no nível que habilita as saídas (geralmente ligar a GND em TTL para habilitar). Fazer isso evita ter que adicionar portas extra para controlar enables.
  • Saída invertida: algumas versões do 74151 disponibilizam tanto a saída complementada quanto a não-complementada em pinos separados. Se precisar do sinal não-invertido e apenas a versão complementada estiver acessível, consulte o datasheet — muitas famílias têm a saída direta disponível. No enunciado não foi pedido ajuste de polaridade, então a conexão proposta assume uso da saída apropriada do 74151.
  • Ordem dos bits de seleção: na resolução eu adotei S_0 como bit menos significativo (seleção dentro do par) e (S_3,S_2,S_1) como os três bits mais significativos (que formam o índice do par). Se no seu datasheet físico a ordem de pinos do 74151 for diferente, basta mapear os fios de seleção de acordo com a mesma convenção numérica que usei: o número binário formado por (S_3,S_2,S_1) deve endereçar o par correto p.
  • Sem lógica adicional: todos os caminhos acima usam apenas os três chips mencionados; não foi usada nenhuma porta extra.

Resposta

S_3S_2S_1S_0 = 0000 \Rightarrow I_{0}
S_3S_2S_1S_0 = 0001 \Rightarrow I_{1}
S_3S_2S_1S_0 = 0010 \Rightarrow I_{2}
S_3S_2S_1S_0 = 0011 \Rightarrow I_{3}
S_3S_2S_1S_0 = 0100 \Rightarrow I_{4}
S_3S_2S_1S_0 = 0101 \Rightarrow I_{5}
S_3S_2S_1S_0 = 0110 \Rightarrow I_{6}
S_3S_2S_1S_0 = 0111 \Rightarrow I_{7}
S_3S_2S_1S_0 = 1000 \Rightarrow I_{8}
S_3S_2S_1S_0 = 1001 \Rightarrow I_{9}
S_3S_2S_1S_0 = 1010 \Rightarrow I_{10}
S_3S_2S_1S_0 = 1011 \Rightarrow I_{11}
S_3S_2S_1S_0 = 1100 \Rightarrow I_{12}
S_3S_2S_1S_0 = 1101 \Rightarrow I_{13}
S_3S_2S_1S_0 = 1110 \Rightarrow I_{14}
S_3S_2S_1S_0 = 1111 \Rightarrow I_{15}

Exercícios relacionados