Beispiel #1
0
        public override void AddEvent(ulong NOW, ulong after, AbstractValue value, VHDL.DelayMechanism delayMechanism)
        {
            AbstractTimeStampInfo <T> newValue = new AbstractTimeStampInfo <T>(valueCovertor.GetValue(value));

            if (delayMechanism is VHDL.TRANSPORTDelayMechanism)
            {
                dump.AddTransportEvent(NOW + after, newValue);
                return;
            }

            if (delayMechanism.PulseRejectionLimit != null)
            {
                TIME_VALUE reject = ExpressionEvaluator.DefaultEvaluator.Evaluate(delayMechanism.PulseRejectionLimit) as TIME_VALUE;
                dump.AddInertialEvent(NOW, NOW + after, newValue, (UInt64)reject.DoubleValue);
                return;
            }

            if (delayMechanism is VHDL.INERTIALDelayMechanism)
            {
                dump.AddInertialEvent(NOW, NOW + after, newValue);
                return;
            }
        }
Beispiel #2
0
 void Signal_OnAddEvent(Signal sender, ulong NOW, ulong after, AbstractValue value, VHDL.DelayMechanism delayMechanism)
 {
 }
Beispiel #3
0
 public void AddEvent(UInt64 NOW, UInt64 after, AbstractValue value, VHDL.DelayMechanism delayMechanism)
 {
     Dump.AddEvent(NOW, after, value, delayMechanism);
     onAddEvent(this, NOW, after, value, delayMechanism);
 }
Beispiel #4
0
 /// <summary>
 /// Добавление события в очередь назначения сигнала
 /// </summary>
 /// <param name="NOW"></param>
 /// <param name="after"></param>
 /// <param name="value"></param>
 /// <param name="delayMechanism"></param>
 public abstract void AddEvent(ulong NOW, ulong after, AbstractValue value, VHDL.DelayMechanism delayMechanism);