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.
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 usualS_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.
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.