Parece que se supone que el diseño debe realizar una multiplicación de 48x51 bits en 48 pasos, con cada paso agregando el registro "A" al registro del producto o no. También parece cambiar el registro "A", que no es necesario. Si desea cargar el registro B, iniciar la máquina y luego tener un resultado listo para ser leído, el registro de su producto debe ser lo suficientemente grande como para contener todo el producto (la suma de las longitudes de los dos multipandos); el sumador tendrá que tener el mismo ancho si cambia "A" a medida que avanza. Si en lugar de desplazar el registro "A", tiene el producto ya sea Compute (Producto > > 1) o (Producto > > 1) + (A < < 47) a medida que los bits se desplazan de la "B "registrarse, entonces el sumador solo necesita agregar dos números de 51 bits para un resultado de 52 bits.
También tenga en cuenta que para un pequeño aumento en la complejidad, puede duplicar la velocidad de su multiplicador haciendo que la ALU elija entre cinco operaciones en cada paso: (Producto > > 2), (Producto > > 2) + (A < < 46), (Producto > > 2) + (A < < 47), (Producto > > 2) - (A < < 46), o (Producto & gt ; > 2) - (A < < 47). Busque "Algoritmo de Booth" para obtener más información.