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;
|
||||
}
|
||||
|
||||
if (cur_real_ == bit)
|
||||
return;
|
||||
|
||||
vvp_time64_t use_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;
|
||||
|
||||
if (use_delay == 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue