/****************** Component List *******************/
RTLComponent *addersub=new RTLComponent("addersub");
RTLComponent *logic_unit=new RTLComponent("logic_unit");
RTLComponent *shifter=new RTLComponent("shifter","barrel");
RTLComponent *mul=new RTLComponent("mul");
RTLComponent *reg_file=new RTLComponent("reg_file");
RTLComponent *ifetch=new RTLComponent("ifetch");
RTLComponent *branchresolve=new RTLComponent("branchresolve");
/*************** Datapath Wiring ****************/
// RS Fanout
addConnection(reg_file,"a_readdata",addersub,"opA");
addConnection(reg_file,"a_readdata",logic_unit,"opA");
addConnection(reg_file,"a_readdata",shifter,"sa");
addConnection(reg_file,"a_readdata",mul,"opA");
addConnection(reg_file,"a_readdata",branchresolve,"rs");
...
/*********************** Hazard detection *******************/
HazardDetector *rs_haz=newHazardDetector(rs_reg,"q",dst1,"q");
HazardDetector *rt_haz=newHazardDetector(rt_reg,"q",dst1,"q");
stallOnHazard(rs_haz,1);
stallOnHazard(rt_haz,1);
|