-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreg_file_test.v
86 lines (75 loc) · 1.69 KB
/
reg_file_test.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
75
76
77
78
79
80
81
82
83
84
85
86
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 16:47:39 11/16/2022
// Design Name: reg_file
// Module Name: C:/Users/user0/Desktop/New folder (13)/MIPS/reg_file_test.v
// Project Name: MIPS
// Target Device:
// Tool versions:
// Description:
//
// Verilog Test Fixture created by ISE for module: reg_file
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////
module reg_file_test;
// Inputs
reg clk;
reg RegWrite;
reg [4:0] read_reg_1;
reg [4:0] read_reg_2;
reg [4:0] write_reg;
reg [31:0] write_data;
initial clk = 0;
always #25 clk = ~clk;
// Outputs
wire [31:0] read_data_1;
wire [31:0] read_data_2;
// Instantiate the Unit Under Test (UUT)
reg_file uut (
.clk(clk),
.RegWrite(RegWrite),
.read_reg_1(read_reg_1),
.read_reg_2(read_reg_2),
.write_reg(write_reg),
.write_data(write_data),
.read_data_1(read_data_1),
.read_data_2(read_data_2)
);
initial begin
// Initialize Inputs
RegWrite = 0;
read_reg_1 = 3;
read_reg_2 = 7;
write_reg = 0;
write_data = 0;
// Wait 100 ns for global reset to finish
#100;
RegWrite = 1;
read_reg_1 = 3;
read_reg_2 = 7;
write_reg = 0;
write_data = 7;
// Add stimulus here
#100;
RegWrite = 1;
read_reg_1 = 3;
read_reg_2 = 7;
write_reg = 5;
write_data = 12;
#100;
RegWrite = 0;
read_reg_1 = 5;
read_reg_2 = 5;
write_reg = 5;
write_data = 12;
end
endmodule