R
rickman
Guest
Alan Fitch wrote:
of just sticking it in the wait statement. I thought it would be better
to calculate it once and then test it and set to zero if negative. So
now I have to do the calculation twice.
I am getting the same error from a different assignment now. The common
point is that a signal is on the right hand side of the assignment and a
variable is on the left. I am using the variable assignment operator,
":=". This is reported as an error, not a warning.
Last_Bus_Action := Bus_Command.Bus_Action;
In both cases, part of the right hand expression is an element in a
record. The error reports the record "Bus_Command" as missing from the
sensitivity list, not the element! Could the VITAL process have a bug
in regards to dealing with record elements? This doesn't sound likely
to me. But then I don't even know what the VITAL process is.
Maybe I need to contact Mentor about ModelSim.
--
Rick "rickman" Collins
rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.
Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design URL http://www.arius.com
4 King Ave 301-682-7772 Voice
Frederick, MD 21701-3110 301-682-7666 FAX
Yes, now, not "not"."rickman" <spamgoeshere4@yahoo.com> wrote in message
news:3F2EFF97.9072E30A@yahoo.com...
I added a variable to calculate a time for a wait statement in a
testbench and am not getting this error from ModelSim...
^^^ now??
The possibility of being negative was why I was using a variable insteadSignal arm_command is read by the VITAL process but is NOT in the
sensitivity list
This is the line of code producing the error...
WaitTime := (ARM_command.RelTime - (now - CurrentTime));
I follow this up with a check for negative values before using in
the
wait. ARM_command is a signal and WaitTime and CurrentTime are
variables. And of course all these objects are of type time. This
same
calculation done directly in the wait statement gives no error.
It sounds like Modelsim is confused. Is it actually an error, or just
a warning? Having a signal read that is not in the sensitivity list
is not an error. Can you disable Modelsim's synthesis checks?
If it's a warning, just ignore it.
If it's an error, it sounds like a bug.
regards
Alan
p.s. I know it's nothing to do with this error, but I'd check for
negative values before assigning, just because I am paranoid (!). In
particular I wonder what happens if you assign a negative time value
to a variable of type time?
e.g.
assert ( (ARM_command.RelTime - (now - CurrentTime)) >= 0 ns )
report "negative time value";
waittime := ...
p.p.s.
Reading the LRM shows I really am being paranoid, as type TIME is
guaranteed to include the range -2**9+1 to 2^9-1, so negative
time values in variables of type TIME are ok.
of just sticking it in the wait statement. I thought it would be better
to calculate it once and then test it and set to zero if negative. So
now I have to do the calculation twice.
I am getting the same error from a different assignment now. The common
point is that a signal is on the right hand side of the assignment and a
variable is on the left. I am using the variable assignment operator,
":=". This is reported as an error, not a warning.
Last_Bus_Action := Bus_Command.Bus_Action;
In both cases, part of the right hand expression is an element in a
record. The error reports the record "Bus_Command" as missing from the
sensitivity list, not the element! Could the VITAL process have a bug
in regards to dealing with record elements? This doesn't sound likely
to me. But then I don't even know what the VITAL process is.
Maybe I need to contact Mentor about ModelSim.
--
Rick "rickman" Collins
rick.collins@XYarius.com
Ignore the reply address. To email me use the above address with the XY
removed.
Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design URL http://www.arius.com
4 King Ave 301-682-7772 Voice
Frederick, MD 21701-3110 301-682-7666 FAX