next up previous
Next: multiplicador.h Up: Multiplicador Previous: linea_base.h

linea_base.c

/*
 * linea_base.c
 * Clase que implementa una linea de la matriz del multiplicador combinacional
 * por sumas y desplazamientos
 *
 * Autores: JOSE LUIS BERENGUEL GOMEZ
 *	    JORGE BARBERO PEREZ
 *
 * Compilación:
 *	c++ -c linea_base.c
 *
 * Ultima modificación: 29-1-02
 */


#include "gates.h"
#include "decods.h"
#include "muxs.h"
#include "alu32.h"	// para el sumador completo de 1 bit
#include "celda_base.h"
#include "linea_base.h"

/* METODO run PARA LA LINEA BASE DE 4 BITS */
void LINEA_BASE_4BITS::run(WIRE m[4],	// entrada de los 4 bits del multiplicando
		     WIRE Pp[4],	// entrada de los 4 productos parciales
		     WIRE &qi,		// entrada del bit i del multiplicador
		     WIRE &cin,		// acarrao de entrada
		     WIRE &cout,	// acarreo de salida
		     WIRE Ppsig[4])	// salida de los productos parciales para la siguiente linea
{

	/*comienzo del metodo*/
	cin=0; // inicializamos la variable para asegurarnos de que esta a cero

	/* operamos con las celdas una por una */
	celda[0].run(m[0],Pp[0],qi,cin,aux[0],Ppsig[0]);
	celda[1].run(m[1],Pp[1],qi,aux[0],aux[1],Ppsig[1]);
	celda[2].run(m[2],Pp[2],qi,aux[1],aux[2],Ppsig[2]);
	celda[3].run(m[3],Pp[3],qi,aux[2],cout,Ppsig[3]);

} // FIN DEL METODO run DE LA LINEA DE 4 BITS

/* METODO run PARA LA LINEA BASE DE 32 BTIS */
void LINEA_BASE_32BITS:: run(WIRE m[32],// entrada de los 32 bits del multiplicador
		 WIRE Pp[32],		// entrada de los 32 productos parciales
		 WIRE &qi,		// entrada del bit i del multiplicando
		 WIRE &cin,		// acarreo de entrada
		 WIRE &cout,		// acarreo de salida
		 WIRE Ppsig[32]){	// salida del producto parcial para la siguiente linea

	/*comienzo del metodo*/
	cin=0;

	/* operamos con las celdas */

	/* primera celda */
	celda[0].run(m[0],Pp[0],qi,cin,aux[0],Ppsig[0]);
	
	/* resto de celdas excepto la última */
	for(int i=1;i<31;i++)
		celda[i].run(m[i],Pp[i],qi,aux[i-1],aux[i],Ppsig[i]);
	
	/* ultima celda*/
	celda[31].run(m[31],Pp[31],qi,aux[30],cout,Ppsig[31]);

} // FIN DEL METODO run DE LA LINEA DE 32 BITS




2002-02-09