Altifigence Academy

15 / 63 · Conceito

Da tabela-verdade ao MUX e à expansão de Shannon

Derive a seleção por equações e decomponha qualquer função lógica com um MUX.

Derive a regra de seleção

Para produzir a com sel=0 e b com sel=1, multiplique cada entrada por sua condição de seleção e una-as por OR:

y=s‾a+sby=\overline s a+s b

Substituir s=0s=0 deixa a; substituir s=1s=1 deixa b. Se a=b, mudar sel não muda a saída. Para detectar erros de seleção, são necessários casos com dados diferentes.

O caminho azul indica a entrada escolhida. Faça a e b diferentes e mude sel. Com valores iguais, fica difícil distinguir uma seleção mal conectada apenas pela saída.

O caminho de dados muda com a seleção

y = sel ? b : a

O MUX é uma decomposição geral de funções

Para uma função booleana F, chame de F0,F1F_0,F_1 as funções parciais ao fixar s em 0 e 1:

F=s‾F0+sF1F=\overline s F_0+sF_1

Essa é a expansão de Shannon. s ? F1 : F0 divide qualquer função em duas partes. Por exemplo, para F=a⊕bF=a\oplus b com seleção a, F0=bF_0=b e F1=b‾F_1=\overline b: constrói-se XOR com um MUXMultiplexador Circuito combinacional que conecta uma dentre várias entradas à saída conforme um sinal de seleção. É preciso especificar a correspondência entre os bits de seleção e os números das entradas. e uma inversãoNegação Operação NOT que troca 0 por 1 e 1 por 0. Uma barra sobre uma expressão aplica NOT a toda a expressão coberta. Saiba mais.

Seleção 4 para 1 e prioridade

Escolher entre quatro entradas com dois bits pode ser implementado em dois níveis de MUX 2 para 1. Já if (req0) ... else if (req1) ... prioriza a primeira solicitação se várias estiverem ativas. Selecionar por endereço e selecionar por prioridade são problemas diferentes.

SystemVerilog
assign y = sel[1] ? (sel[0] ? d3 : d2)
                 : (sel[0] ? d1 : d0);

Uma árvore balanceada ideal com 2m2^m entradas tem m níveis. O atraso físico também depende da chegada das entradas, da carga e da fiação. A decomposição gera candidatos de implementação; não demonstra atraso ótimo.

Experimente

Expresse F=ab+a‾cF=a b+\overline a c como MUX com a na seleção. Quais são as duas entradas de dados?

Ler a explicação

Com a=0a=0, F0=cF_0=c; com a=1a=1, F1=bF_1=b. Portanto, assign f = a ? b : c;. Calcule primeiro as funções parciais para não trocar as entradas das seleções 0 e 1.

Sua escolha vale neste navegador. Altere-a a qualquer momento no rodapé.