Clean pulse events for real signals.
This patch cleans pulse events for real signals. Not doing this can produce invalid results under some conditions.
This commit is contained in:
parent
2bab415626
commit
4d8db7b5bc
10
vvp/delay.cc
10
vvp/delay.cc
|
|
@ -288,12 +288,16 @@ void vvp_fun_delay::recv_real(vvp_net_ptr_t port, double bit)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cur_real_ == bit)
|
|
||||||
return;
|
|
||||||
|
|
||||||
vvp_time64_t use_delay;
|
vvp_time64_t use_delay;
|
||||||
use_delay = delay_.get_min_delay();
|
use_delay = delay_.get_min_delay();
|
||||||
|
|
||||||
|
/* Eliminate glitches. */
|
||||||
|
clean_pulse_events_(use_delay);
|
||||||
|
|
||||||
|
/* This must be done after cleaning pulses to avoid propagating
|
||||||
|
* an incorrect value. */
|
||||||
|
if (cur_real_ == bit) return;
|
||||||
|
|
||||||
vvp_time64_t use_simtime = schedule_simtime() + use_delay;
|
vvp_time64_t use_simtime = schedule_simtime() + use_delay;
|
||||||
|
|
||||||
if (use_delay == 0) {
|
if (use_delay == 0) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue