Does anybody know how to disable the CONV_INTEGER warnings in ISIM (11.1)?
at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
converted to 0.
at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
converted to 0.
"HT-Lab" <[email protected]> wrote in message
news:[email protected]...
> Does anybody know how to disable the CONV_INTEGER warnings in ISIM (11.1)?
>
> at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
> converted to 0.
> at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
> converted to 0.
Only just guessing at the context... I would think ISIM's post-route
simulation elaborator is complaining that it's forcing to '0' an
uninitialized integer referenced in a math operation.
"MikeWhy" <[email protected]> wrote in message
newsdWQl.17139$%[email protected]...
> "HT-Lab" <[email protected]> wrote in message
> news:[email protected]...
>> Does anybody know how to disable the CONV_INTEGER warnings in ISIM
>> (11.1)?
>>
>> at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
>> converted to 0.
>> at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
>> converted to 0.
>
> Only just guessing at the context... I would think ISIM's post-route
> simulation elaborator is complaining that it's forcing to '0' an
> uninitialized integer referenced in a math operation.
>
Hi Mike,
Yes you are correct, these message are normally generated by Synopsys/IEEE
packages and in Modelsim I just turn them off. I know what's causing them
and fixed the issue by changing the code, however, it would be useful to
have an option to turn them off.
"HT-Lab" <[email protected]> wrote in message
news:[email protected]...
>
> "MikeWhy" <[email protected]> wrote in message
> newsdWQl.17139$%[email protected]...
>> "HT-Lab" <[email protected]> wrote in message
>> news:[email protected]...
>>> Does anybody know how to disable the CONV_INTEGER warnings in ISIM
>>> (11.1)?
>>>
>>> at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>>> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has
>>> been converted to 0.
>>> at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>>> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has
>>> been converted to 0.
>>
>> Only just guessing at the context... I would think ISIM's post-route
>> simulation elaborator is complaining that it's forcing to '0' an
>> uninitialized integer referenced in a math operation.
>>
> Hi Mike,
>
> Yes you are correct, these message are normally generated by Synopsys/IEEE
> packages and in Modelsim I just turn them off. I know what's causing them
> and fixed the issue by changing the code, however, it would be useful to
> have an option to turn them off.
Hmmm. 'U' + 'X' is useful? Selectively ignorable, yes, but habitually
ignoring them silently does sound potentially problematic.
"MikeWhy" <[email protected]> wrote in message
news:[email protected]...
> "HT-Lab" <[email protected]> wrote in message
> news:[email protected]...
>>
>> "MikeWhy" <[email protected]> wrote in message
>> newsdWQl.17139$%[email protected]...
>>> "HT-Lab" <[email protected]> wrote in message
>>> news:[email protected]...
>>>> Does anybody know how to disable the CONV_INTEGER warnings in ISIM
>>>> (11.1)?
>>>>
>>>> at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning:
>>>> CONV_INTEGER: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand,
>>>> and it has been converted to 0.
>>>> at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning:
>>>> CONV_INTEGER: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand,
>>>> and it has been converted to 0.
>>>
>>> Only just guessing at the context... I would think ISIM's post-route
>>> simulation elaborator is complaining that it's forcing to '0' an
>>> uninitialized integer referenced in a math operation.
>>>
>> Hi Mike,
>>
>> Yes you are correct, these message are normally generated by
>> Synopsys/IEEE packages and in Modelsim I just turn them off. I know
>> what's causing them and fixed the issue by changing the code, however, it
>> would be useful to have an option to turn them off.
>
> Hmmm. 'U' + 'X' is useful? Selectively ignorable, yes, but habitually
> ignoring them silently does sound potentially problematic.
>
It is quite easy to get gazillions of these messages in VHDL, for example
before a reset is asserted or a tri-state bus feeding into an adder (as was
in my case). These warnings prevents you from seeing any other messages. It
also seriously hampers your simulation performance since writing to the
transcript window (at least in Modelsim) is a real performance hog.
"HT-Lab" <[email protected]> wrote in message
news:[email protected]...
> It is quite easy to get gazillions of these messages in VHDL, for example
> before a reset is asserted or a tri-state bus feeding into an adder (as
> was in my case). These warnings prevents you from seeing any other
> messages. It also seriously hampers your simulation performance since
> writing to the transcript window (at least in Modelsim) is a real
> performance hog.
I sometimes forget just how little I know, and appreciate your patient
response.
On Wed, 20 May 2009 10:32:06 +0100, "HT-Lab" <[email protected]> wrote:
>Does anybody know how to disable the CONV_INTEGER warnings in ISIM (11.1)?
>
>at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
>converted to 0.
>at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
>converted to 0.
I don't see these errors from CONV_INTEGER because I use numeric_std instead,
but it looks like the same situation.
My response is to identify the worst culprits and apply "to_01" functions in
appropriate places. I usually live with the remainder which in my projects are
confined to the first few hundred ns after reset as valid signals propagate
through the pipelines.
This way (a) I don't have to globally suppress the warning, so unexpected
consequences of later changes can be caught as early as possible.
(b) I am aware of where the "problem" is occurring and happy that it is only the
result of expected (and allowed) circumstances as above.
It sounds like a tedious task but you may be surprised by how few "to_01"
functions are required; probably half a dozen on the designs I have experience
of.
"Brian Drummond" <[email protected]> wrote in message
news:[email protected]...
> On Wed, 20 May 2009 10:32:06 +0100, "HT-Lab" <[email protected]> wrote:
>
>>Does anybody know how to disable the CONV_INTEGER warnings in ISIM (11.1)?
>>
>>at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>>There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
>>converted to 0.
>>at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
>>There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
>>converted to 0.
>
> I don't see these errors from CONV_INTEGER because I use numeric_std
> instead,
> but it looks like the same situation.
>
> My response is to identify the worst culprits and apply "to_01" functions
> in
> appropriate places.
"HT-Lab" <[email protected]> wrote in message
news:[email protected]...
> Does anybody know how to disable the CONV_INTEGER warnings in ISIM (11.1)?
>
> at 3000290500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
> converted to 0.
> at 3000365500 ps(1), Instance /cpu_top_tb/U_12/ : Warning: CONV_INTEGER:
> There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been
> converted to 0.
>
In my humble experience, having an undefined 'U'|'X'|'W'|'Z'|'-' in an
arithmetic operand is rarely intentional and I'd hate to turn off checking
for all such cases.
Wouldn't it be better to see why it happens, perhaps initialising some
variables to get rid of any 'U's?