Multiplicador de papá - Dadda multiplier

El multiplicador de Dadda es un diseño de multiplicador binario de hardware inventado por el informático Luigi Dadda en 1965. Utiliza una selección de sumadores completos y medios para sumar los productos parciales en etapas (el árbol de Dadda o la reducción de Dadda ) hasta que queden dos números. El diseño es similar al multiplicador de Wallace , pero el árbol de reducción diferente reduce el número requerido de puertas (para todos los tamaños de operandos excepto los más pequeños) y lo hace un poco más rápido (para todos los tamaños de operandos).

Dadda y Wallace multiplicadores tienen los mismos tres pasos para dos cadenas de bits y de longitudes y respectivamente:

  1. Multiplica ( Y lógico ) cada bit de , por cada bit de , dando resultados, agrupados por peso en columnas
  2. Reducir el número de productos parciales por etapas de sumadores completos y medios hasta que nos quedemos como máximo con dos bits de cada peso.
  3. Agrega el resultado final con un sumador convencional.

Al igual que con el multiplicador de Wallace, los productos de multiplicación del primer paso tienen pesos diferentes que reflejan la magnitud de los valores de bits originales en la multiplicación. Por ejemplo, el producto de bits tiene peso .

A diferencia de los multiplicadores de Wallace que reducen tanto como sea posible en cada capa, los multiplicadores de Dadda intentan minimizar la cantidad de puertas utilizadas, así como el retardo de entrada / salida. Debido a esto, los multiplicadores de Dadda tienen una fase de reducción menos costosa, pero los números finales pueden ser algunos bits más largos, por lo que se requieren sumadores un poco más grandes.

Descripción

Un ejemplo de circuito sumador completo.

Para lograr un producto final más óptimo, la estructura del proceso de reducción se rige por reglas un poco más complejas que en los multiplicadores de Wallace.

La progresión de la reducción se controla mediante una secuencia de altura máxima , definida por:

Esto produce una secuencia como esta:

El valor inicial de se elige como el valor más grande de modo que , donde y son el número de bits en el multiplicando y el multiplicador de entrada. La menor de las dos longitudes de bits será la altura máxima de cada columna de pesos después de la primera etapa de multiplicación. Para cada etapa de la reducción, el objetivo del algoritmo es reducir la altura de cada columna para que sea menor o igual al valor de .

Para cada etapa de , reduzca cada columna comenzando en la columna de menor peso, de acuerdo con estas reglas:

  1. Si la columna no requiere reducción, muévase a la columna
  2. Si agrega los dos elementos superiores en un medio sumador, colocando el resultado en la parte inferior de la columna y el acarreo en la parte superior de la columna , luego muévase a la columna
  3. De lo contrario, agregue los tres elementos superiores en un sumador completo, colocando el resultado en la parte inferior de la columna y el acarreo en la parte superior de la columna , reinicie en el paso 1

Ejemplo de algoritmo

Reducción Dadda de 4 capas de una matriz de producto parcial de 8x8, utilizando 7 medios sumadores (dos puntos) y 35 sumadores completos (tres puntos). Los puntos en cada columna son bits de igual peso. Los bits con menor peso se encuentran en el extremo derecho.

El ejemplo de la imagen adyacente ilustra la reducción de un multiplicador de 8 × 8, explicado aquí.

El estado inicial se elige como el valor más grande menor que 8.

etapa ,

  • son todos menores o iguales a seis bits de altura, por lo que no se realizan cambios
  • , por lo que se aplica un medio sumador, reduciéndolo a seis bits y agregando su bit de acarreo a
  • incluido el bit de acarreo de , por lo que aplicamos un sumador completo y un medio sumador para reducirlo a seis bits
  • incluidos dos bits de acarreo de , por lo que de nuevo aplicamos un sumador completo y un medio sumador para reducirlo a seis bits
  • incluidos dos bits de acarreo de , por lo que aplicamos un solo sumador completo y lo reducimos a seis bits
  • son todos menores o iguales a seis bits de altura, incluidos los bits de acarreo, por lo que no se realizan cambios

etapa ,

  • son todos menores o iguales a cuatro bits de altura, por lo que no se realizan cambios
  • , por lo que se aplica un medio sumador, reduciéndolo a cuatro bits y agregando su bit de acarreo a
  • incluido el bit de acarreo de , por lo que aplicamos un sumador completo y un medio sumador para reducirlo a cuatro bits
  • incluidos los bits de acarreo anteriores, por lo que aplicamos dos sumadores completos para reducirlos a cuatro bits
  • incluidos los bits de acarreo anteriores, por lo que aplicamos un sumador completo para reducirlo a cuatro bits
  • son todos menores o iguales a cuatro bits de altura, incluidos los bits de acarreo, por lo que no se realizan cambios

etapa ,

  • son todos menores o iguales a tres bits de altura, por lo que no se realizan cambios
  • , por lo que se aplica un medio sumador, reduciéndolo a tres bits y agregando su bit de acarreo a
  • incluidos los bits de acarreo anteriores, por lo que aplicamos un sumador completo para reducirlos a tres bits
  • son todos menores o iguales a tres bits de altura, incluidos los bits de acarreo, por lo que no se realizan cambios

etapa ,

  • son todos menores o iguales a dos bits de altura, por lo que no se realizan cambios
  • , por lo que se aplica un medio sumador, reduciéndolo a dos bits y agregando su bit de acarreo a
  • incluidos los bits de acarreo anteriores, por lo que aplicamos un sumador completo para reducirlos a dos bits
  • incluido el bit de acarreo de , por lo que no se realizan cambios

Adición

La salida de la última etapa deja 15 columnas de altura dos o menos que se pueden pasar a un sumador estándar.

Ver también

Referencias

Otras lecturas