Projete um registrador de quatro bits com duas entradas de controle s1 e s0, quatro entradas de dados X3, X2, X1 e X0, e quatro saídas de dados Q3, Q2, Q1 e Q0. Quando \mathrm{s} 1 \mathrm{~s} 0=00, o registrador mantém o seu valor. Quando \mathrm{s} 1 \mathrm{~s} 0=01, o registrador carrega o valor correspondente ao seu conteúdo multiplicado por 4. Quando \mathrm{s} 1 \mathrm{~s} 0=10, o registrador é carregado com o resultado da subtração X3X2X1X0-Q3Q2Q1Q0 se X3X2X1X0 > Q3Q2Q1Q0 ou Q3Q2Q1Q0 - X3X2X1X0 se X3X2X1X0 \leq Q3Q2Q1Q0. Quando \mathrm{s} 1 \mathrm{~s} 0=11, o registrador faz uma carga paralela. Neste projeto você deverá projetar também os blocos que forem necessários, tais como, por exemplo, comparadores e subtratores. Considere que os números representados por X3X2X1X0 e Q3Q2Q1Q0 são positivos. Não é necessário mostrar o circuito interno de multiplexadores e Flip-Flops. (6 pontos)

Passo 1

O problema pede um registrador de 4 bits com entradas de controle \mathrm{s}_1,\mathrm{s}_0, entradas de dados X_3X_2X_1X_0 e saídas Q_3Q_2Q_1Q_0. O comportamento é:
  • \mathrm{s}_1\mathrm{s}_0=00: mantém o valor (hold).
  • \mathrm{s}_1\mathrm{s}_0=01: carrega o conteúdo atual multiplicado por 4.
  • \mathrm{s}_1\mathrm{s}_0=10: carrega a diferença absoluta entre X e Q.
  • \mathrm{s}_1\mathrm{s}_0=11: carga paralela de X.
    Para resolver, vamos usar os blocos: registrador de 4 flip-flops, multiplexador 4-para- 1 de 4 bits, bloco de shift-left (multiplicador \times 4), comparador de magnitude e subtrator absoluto.

Passo 2

Descrevemos as quatro possíveis entradas ao registrador, todas selecionadas por um multiplexador 4-para- 1 de 4 bits cujo controle é \mathrm{s}_1\mathrm{s}_0:
1. Se \mathrm{s}_1\mathrm{s}_0=00, a entrada do registro deve ser o feedback dos próprios bits Q_3Q_2Q_1Q_0.
2. Se \mathrm{s}_1\mathrm{s}_0=01, a entrada deve ser o shift-left de Q em 2 posições, ou seja, Q\times4.
3. Se \mathrm{s}_1\mathrm{s}_0=10, a entrada deve ser o valor absoluto de X - Q, implementado por um comparador que decide quem é maior e um subtrator.
4. Se \mathrm{s}_1\mathrm{s}_0=11, a entrada deve ser diretamente X_3X_2X_1X_0 (carga paralela).

Passo 3

Projeto do bloco multiplicador por 4 (shift-left):
\text{ShiftLeft2}(Q_3Q_2Q_1Q_0) = Q_1Q_0\,0\,0
Esse bloco recebe os 4 bits de Q e desloca tudo duas posições para a esquerda, preenchendo os 2 LSB com zero.

Passo 4

Projeto do bloco de diferença absoluta:
1\). O **comparador de magnitude** recebe \(X_3X_2X_1X_0\) e \(Q_3Q_2Q_1Q_0\), produz um sinal de controle \(M\) tal que \[M = \begin{cases} 1, & \text{se }X > Q,\\\\ 0, & \text{caso contrário.} \end{cases}
2\]. O **subtrator de \(4 bits** recebe as mesmas entradas, mas troca a ordem conforme M:
  • Se M=1, calcula X-Q.
  • Se M=0, calcula Q-X.
    O resultado é a diferença absoluta \bigl\lvert X - Q\bigr\rvert.

Passo 5

Diagrama geral de blocos:
1. Registrador de 4 bits ( 4 flip-flops) produz Q_3Q_2Q_1Q_0.
2. Saídas Q vão para:
  • o bloco ShiftLeft 2 (multiplicador \times 4),
  • o feedback direto ao multiplexador,
  • o subtrator (e comparador).
    3. Entradas X_3X_2X_1X_0 vão para:
  • o subtrator (e comparador),
  • a entrada paralela do multiplexador.
    4. O comparador controla o subtrator para gerar \lvert X - Q\rvert.
    5. Um multiplexador 4-para- 1 de 4 bits tem entradas:
  • D_0 = Q (hold),
  • D_1 = \text{ShiftLeft2}(Q),
  • D_2 = \lvert X - Q\rvert,
  • D_3 = X.
    O select é \mathrm{s}_1\mathrm{s}_0.
    6. A saída do multiplexador vai para as entradas D dos flip-flops do registrador.

Resposta

Blocos necessários e conexões:
  • Registrador de 4 flip-flops produz Q.
  • Bloco ShiftLeft 2 recebe Q e produz Q\times4.
  • Comparador de magnitude em X,Q produz M.
  • Subtrator absoluto seleciona X-Q ou Q-X conforme M, entregando \lvert X-Q\rvert.
  • Multiplexador 4-para- 1 de 4 bits seleciona entre \begin{aligned} &D_0=Q,\quad D_1=Q\times4,\quad D_2=\lvert X-Q\rvert,\quad D_3=X \end{aligned}conforme \mathrm{s}_1\mathrm{s}_0.
  • Saída do multiplexador alimenta as entradas D do registrador.

Exercícios relacionados