Re: errata/140 and errata/192: real values vs integer values

From: Shalom Bresticker (Shalom.Bresticker@motorola.com)
Date: Tue May 13 2003 - 06:17:03 PDT

  • Next message: Kurt Baty: "Re: errata/140 and errata/192: real values vs integer values"

    I ran this in VCS. Results attached.

    > module ieee_etf_140_test;
    >
    > `include "fphdl64_real_functions.inc"
    >
    > parameter limit = 4;
    > integer x,y,answer,int_answer;
    > real x_real,answer_real;
    > reg [63:0] x_bits,answer_bits;
    >
    > initial
    > begin
    > x_real = 0.5;
    > x = x_real;
    > $display("x = %0d = x_real =",x,x_real);
    > $display;
    > for(y=limit;y>=-limit;y=y-1) begin
    > for(x=limit;x>=-limit;x=x-1) begin
    > x_real = x;
    > // x_bits = $realtobits(x_real);
    > // answer_bits = pow(x_bits,y);
    > // answer_real = $bitstoreal(answer_bits);
    > answer_real = x_real / y;
    > int_answer = x / y;
    > answer = answer_real;
    > // $display("%0d ** %0d = %0d = ",x,y,answer,answer_real);
    > $display("%0d / %0d as int = %0d as real = %0d = ",x,y,int_answer,answer,answer_real);
    > end
    > end
    > end
    >
    > endmodule

    --
    Shalom Bresticker                           Shalom.Bresticker@motorola.com
    Design & Reuse Methodology                             Tel: +972 9 9522268
    Motorola Semiconductor Israel, Ltd.                    Fax: +972 9 9522890
    POB 2208, Herzlia 46120, ISRAEL                       Cell: +972 50 441478
    

    Chronologic VCS simulator copyright 1991-2002
    Contains Synopsys proprietary information.
    Compiler version 6.2R10; Runtime version 6.2R10; May 13 16:13 2003

    x = 1 = x_real =0.5

    4 / 4 as int = 1 as real = 1 = 1
    3 / 4 as int = 0 as real = 1 = 0.75
    2 / 4 as int = 0 as real = 1 = 0.5
    1 / 4 as int = 0 as real = 0 = 0.25
    0 / 4 as int = 0 as real = 0 = 0
    -1 / 4 as int = 0 as real = 0 = -0.25
    -2 / 4 as int = 0 as real = -1 = -0.5
    -3 / 4 as int = 0 as real = -1 = -0.75
    -4 / 4 as int = -1 as real = -1 = -1
    4 / 3 as int = 1 as real = 1 = 1.33333
    3 / 3 as int = 1 as real = 1 = 1
    2 / 3 as int = 0 as real = 1 = 0.666667
    1 / 3 as int = 0 as real = 0 = 0.333333
    0 / 3 as int = 0 as real = 0 = 0
    -1 / 3 as int = 0 as real = 0 = -0.333333
    -2 / 3 as int = 0 as real = -1 = -0.666667
    -3 / 3 as int = -1 as real = -1 = -1
    -4 / 3 as int = -1 as real = -1 = -1.33333
    4 / 2 as int = 2 as real = 2 = 2
    3 / 2 as int = 1 as real = 2 = 1.5
    2 / 2 as int = 1 as real = 1 = 1
    1 / 2 as int = 0 as real = 1 = 0.5
    0 / 2 as int = 0 as real = 0 = 0
    -1 / 2 as int = 0 as real = -1 = -0.5
    -2 / 2 as int = -1 as real = -1 = -1
    -3 / 2 as int = -1 as real = -2 = -1.5
    -4 / 2 as int = -2 as real = -2 = -2
    4 / 1 as int = 4 as real = 4 = 4
    3 / 1 as int = 3 as real = 3 = 3
    2 / 1 as int = 2 as real = 2 = 2
    1 / 1 as int = 1 as real = 1 = 1
    0 / 1 as int = 0 as real = 0 = 0
    -1 / 1 as int = -1 as real = -1 = -1
    -2 / 1 as int = -2 as real = -2 = -2
    -3 / 1 as int = -3 as real = -3 = -3
    -4 / 1 as int = -4 as real = -4 = -4
    4 / 0 as int = x as real = 0 = Inf
    3 / 0 as int = x as real = 0 = Inf
    2 / 0 as int = x as real = 0 = Inf
    1 / 0 as int = x as real = 0 = Inf
    0 / 0 as int = x as real = 0 = NaN
    -1 / 0 as int = x as real = 0 = -Inf
    -2 / 0 as int = x as real = 0 = -Inf
    -3 / 0 as int = x as real = 0 = -Inf
    -4 / 0 as int = x as real = 0 = -Inf
    4 / -1 as int = -4 as real = -4 = -4
    3 / -1 as int = -3 as real = -3 = -3
    2 / -1 as int = -2 as real = -2 = -2
    1 / -1 as int = -1 as real = -1 = -1
    0 / -1 as int = 0 as real = 0 = -0
    -1 / -1 as int = 1 as real = 1 = 1
    -2 / -1 as int = 2 as real = 2 = 2
    -3 / -1 as int = 3 as real = 3 = 3
    -4 / -1 as int = 4 as real = 4 = 4
    4 / -2 as int = -2 as real = -2 = -2
    3 / -2 as int = -1 as real = -2 = -1.5
    2 / -2 as int = -1 as real = -1 = -1
    1 / -2 as int = 0 as real = -1 = -0.5
    0 / -2 as int = 0 as real = 0 = -0
    -1 / -2 as int = 0 as real = 1 = 0.5
    -2 / -2 as int = 1 as real = 1 = 1
    -3 / -2 as int = 1 as real = 2 = 1.5
    -4 / -2 as int = 2 as real = 2 = 2
    4 / -3 as int = -1 as real = -1 = -1.33333
    3 / -3 as int = -1 as real = -1 = -1
    2 / -3 as int = 0 as real = -1 = -0.666667
    1 / -3 as int = 0 as real = 0 = -0.333333
    0 / -3 as int = 0 as real = 0 = -0
    -1 / -3 as int = 0 as real = 0 = 0.333333
    -2 / -3 as int = 0 as real = 1 = 0.666667
    -3 / -3 as int = 1 as real = 1 = 1
    -4 / -3 as int = 1 as real = 1 = 1.33333
    4 / -4 as int = -1 as real = -1 = -1
    3 / -4 as int = 0 as real = -1 = -0.75
    2 / -4 as int = 0 as real = -1 = -0.5
    1 / -4 as int = 0 as real = 0 = -0.25
    0 / -4 as int = 0 as real = 0 = -0
    -1 / -4 as int = 0 as real = 0 = 0.25
    -2 / -4 as int = 0 as real = 1 = 0.5
    -3 / -4 as int = 0 as real = 1 = 0.75
    -4 / -4 as int = 1 as real = 1 = 1
               V C S S i m u l a t i o n R e p o r t
    Time: 0
    CPU Time: 0.050 seconds; Data structure size: 0.0Mb
    Tue May 13 16:13:43 2003



    This archive was generated by hypermail 2.1.4 : Tue May 13 2003 - 06:17:59 PDT and
    sponsored by Boyd Technology, Inc.