forked from CompArchBDZ/Lab3
/
gate_EX_MEM.v
41 lines (35 loc) · 875 Bytes
/
gate_EX_MEM.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
module gate_EX_MEM (
output reg regWrite_MEM,
output reg memToReg_MEM,
output reg memWrite_MEM,
output reg branch_MEM,
output reg zero_MEM,
output reg [31:0] aluOut_MEM,
output reg [31:0] writeData_MEM,
output reg [4:0] writeReg_MEM,
output reg [31:0] pcBranch_MEM,
input clk,
input regWrite_EX,
input memToReg_EX,
input memWrite_EX,
input branch_EX,
input zero_EX,
input [31:0] aluOut_EX,
input [4:0] writeReg_EX,
input [31:0] writeData_EX,
input [31:0] pcBranch_EX
);
always @(posedge clk) begin
// control signals
regWrite_MEM <= regWrite_EX;
memToReg_MEM <= memToReg_EX;
memWrite_MEM <= memWrite_EX;
branch_MEM <= branch_EX;
// cpu wires
zero_MEM <= zero_EX;
aluOut_MEM <= aluOut_EX;
writeData_MEM <= writeData_EX;
writeReg_MEM <= writeReg_EX;
pcBranch_MEM <= pcBranch_EX;
end
endmodule