OpenCores
URL https://opencores.org/ocsvn/double_fpu/double_fpu/trunk

Subversion Repositories double_fpu

[/] [double_fpu/] [trunk/] [pipeline/] [fpu_mul_TB.v] - Blame information for rev 6

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 davidklun
 
2
`timescale 1ps / 1ps
3
module fpu_mul_tb;
4
 
5
reg clk;
6
reg rst;
7
reg enable;
8
reg [63:0]opa;
9
reg [63:0]opb;
10
wire ready;
11
wire [63:0] outfp;
12
 
13
 
14
 
15
 
16
        fpu_mul UUT (
17
                .clk(clk),
18
                .rst(rst),
19
                .enable(enable),
20
                .opa(opa),
21
                .opb(opb),
22
                .ready(ready),
23
                .outfp(outfp));
24
 
25
initial
26
begin : STIMUL
27
        #0
28
        rst = 1'b1;
29
        enable = 1'b0;
30
    #10000;
31
        rst = 1'b0;
32
        enable = 1'b1;
33
//inputA:5.6700000000e+001
34
//inputB:2.9900000000e+000
35
opa = 64'b0100000001001100010110011001100110011001100110011001100110011010;
36
opb = 64'b0100000000000111111010111000010100011110101110000101000111101100;
37
         #10000;
38
//inputA:3.6600000000e-003
39
//inputB:9.9700000000e-008
40
opa = 64'b0011111101101101111110111001001110001001101101010010000000001000;
41
opb = 64'b0011111001111010110000110101010011110010110110010100110101111010;
42
           #10000;
43
//inputA:4.5000000000e+048
44
//inputB:2.0000000000e+067
45
opa = 64'b0100101000001000101000011101011111010100101101100000000110000001;
46
opb = 64'b0100110111100111101111010010100111010001110010000111101000011001;
47
           #10000;
48
//inputA:2.9999997039e-317
49
//inputB:4.0000000000e+067
50
opa = 64'b0000000000000000000000000000000000000000010111001010011100000011;
51
opb = 64'b0100110111110111101111010010100111010001110010000111101000011001;
52
          #10000;
53
//inputA:-4.6990000000e+000
54
//inputB:6.0000000000e+089
55
opa = 64'b1100000000010010110010111100011010100111111011111001110110110010;
56
opb = 64'b0101001010010010110110011101010111010010010011000000001010101011;
57
           #10000;
58
//inputA:3.0000000000e-200
59
//inputB:4.0000000000e-077
60
opa = 64'b0001011010000010010111101110110110001111111110110011100111000001;
61
opb = 64'b0011000000010010100001101101100000001110110000011001000011011100;
62
           #10000;
63
//inputA:5.0000000000e-250
64
//inputB:4.0000000000e-100
65
opa = 64'b0000110000101100101000111000111100110101000010110010001011011111;
66
opb = 64'b0010101101001011111111110010111011100100100011100000010100110000;
67
           #10000;
68
//inputA:1.#INF000000e+000
69
//inputB:2.0000000000e-200
70
opa = 64'b0111111111110000000000000000000000000000000000000000000000000000;
71
opb = 64'b0001011001111000011111101001001000010101010011101111011110101100;
72
            #10000;
73
//inputA:8.9999000000e+004
74
//inputB:1.6000000000e+001
75
opa = 64'b0100000011110101111110001111000000000000000000000000000000000000;
76
opb = 64'b0100000000110000000000000000000000000000000000000000000000000000;
77
//Output:1.695330000000000e+002   
78
        #100000;
79
if (outfp==64'h4065310E56041894)
80
        $display($time,"ps Answer is correct %h", outfp);
81
else
82
        $display($time,"ps Error! out is incorrect %h", outfp);
83
        #10000; //0
84
        //Output:3.649020000000000e-010
85
if (outfp==64'h3DF9136C82DFC196)
86
        $display($time,"ps Answer is correct %h", outfp);
87
else
88
        $display($time,"ps Error! out is incorrect %h", outfp);
89
        #10000; //0
90
        //Output:8.999999999999999e+115
91
if (outfp==64'h580245EF347B07BD)
92
        $display($time,"ps Answer is correct %h", outfp);
93
else
94
        $display($time,"ps Error! out is incorrect %h", outfp);
95
        #10000; //0
96
        //Output:1.199999881578528e-249
97
if (outfp==64'h0000000000000000)
98
        $display($time,"ps Answer is correct %h", outfp);
99
else
100
        $display($time,"ps Error! out is incorrect %h", outfp);
101
        #10000; //0
102
        //Output:-2.819400000000000e+090
103
if (outfp==64'hD2B625266303A947)
104
        $display($time,"ps Answer is correct %h", outfp);
105
else
106
        $display($time,"ps Error! out is incorrect %h", outfp);
107
        #10000; //0
108
        //Output:1.200000000000000e-276
109
if (outfp==64'h06A5459E5A08DFFE)
110
        $display($time,"ps Answer is correct %h", outfp);
111
else
112
        $display($time,"ps Error! out is incorrect %h", outfp);
113
        #10000; //0
114
        //Output:0.000000000000000e+000
115
if (outfp==64'h0000000000000000)
116
        $display($time,"ps Answer is correct %h", outfp);
117
else
118
        $display($time,"ps Error! out is incorrect %h", outfp);
119
        #10000; //0
120
        //Output:3.595386269724632e+108
121
if (outfp==64'h7FF0000000000000)
122
        $display($time,"ps Answer is correct %h", outfp);
123
else
124
        $display($time,"ps Error! out is incorrect %h", outfp);
125
        #10000; //0
126
        //Output:1.439984000000000e+006
127
if (outfp==64'h4135F8F000000000)
128
        $display($time,"ps Answer is correct %h", outfp);
129
else
130
        $display($time,"ps Error! out is incorrect %h", outfp);
131
        #130000;
132
        $finish;
133
end
134
 
135
always
136
begin : CLOCK_clk
137
 
138
        clk = 1'b0;
139
        #5000;
140
        clk = 1'b1;
141
        #5000;
142
end
143
 
144
 
145
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.