Line 41... |
Line 41... |
input InstMem_Ready,
|
input InstMem_Ready,
|
input Mfc0, // Using fwd mux; not part of haz/fwd.
|
input Mfc0, // Using fwd mux; not part of haz/fwd.
|
input IF_Exception_Stall,
|
input IF_Exception_Stall,
|
input ID_Exception_Stall,
|
input ID_Exception_Stall,
|
input EX_Exception_Stall,
|
input EX_Exception_Stall,
|
|
input EX_ALU_Stall,
|
input M_Stall_Controller, // Determined by data memory controller
|
input M_Stall_Controller, // Determined by data memory controller
|
output IF_Stall,
|
output IF_Stall,
|
output ID_Stall,
|
output ID_Stall,
|
output EX_Stall,
|
output EX_Stall,
|
output M_Stall,
|
output M_Stall,
|
Line 157... |
Line 158... |
|
|
|
|
// Stalls and Control Flow Final Assignments
|
// Stalls and Control Flow Final Assignments
|
assign WB_Stall = M_Stall;
|
assign WB_Stall = M_Stall;
|
assign M_Stall = IF_Stall | M_Stall_Controller;
|
assign M_Stall = IF_Stall | M_Stall_Controller;
|
assign EX_Stall = (EX_Stall_1 | EX_Stall_2 | EX_Exception_Stall) | M_Stall;
|
assign EX_Stall = (EX_Stall_1 | EX_Stall_2 | EX_Exception_Stall) | EX_ALU_Stall | M_Stall;
|
assign ID_Stall = (ID_Stall_1 | ID_Stall_2 | ID_Stall_3 | ID_Stall_4 | ID_Exception_Stall) | EX_Stall;
|
assign ID_Stall = (ID_Stall_1 | ID_Stall_2 | ID_Stall_3 | ID_Stall_4 | ID_Exception_Stall) | EX_Stall;
|
assign IF_Stall = InstMem_Read | InstMem_Ready | IF_Exception_Stall;
|
assign IF_Stall = InstMem_Read | InstMem_Ready | IF_Exception_Stall;
|
|
|
// Forwarding Control Final Assignments
|
// Forwarding Control Final Assignments
|
assign ID_RsFwdSel = (ID_Fwd_1) ? 2'b01 : ((ID_Fwd_3) ? 2'b10 : 2'b00);
|
assign ID_RsFwdSel = (ID_Fwd_1) ? 2'b01 : ((ID_Fwd_3) ? 2'b10 : 2'b00);
|