#911 Verilog model from vendor fails to compile

v0.9
closed-wont-fix
nobody
5
2012-11-26
2012-11-08
Tim Earnest
No

I am trying to figure out what statement(s) are failing with this model... the compiler is complaining about some real numbers being larger than 64 bits, but there are no "real" variables defined in the model. Could possibly be related to a "time" variable or net delay (such as #tPUW).

Any brief analysis or suggestions would be greatly appreciated.

Thanks! ;-}>

Here is the compile listing:

> iverilog -v -g2 MX25U1635E_v1_15.v
Icarus Verilog version 0.9.6 (v0_9_6)

Copyright 1998-2010 Stephen Williams

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

translate: /usr/lib64/ivl/ivlpp -v -L -F"/tmp/ivrlg26a31da17" -f"/tmp/ivrlg6a31da17" -p"/tmp/ivrli6a31da17" | /usr/lib64/ivl/ivl -v -C"/tmp/ivrlh6a31da17" -C"/usr/lib64/ivl/vvp.conf" -- -
Icarus Verilog Preprocessor version 0.9.6 (v0_9_6)

Copyright (c) 1999-2011 Stephen Williams (steve@icarus.com)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
/usr/lib64/ivl/system.sft: Processing System Function Table file.
Using language generation: IEEE1364-2001,no-specify,no-xtypes,no-icarus-misc
PARSING INPUT
LOCATING TOP-LEVEL MODULES
MX25U1635E
... done, 0.03 seconds.
ELABORATING DESIGN
... done, 0.01 seconds.
RUNNING FUNCTORS
-F cprop ...
-F nodangle ...
... 1 iterations deleted 34 dangling signals and 2 events.
... 2 iterations deleted 34 dangling signals and 18 events.
CALCULATING ISLANDS
... done, 0 seconds.
CODE GENERATION
... invoking target_design
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
(null):0: tgt-vvp warning: V0.9 may give incorrect results when casting an unsigned value greater than 63 bits to a real value.
... done, 0.01 seconds.
STATISTICS
lex_string: add_count=841 hit_count=2815

Discussion

  • Tim Earnest
    Tim Earnest
    2012-11-08

     
    Attachments
  • You have declared specparams, such as tSCLK, which are real values. When used in an expression, such as

    $time - T_SCLK_P < tSCLK

    the expression type will be real, i.e. $time and T_SCLK_P will be cast to real before the expression is evaluated.

    $time returns a "time" value, which is a 64 bit unsigned number. There is a bug in v0.9 which means that casting 64 bit unsigned numbers to reals does not always give the correct answer. This bug is fixed in development, but the fix cannot be backported to v0.9 (because it breaks backwards compatibility with previously compiled code).

     
  • Cary R.
    Cary R.
    2012-11-12

    • status: open --> open-wont-fix
     
  • Cary R.
    Cary R.
    2012-11-12

    I agree with Martin, this fix will not be back ported to the V0.9 branch. I will give the original poster some time to comment before closing this report, but I am marking it as won't fix.

     
  • Cary R.
    Cary R.
    2012-11-26

    • status: open-wont-fix --> closed-wont-fix