Construyendo un sumador de 2 bits con un retraso de propagación de como máximo 2 puertas

0

Una puerta XOR en sí cuenta como 2 puertas, por lo que si utilizo una puerta XOR, el retraso ya sería 2.

No tengo idea de cómo hacer esto, ya que un sumador completo para un bit ya contiene 2 compuertas XOR (o 1 compuerta XOR, 1 compuerta AND y 1 compuerta OR), por lo que ya tendría un retraso de 4, mientras que tengo que construir un sumador de 2 bits con un retraso de como máximo 2 puertas.

¿Es realmente posible hacer esto? De lo contrario, debe haber un error en mi libro de ejercicios.

    
pregunta Ken

1 respuesta

3

No solo con las puertas estándar AND , OR y NOT . Para el sumador de dos bits que toma los números de dos bits AB y CD , y genera un número de tres bits XYZ , la tabla de verdad se ve así:

A B C D | X Y Z
0 0 0 0 | 0 0 0
0 0 0 1 | 0 0 1
0 0 1 0 | 0 1 0
0 0 1 1 | 0 1 1
0 1 0 0 | 0 0 1
0 1 0 1 | 0 1 0
0 1 1 0 | 0 1 1
0 1 1 1 | 1 0 0
1 0 0 0 | 0 1 0
1 0 0 1 | 0 1 1
1 0 1 0 | 1 0 0
1 0 1 1 | 1 0 1
1 1 0 0 | 0 1 1
1 1 0 1 | 1 0 0
1 1 1 0 | 1 0 1
1 1 1 1 | 1 1 0

El mapa de Karnaugh para Y tiene este aspecto:

CD AB>
V  00 01 11 10
00  0  0  1  1
01  0  1  0  1
11  1  0  1  0
10  1  1  0  0

El problema es que ya que solo se permiten dos retardos de compuerta, y necesitamos ambos: uno para AND junto a los bits de cada grupo, y otro para luego OR esos grupos juntos Esto significa que los grupos que podemos especificar están limitados a aquellos que no contienen ningún NOT s, es decir, solo los siguientes:

   A         B          C         D        A*B       A*C       A*D       B*C
. . x x   . x x .    . . . .   . . . .   . . x .   . . . .   . . . .   . . . .
. . x x   . x x .    . . . .   x x x x   . . x .   . . . .   . . x x   . . . .
. . x x   . x x .    x x x x   x x x x   . . x .   . . x x   . . x x   . x x .
. . x x   . x x .    x x x x   . . . .   . . x .   . . x x   . . . .   . x x .

  B*D       C*D       A*B*C     A*B*D     A*C*D     B*C*D    A*B*C*D    True
. . . .   . . . .    . . . .   . . . .   . . . .   . . . .   . . . .   x x x x
. x x .   . . . .    . . . .   . . x .   . . . .   . . . .   . . . .   x x x x
. x x .   x x x x    . . x .   . . x .   . . x x   . x x .   . . x .   x x x x
. . . .   . . . .    . . x .   . . . .   . . . .   . . . .   . . . .   x x x x

Tenga en cuenta que ninguno de estos grupos cubre el punto 1001 sin cubrir el punto 1101 , que necesitamos para Y . Puede obtener los grupos correctos usando NAND , NOR o XNOR ; pero solo si cuentan como 1 retardo de puerta.

Tenga en cuenta que si está utilizando una tecnología como la lógica CMOS donde cada bit tiene un inverso disponible, la técnica de mapas de Karnaugh hace que este problema sea trivial, con una solución de ejemplo a continuación (donde a es NOT A , etc. ):

X = AC + ABD + BCD
Y = Acd + abC + Abc + aCd + aBcD + ABCD
Z = bD + Bd
    
respondido por el 2012rcampion

Lea otras preguntas en las etiquetas