Crear división a partir de compuertas lógicas

#1
Tengo un proyecto para la universidad donde tengo que hacer las cuatro operaciones básicas con un par de números de 4 bits a partir de puras compuertas lógicas (or, and, xor, not, etc). La multiplicación, la suma y la resta son fáciles, sin embargo la división me parece un poco compleja de hacer... alguien tiene alguna idea de como hacer esto? He buscado en internet y no consigo mucho...

gracias de antemano.
 
#2
Aunque efectúes el producto binario con puertas AND, imagina que sólo pudieras utilizar compuertas OR.

El resultado de un producto A*B es,

A*B=A+A+A...(B veces)

Con la división es algo parecido, pero al revés..

A/B=A-B-B-B...(restas B las veces necesarias hasta que el resto sea 0 o menor que B)

Entonces en el caso de que la diferencia no sea 0, el resto será el resultado de esta diferencia, que puedes derivarlo al LED del acarreo o 'carry' -imagino que lo utilizarás para el producto, es esencial en las ALU-.

El número de veces que hayas restado, será el cociente de la división.

Te puede quedar más claro si implementas este algoritmo en cualquier lenguaje de programación o entorno tipo MatLab.

Un saludo.
 
Arriba