-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpcModule_tb.v
More file actions
41 lines (29 loc) · 854 Bytes
/
Copy pathpcModule_tb.v
File metadata and controls
41 lines (29 loc) · 854 Bytes
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
`include "constants.v"
module pcModule_tb;
wire clock;
ClockGenerator clock_generator(clock);
reg [1:0] PCsrc = pcDefault;
reg [31:0] topStack;
reg [31:0] Immediate;
reg EN;
reg signed [15:0] Imm16;
wire [31:0] PC;
pcModule Module(clock, PC, PCsrc, Immediate, Imm16, topStack, EN);
initial begin
EN = HIGH;
#0
PCsrc <= pcDefault; // PC = PC + 1
#10
PCsrc <= pcImm; // PC = {PC[31:26], Immediate26 }
Immediate <= 32'd2; // Write value 2
#10
PCsrc <= pcSgnImm; // PC = PC + sign_extended (Imm16)
Imm16 <= 16'd10; // Add 10 to PC
#10
PCsrc <= pcStack; // PC = top of the stack
topStack <= 32'd8; // Top value in stack is 8
#10
#10
$finish;
end
endmodule