3.2 Módulo coprocesador para multiplicación en coma flotante
El primer prototipo que se propone para verificar su operatividad es una versión simplificada de un coprocesador que realice una operación de multiplicación en coma flotante y complemente el juego de instrucciones del procesador MC68360. Se propone un formato de números en coma flotante de 16 bits simplificado y el multiplicador recibe dos operandos como entrada en un registro. El diseño es completamente combinacional, y debe estar dividido en varios bloques que operen en paralelo implementados en la FPGA XC4013E para realizar las siguientes funciones:
Normalización de las entradas: ambos operandos necesitan ser normalizados.
Multiplicación de mantisas: el resultado de la multiplicación de mantisas (cada una de 10 bits) se guarda en un registro de 20 bits, con lo que no se produce overflow.
Suma de exponentes: los exponentes ya normalizados de cada uno de los operandos se sumarán en un registro de 4 bits, aunque finalmente pasarán a uno de 5 bits, por el posible carry de la suma.
Cálculo del signo: el signo se calculará simplemente haciendo un XOR de la posición 15 de las entradas, y será guardado en la salida.
Normalización de la salida.
El programa de verificación que se ejecuta en el microprocesador consta de un bucle principal que solicita al usuario los dos operandos de entrada, los envía al multiplicador, lee el resultado y lo muestra al usuario. Para la verificación del correcto funcionamiento se compara también con el resultado de un programa codificado en lenguaje C, que implementa el algoritmo de multiplicación de dos números en como flotante.