From 97fca3fc4b4847d9030d3a4436a02ef90db030ae Mon Sep 17 00:00:00 2001 From: Cary R Date: Wed, 21 Oct 2015 22:00:50 -0700 Subject: [PATCH] Fix the modpath delay to ignore bits that are not changing --- vvp/delay.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vvp/delay.cc b/vvp/delay.cc index 94c323f78..5bda67ad8 100644 --- a/vvp/delay.cc +++ b/vvp/delay.cc @@ -645,8 +645,11 @@ void vvp_fun_modpath::recv_vec4(vvp_net_ptr_t port, const vvp_vector4_t&bit, and schedule an event for each partial change. Hard! */ for (unsigned idx = 1 ; idx < bit.size() ; idx += 1) { vvp_time64_t tmp = delay_from_edge(cur_vec4_.value(idx), - bit.value(0), + bit.value(idx), out_at); + /* If the current and new bit values match then no delay + * is needed for this bit. */ + if (cur_vec4_.value(idx) == bit.value(idx)) continue; assert(tmp == use_delay); }