-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProcessor.v
More file actions
97 lines (92 loc) · 2.05 KB
/
Processor.v
File metadata and controls
97 lines (92 loc) · 2.05 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
module processor_top(output [31:0] regval, input clk, input rst,input[3:0] reg_select);
wire [3:0] func;
wire [5:0] opcode;
wire [31:0] A_out;
wire sign;
wire LoadPC;
wire PCSel;
wire ReadIM;
wire LoadNPC;
wire LoadIR;
wire ReadRP1;
wire ReadRP2;
wire WriteRP;
wire LoadA;
wire LoadB;
wire IMMsel;
wire LoadIMM;
wire MUXALU1;
wire MUXALU2;
wire [3:0] ALUFunc;
wire LoadALUOut;
wire ReadDM;
wire WriteDM;
wire LoadLMD;
wire MUXWB;
wire [1:0] MUXMOVE;
wire HALT;
datapath dp(
.func(func),
.opcode(opcode),
.regval(regval),
.A_out(A_out),
.sign(sign),
.LoadPC(LoadPC),
.PCSel(PCSel),
.ReadIM(ReadIM),
.LoadNPC(LoadNPC),
.LoadIR(LoadIR),
.ReadRP1(ReadRP1),
.ReadRP2(ReadRP2),
.WriteRP(WriteRP),
.LoadA(LoadA),
.LoadB(LoadB),
.IMMsel(IMMsel),
.LoadIMM(LoadIMM),
.MUXALU1(MUXALU1),
.MUXALU2(MUXALU2),
.ALUFunc(ALUFunc),
.LoadALUOut(LoadALUOut),
.ReadDM(ReadDM),
.WriteDM(WriteDM),
.LoadLMD(LoadLMD),
.MUXWB(MUXWB),
.MUXMOVE(MUXMOVE),
.clk(clk),
.rst(rst),
.reg_select(reg_select)
);
Control_Unit cu(
.opcode(opcode),
.func(func),
.LoadPC(LoadPC),
.ReadIM(ReadIM),
.LoadNPC(LoadNPC),
.LoadIR(LoadIR),
.ReadRP(ReadRP1),
.ReadRP2(ReadRP2),
.WriteRP(WriteRP),
.LoadA(LoadA),
.LoadB(LoadB),
.ALUFunc(ALUFunc),
.IMMsel(IMMsel),
.WMFC(),
.LoadIMM(LoadIMM),
.MUXALU1(MUXALU1),
.MUXALU2(MUXALU2),
.LoadALUOut(LoadALUOut),
.ReadDM(ReadDM),
.WriteDM(WriteDM),
.LoadLMD(LoadLMD),
.MUXWB(MUXWB),
.MUXMOVE(MUXMOVE),
.HALT(HALT),
.clk(clk),
.rst(rst)
);
branch_control bc(
.opcode(opcode),
.pcsel(PCSel),
.in(A_out)
);
endmodule