forked from RakheeBhojakar/FPU_hdl_updated
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSqrt_testbench.sv
168 lines (152 loc) · 8.68 KB
/
Sqrt_testbench.sv
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
module Sqrt_testbench;
reg [26:0] iA_27;
reg iCLK;
wire [31:0] oInvSqrt;
wire [31:0] Sqrt;
reg [31:0] iA;
FpSqrt SQT(iCLK,iA,oInvSqrt,Sqrt);
initial begin
iCLK = 0;
forever #1 iCLK=~iCLK;
end
initial begin
repeat(1) begin
//@(posedge iCLK )
#20;
iA_27= 27'b010000011100111100110011001;
iA=32'b01000001110011110011001100110011;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
//$display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.opb));
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.opa_fraction);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.A_f_shifted);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.B_f_shifted);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.A_larger);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.pre_sum);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.shft_amt);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.pre_frac_shft);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.oSum_f);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.Sum);
// $display("SQT.s3_add.oSum: %b",SQT.s4_add.oSum_e);
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
//@(posedge iCLK )
#20;
iA_27= 27'b010000001101011001100110011;
iA=32'b0100_0000_1101_0110_0110_0110_0110_0110;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
// @(posedge iCLK )
#20;
iA_27= 27'b010000101111111011001100110;
iA=32'b01000010111111101100110011001101;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
//$display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s4_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
//
//@(posedge iCLK )
#20;
iA_27= 27'b010000100011010000000000000;
iA =32'b01000010100001111001100110011010;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
// @(posedge iCLK )
#20;
iA_27= 27'b010000000011100110011001100;
iA=32'b01000000001110011001100110011010;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
iA =32'b00111111100110011001100110011010;
#20;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
#20;
iA =32'b01000010100111000110011001100110;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
#20;
iA =32'b01000010000100000000000000000000;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
#20;
iA =32'b01000001000011100110011001100110;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
// \
#20;
@(posedge iCLK )
$display("input_27:%f,input_32:%f,Output:%f",$bitstoshortreal({iA_27,5'b0}),$bitstoshortreal(iA),$bitstoshortreal(Sqrt));
// $display("SQT.s1_mult.oProd: %f",$bitstoshortreal(SQT.s1_mult.Prod));
// $display("SQT.s2_mult.oProd: %f",$bitstoshortreal(SQT.s2_mult.Prod));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.Sum));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opa));
// $display("SQT.s3_add.oSum: %f",$bitstoshortreal(SQT.s3_add.opb));
// $display("SQT.s5_mult.oProd: %f",$bitstoshortreal(SQT.s5_mult.Prod));
// $display("SQT.s6_mult.oProd: %f",$bitstoshortreal(SQT.s6_mult.Prod));
end
$finish;
end
endmodule