Implemente a função lógica Z abaixo usando as seguintes combinações de circuitos integrados (CIs):
S=B(A+C)+C(A+B)+A \bar{B} C+\bar{A} B C
(a) 74151 .

Passo 1

O que o enunciado pede e quais informações temos.
  • Pede: implementar a função lógica
S = B(A+C) + C(A+B) + A\bar{B}C + \bar{A}BC
usando o CI \text{74151} (um multiplexador 8:1).
  • Informações relevantes:
    • A \text{74151} é um multiplexador 8 para 1: ela seleciona um dos oito sinais de entrada D_0,\dots,D_7 conforme as linhas de seleção S_2,S_1,S_0.
    • A \text{74151} fornece uma saída ativa-baixa Y e normalmente também a saída complementada \overline{Y} (ou nome equivalente como W). Para obter a função direta (não invertida) normalmente usa-se a saída não-invertida disponível; se só houver a saída ativa-baixa, é preciso programar as entradas D_n invertidas ou usar um inversor.
    • Há um pino de enable/strobe (entrada de habilitação) que deve ser ativado (normalmente ligado a nível baixo) para que o chip funcione.

Passo 2

Simplificar a expressão para facilitar a implementação.
Começo desenvolvendo os termos dados:
B(A+C)=AB+BC, \qquad C(A+B)=AC+BC.
Somando esses dois:
B(A+C)+C(A+B) = AB + AC + BC + BC = AB+AC+BC.
Os dois últimos termos originais são
A\bar{B}C+\bar{A}BC = C(A\bar{B}+\bar{A}B) = C(A\oplus B).
Agora somo tudo:
S = AB+AC+BC + C(A\oplus B).
Observe que os termos AC e BC já cobrem as parcelas de C(A\oplus B) quando A ou B é 1, logo são redundantes. Podemos verificar diretamente montando a tabela de verdade (fazer isso no passo seguinte) ou reconhecer que a forma mínima é
S = AB + AC + BC.
Essa é a expressão simplificada: a função é “1” quando pelo menos duas das entradas A,B,C são 1 (função maioria de 3 entradas).

Passo 3

Tabela de verdade e identificação dos mintermos.
Faço a tabela para (A,B,C) e S:
  • (0,0,0)\to S=0
  • (0,0,1)\to S=0
  • (0,1,0)\to S=0
  • (0,1,1)\to S=1
  • (1,0,0)\to S=0
  • (1,0,1)\to S=1
  • (1,1,0)\to S=1
  • (1,1,1)\to S=1
Portanto os mintermos em que S=1 são \\ m(3,5,6,7) correspondendo aos números binários 011,101,110,111.

Passo 4

Como mapear isso no \text{74151}.
  • Convenção usada: D_n é a entrada selecionada quando as linhas de seleção estão no valor binário n. Adoto a correspondência usual S_2 = A,\qquad S_1 = B,\qquad S_0 = C,de modo que D_0 corresponde a A B C = 000, D_1 a 001, …, D_7 a 111.
  • Queremos que a saída do multiplexador represente S (valor direto, não invertido). A \text{74151} normalmente fornece as saídas Y (ativa-baixa) e \overline{Y} (a não-invertida). Se houver a saída \overline{Y} disponível no encapsulamento, usaremos ela diretamente; se só houver Y disponível, deve-se inverter Y externamente ou carregar as D_n com valores complementados.
  • Para facilitar, programamos as entradas D_0\ldots D_7 para os valores de S conforme a tabela de verdade (assumindo que vamos usar a saída não-invertida \overline{Y}). Ou seja, colocamos D_n = 1 quando S=1 no caso n, e D_n = 0 quando S=0.

Passo 5

Definir os valores de D_0 a D_7 e as ligações físicas.
Da tabela (ordem D_0 para 000 até D_7 para 111):
\begin{aligned} D_0 &= 0\quad (000)\\\ D_1 &= 0\quad (001)\\\ D_2 &= 0\quad (010)\\\ D_3 &= 1\quad (011)\\\ D_4 &= 0\quad (100)\\\ D_5 &= 1\quad (101)\\\ D_6 &= 1\quad (110)\\\ D_7 &= 1\quad (111) \end{aligned}
Conexões recomendadas no \text{74151}:
  • S_2 = A,
  • S_1 = B,
  • S_0 = C.
  • Programar as entradas D_0\ldots D_7 conforme os valores acima (conectar cada D_n a VCC se D_n=1 ou a GND se D_n=0, ou implementar com portas/ligações conforme necessário).
  • Habilitação (strobe/enable): colocar o pino de enable no nível que habilite o mux (normalmente ligar a terra se o enable for ativo-baixo). Verificar no datasheet do encapsulamento a polaridade exata do pino de habilitação.
  • Saída: usar a saída não-invertida \overline{Y} (às vezes rotulada como W ou \overline{Y} no datasheet). Se o encapsulado que tiver disponível só fornecer a saída ativa-baixa Y, então usar aquela saída e inverter logicamente (por exemplo com um inversor) ou programar D_n complementares (isto é, colocar zeros onde a função é 1 e uns onde é 0) e usar Y diretamente — mas a opção mais direta é usar \overline{Y}.

Passo 6

Breve justificativa e dicas para prova (como fazer rápido na hora)
  • A ideia chave foi simplificar S até S=AB+AC+BC. Sempre procurar simplificações algébricas ou mintermos; isso facilita preencher as entradas de um MUX.
  • Para usar um \text{74151} basta: (1) escolher quais variáveis vão para as linhas de seleção; (2) construir a tabela da função para os 8 casos; (3) colocar cada resultado nas entradas D_0\ldots D_7; (4) lembrar se a saída do chip é invertida ou não e usar a saída adequada ou inverter se necessário; (5) não esquecer do pino de enable.
  • No caderno da prova, faça rápido a tabela de verdade (8 linhas), marque onde S=1 e copie direto para D_n. Isso evita erros de álgebra mais longa.

Resposta

Conectar S_2=A, S_1=B, S_0=C. Programar as entradas do 74151 como
D_0=0,\;D_1=0,\;D_2=0,\;D_3=1,\;D_4=0,\;D_5=1,\;D_6=1,\;D_7=1.
Habilitar o chip (strobe no nível ativo) e usar a saída não-invertida \overline{Y} (ou usar Y e inverter se necessário). Assim a saída do 74151 implementa S=AB+AC+BC.

Exercícios relacionados