www.pudn.com > noc.rar > branch.cpp
/*
* TU Eindhoven
* Eindhoven, The Netherlands
*
* Name : branch.cc
*
* Author : Sander Stuijk (sander@ics.ele.tue.nl)
*
* Date : July 23, 2002
*
* Function : Branch controller
*
* History :
* 23-07-02 : Initial version.
* 13-12-02 : Synthesizable version A.S.Slusarczyk@tue.nl
*
*/
#include "branch.h"
void BRANCH_CTRL::branch_ctrl_thread()
{
sc_uint branchop;
sc_uint branch;
sc_uint<1> aluzero;
//-> while(true) {
#ifdef VERBOSE
clog << "BRANCH CTRL" << endl;
#endif
// Read inputs
branchop = BranchOp.read();
aluzero = AluZero.read();
// Compute result
switch (branchop)
{
case 0: // No branch
branch = 0;
break;
case 1: // Branch on equal
branch = (aluzero == 1 ? 1:0);
break;
case 2: // Branch on non equal
branch = (aluzero != 1 ? 1:0);
break;
case 3: // Jump
branch = 1;
break;
}
// Set result on output
Branch.write(branch);
// Wait for new event
//-> wait();
//-> }
}