PAGINA PRINCIPAL

Ver CONTROL.H

CONTROL.C

     Este archivo implementa la ejecución de la clase CONTROL.

#include<stdio.h>
#include"defs.h"
#include"gates.h"
#include"decods.h"
#include"muxs.h"
#include"latches.h"
#include"srams.h"
#include"alu32.h"
#include"control.h"



void CONTROL::run(WIRE in[6], WIRE &RegDst,WIRE &ALUSrc, WIRE &MemToReg, WIRE &RegWrite,
WIRE &MemRead, WIRE &MemWrite, WIRE &Branch, WIRE &AluOp1, WIRE &AluOp2, WIRE &Salir,
WIRE &Jump )
{
for (int i=0; i<6; i++) neg[i].run(aux[i],in[i]);
p_and[0].run(cables[0],6,aux);
p_and[1].run(cables[1],6,in[5],aux[4],aux[3],aux[2],in[1],in[0]); 
p_and[2].run(cables[2],6,in[5],aux[4],in[3],aux[2],in[1],in[0]);
p_and[3].run(cables[3],6,aux[5],aux[4],aux[3],in[2],aux[1],aux[0]);
p_and[4].run(Salir,6,in);
p_and[5].run(Jump,6,aux[5],aux[4],aux[3],aux[2],in[1],aux[0]);
RegDst=cables[0];
p_or[0].run(ALUSrc,cables[1],cables[2]);
MemToReg=cables[1];
p_or[1].run(RegWrite,cables[0],cables[1]);
MemRead=cables[1];
MemWrite=cables[2];
Branch=cables[3];
AluOp1=cables[0];
AluOp2=cables[3];

}