Hi Arpad, As John Shields described, an event will happen when the expression Q - E changes sign. The basic question is when does the event happen. I assume you expect it to happen at the same time as the event on SomeRealSignal. This is not what the LRM describes. Since the driver of the 'ABOVE signal is owned by the analog kernel, the crossing event can only happen after the analog kernel has determined an ASP, because only then does it perform the crossing check. Now, if you study the simulation cycle, you will find that the analog solver determines another ASP only under two conditions: either the break flag is set, or Tn > Tc in step a). In the latter case the ASPs do not include Tc (the ASP at this time has already been determined), so you will get the crossing event at a later time than the event on SomeRealSignal. The only way to get what you want is to execute a break statement when the event occurs on SomeRealSignal. This tells the analog solver that there is a discontinuity on one of the waveforms it is in control of, the waveform SomeRealQuantity-SomeRealSignal. Thanks. Ernst Christen On Thu, 24 Aug 2006 15:51:52 -0700, Muranyi, Arpad wrote: > Hello Everyone, > > Sorry if this forum in not the right place to ask this question, but I > am not > sure where else I could ask it. Does the LRM specify how simulators > should > handle the following wait statement: > > TestAbove : process is > begin > Count > wait on SomeRealQuantity'above(SomeRealSignal); > end process TestAbove; > > when there is another process that can change the value of > SomeRealSignal? > > For example, let's assume that when this process stops on the wait > statement, > the value of SomeRealSignal is 1.0 and the value of SomeRealQuantity is > 0.0, > therefore the 'above returns a FALSE. For simplicity, let's also assume > that > the quantity SomeRealQuantity is not changing. Some time later another > process decides to change the value of SomeRealSignal to -1.0. Is this > change supposed to cause the 'above statement change to TRUE and get the > waiting process out of wait, or should it remain false until the > quantity > goes below and above the signal's new value? In other words, is the > 'above > attribute supposed to act on both its argument and quantity in "real > time", > or only on the quantity? > > If you haven't guessed it yet, the reason I am asking this is because > two > different vendor's tools give me different results because of this. > > Thanks, > > Arpad > =================================================================== ===== > ==Received on Thu Aug 24 17:35:07 2006
This archive was generated by hypermail 2.1.8 : Thu Aug 24 2006 - 17:35:12 PDT