-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMA.sv
49 lines (44 loc) · 1.66 KB
/
MA.sv
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
42
43
44
45
46
47
48
49
/*
memctrl┌──────────────────────────────┐
──────► mem_controller │
[2:0] │ ┌──────────────────────┐ │
│ │ │ │
addr │ │ │ │dataR
──────► │addr ┌────────┐dataR │ ├──────►
[31:0]│ ├──────► ├──────► │[31:0]
│ │[11:0]│ │[31:0]│ │
│ │ │DataMem │ │ │
dataW │ │dataW │ │ │ │
──────► ├──────► │ │ │
[31:0]│ │[31:0]└─▲────▲─┘ │ │
└───┘ │ │ └───┘
│ memW
memR
*/
module MA(dataR, dataW, addr, mem_ctrl, memR, memW, clk);
input logic [31:0] addr;
input logic [31:0] dataW;
input bit memR;
input bit memW;
input bit clk;
input logic [2:0] mem_ctrl;
output logic [31:0] dataR;
logic [11:0] addrInt;
logic [31:0] dataWInt;
logic [31:0] dataRInt;
mem_controller ctrl(.dataRI(dataRInt),
.dataRO(dataR),
.addrIn(addr),
.addrOut(addrInt),
.dataWI(dataW),
.dataWO(dataWInt),
.mem_ctrl(mem_ctrl)
);
DataMem memory(.addr(addrInt),
.dataW(dataWInt),
.dataR(dataRInt),
.memR(memR),
.memW(memW),
.clk(clk)
);
endmodule