This repository has been archived by the owner on Jan 1, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathCpuTest.v
74 lines (66 loc) · 2.18 KB
/
CpuTest.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
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
`timescale 1ns / 1ps
module CpuTest ();
// Inputs
reg clock;
reg reset;
// Outputs
wire [31:0] debug_if_pc;
wire [31:0] debug_if_nextPc;
wire [31:0] debug_if_instruction;
wire [31:0] debug_id_instruction;
wire debug_id_shouldStall;
wire debug_id_shouldForwardRegisterRs;
wire debug_id_shouldForwardRegisterRt;
wire [1023:0] debug_id_registers;
wire [31:0] debug_ex_instruction;
wire [31:0] debug_ex_aluInputA;
wire [31:0] debug_ex_aluInputB;
wire [31:0] debug_ex_aluOutput;
wire [31:0] debug_mem_instruction;
wire [31:0] debug_mem_memoryAddress;
wire [31:0] debug_mem_memoryReadData;
wire debug_mem_shouldWriteMemory;
wire [31:0] debug_mem_memoryWriteData;
wire [31:0] debug_wb_instruction;
wire debug_wb_shouldWriteRegister;
wire [4:0] debug_wb_registerWriteAddress;
wire [31:0] debug_wb_registerWriteData;
// Instantiate the Unit Under Test (UUT)
Cpu uut (
.clock(clock),
.reset(reset),
.debug_if_pc(debug_if_pc),
.debug_if_nextPc(debug_if_nextPc),
.debug_if_instruction(debug_if_instruction),
.debug_id_instruction(debug_id_instruction),
.debug_id_shouldStall(debug_id_shouldStall),
.debug_id_shouldForwardRegisterRs(debug_id_shouldForwardRegisterRs),
.debug_id_shouldForwardRegisterRt(debug_id_shouldForwardRegisterRt),
.debug_id_registers(debug_id_registers),
.debug_ex_instruction(debug_ex_instruction),
.debug_ex_aluInputA(debug_ex_aluInputA),
.debug_ex_aluInputB(debug_ex_aluInputB),
.debug_ex_aluOutput(debug_ex_aluOutput),
.debug_mem_instruction(debug_mem_instruction),
.debug_mem_memoryAddress(debug_mem_memoryAddress),
.debug_mem_memoryReadData(debug_mem_memoryReadData),
.debug_mem_shouldWriteMemory(debug_mem_shouldWriteMemory),
.debug_mem_memoryWriteData(debug_mem_memoryWriteData),
.debug_wb_instruction(debug_wb_instruction),
.debug_wb_shouldWriteRegister(debug_wb_shouldWriteRegister),
.debug_wb_registerWriteAddress(debug_wb_registerWriteAddress),
.debug_wb_registerWriteData(debug_wb_registerWriteData)
);
initial begin
// Initialize Inputs
clock = 0;
reset = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
forever begin
#5;
clock = ~clock;
end
end
endmodule