-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIFSTAGE_tb.v
82 lines (68 loc) · 1.52 KB
/
IFSTAGE_tb.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
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 01:20:07 01/04/2022
// Design Name: IFSTAGE
// Module Name: C:/Users/Nefel/Desktop/University/project1/IFSTAGE_tb.v
// Project Name: project1
// Target Device:
// Tool versions:
// Description:
//
// Verilog Test Fixture created by ISE for module: IFSTAGE
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////
module IFSTAGE_tb;
// Inputs
reg [31:0] PC_Immed;
reg PC_sel;
reg PC_LdEn;
reg Reset;
reg Clk = 0;
// Outputs
wire [31:0] Instr;
// Instantiate the Unit Under Test (UUT)
IFSTAGE uut (
.PC_Immed(PC_Immed),
.PC_sel(PC_sel),
.PC_LdEn(PC_LdEn),
.Reset(Reset),
.Clk(Clk),
.Instr(Instr)
);
always #1 Clk = ~Clk;
initial begin
PC_Immed = 0;
PC_sel = 0;
PC_LdEn = 1;
Reset = 0;
//See a lot of instructions pass
#50;
//$display("PCout: %b", uut.PC_out);
//Reset
Reset = 1;
//$display("PCout after reset=1 before #2: %b", uut.PC_out);
#2;
//$display("PCout after reset=1: %b", uut.PC_out);
Reset = 0;
//$display("PCout after reset=0 before #10: %b", uut.PC_out);
#2;
//$display("PCout after reset=0: %b", uut.PC_out);
//Test branch instruction
PC_Immed = 15;
PC_sel = 1;
#2;
PC_sel = 0;
#10;
//Simulation time: 66ns
//Better test with Part 2 ROM data
end
endmodule