From 79feb44f1075b4b95e7a5cf037326c8a2d132feb Mon Sep 17 00:00:00 2001 From: Stephen Williams Date: Mon, 9 Jun 2008 16:57:51 -0700 Subject: [PATCH] Turn of concat output scheduling. We really want lazy processing of concatenation because it has multiple inputs and lazy processing should (in theory) prevent redundant and useless propagations through the net. But enabling it seems to cause many tests in the regression test suite to fail to compare their results. There are races in many tests that are interacting badly with this feature. So for now, ifdef it out. --- vvp/concat.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vvp/concat.cc b/vvp/concat.cc index 600648f19..1854f0cc3 100644 --- a/vvp/concat.cc +++ b/vvp/concat.cc @@ -28,6 +28,8 @@ #endif # include +# define SCHEDULE_OUTPUT 0 + /* vvp_fun_concat * This node function creates vectors (vvp_vector4_t) from the * concatenation of the inputs. The inputs (4) may be vector or @@ -84,9 +86,13 @@ void vvp_fun_concat::recv_vec4(vvp_net_ptr_t port, const vvp_vector4_t&bit) return; input_[pdx] = bit; + if (net_ == 0) { net_ = port.ptr(); - schedule_generic(this, 0, false); + if (SCHEDULE_OUTPUT) + schedule_generic(this, 0, false); + else + run_run(); } }