From 5fe5171e499eaeee6694c5996f0b7b787cc4eae6 Mon Sep 17 00:00:00 2001 From: Cary R Date: Tue, 13 Jul 2010 15:03:22 -0700 Subject: [PATCH] Fix bug when calculating the decay time from two variable delays. We need to also update the decay time if the new rise/fall value is less than the minimum value and we are in ignore decay mode. --- vvp/delay.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vvp/delay.cc b/vvp/delay.cc index 47d178f98..de0dbc537 100644 --- a/vvp/delay.cc +++ b/vvp/delay.cc @@ -119,18 +119,20 @@ vvp_time64_t vvp_delay_t::get_min_delay() const void vvp_delay_t::set_rise(vvp_time64_t val) { rise_ = val; - if (val < min_delay_) + if (val < min_delay_) { min_delay_ = val; - else + if (ignore_decay_) decay_ = val; + } else calculate_min_delay_(); } void vvp_delay_t::set_fall(vvp_time64_t val) { fall_ = val; - if (val < min_delay_) + if (val < min_delay_) { min_delay_ = val; - else + if (ignore_decay_) decay_ = val; + } else calculate_min_delay_(); }