-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSimptelO9.v
45 lines (37 loc) · 1.19 KB
/
SimptelO9.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
42
43
44
45
module SimptelO9(CLOCK_50, HEX0, HEX1, HEX2, HEX3);
input CLOCK_50;
input [6:0] HEX0, HEX1, HEX2, HEX3;
wire [5:0] opCode;
wire PCWriteCond, IorD, MemWrite, MemtoReg, IRWrite, ALUSrcA, RegWrite, RegDst, PCWrite;
wire [1:0] ALUSrcB, PCSource, ALUOp;
wire reset;
wire memread;
control_unit cunit(.opCode(opCode[5:0]),
.clk(CLOCK_50), .reset(reset),
.ALUOp(ALUOp[1:0]),
.PCWriteCond(PCWriteCond), .ALUSrcB(ALUSrcB[1:0]), .PCSource(PCSource),
.PCWrite(PCWrite), .IorD(IorD), .MemWrite(MemWrite), .MemtoReg(MemtoReg),
.IRWrite(IRWrite), .ALUSrcA(ALUSrcA), .RegWrite(RegWrite), .RegDst(RegDst));
datapath dpath(
.PCWriteCond(PCWriteCond),
.PCWrite(PCWrite),
.IorD(IorD),
.MemRead(memread),
.MemWrite(MemWrite),
.MemtoReg(MemtoReg),
.IRWrite(IRWrite),
.PCSource(PCSource[1:0]),
.ALUOp(ALUOp[1:0]),
.ALUSrcB(ALUSrcB[1:0]),
.ALUSrcA(ALUSrcA),
.RegWrite(RegWrite),
.RegDst(RegDst),
.clk(CLOCK_50),
.reset(reset),
.opCode(opCode[5:0]),
.HEX0(HEX0[6:0]),
.HEX1(HEX0[6:0]),
.HEX2(HEX0[6:0]),
.HEX3(HEX0[6:0])
);
endmodule