-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathprocessor_tb.v
46 lines (37 loc) · 874 Bytes
/
processor_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
module processor_tb();
//external I/O
reg clock,reset,enter;
reg [7:0]dataIn;
wire [7:0]dataOut;
wire halt;
reg [7:0]x,y;
initial begin
reset=1;
enter=1;
#6 reset = 0;
#4 reset = 1;dataIn = 8'd50;x=dataIn;
$display("Entered X value for GCB %d at time %d",dataIn,$time);
#4 enter = 0;
#2 enter = 1;
#6 dataIn = 8'd20;y=dataIn;
$display("Entered Y value for GCB %d at time %d",dataIn,$time);
#2 enter = 0;
#2 enter = 1;
$monitor("Processing : %d",dataOut);
end
always@(halt)
if(halt)
displaySummary();
task displaySummary();
begin
$display("\n-------SUMMARY:-------");
$display("X value : %d\nY value : %d\nGCD value of X and Y is: %d\n",x,y,dataOut);
end
endtask
initial
begin
clock = 0;
forever #2 clock = ~clock;
end
processor p0 (clock,reset,enter,dataIn,dataOut,halt);
endmodule