From d0dbbc26054d1cd7b8766e2d996196e246216e8c Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Mon, 23 Sep 2019 13:26:34 -0700 Subject: [PATCH] Move unextend initialisation later --- passes/pmgen/xilinx_dsp_cascade.pmg | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/passes/pmgen/xilinx_dsp_cascade.pmg b/passes/pmgen/xilinx_dsp_cascade.pmg index 19fe48bba..37674efea 100644 --- a/passes/pmgen/xilinx_dsp_cascade.pmg +++ b/passes/pmgen/xilinx_dsp_cascade.pmg @@ -3,19 +3,6 @@ pattern xilinx_dsp_cascadeP udata > unextend state sigC -code - unextend = [](const SigSpec &sig) { - int i; - for (i = GetSize(sig)-1; i > 0; i--) - if (sig[i] != sig[i-1]) - break; - // Do not remove non-const sign bit - if (sig[i].wire) - ++i; - return sig.extract(0, i); - }; -endcode - match dsp_pcin select dsp_pcin->type.in(\DSP48E1) select !param(dsp_pcin, \CREG, State::S1).as_bool() @@ -25,6 +12,16 @@ match dsp_pcin endmatch code sigC + unextend = [](const SigSpec &sig) { + int i; + for (i = GetSize(sig)-1; i > 0; i--) + if (sig[i] != sig[i-1]) + break; + // Do not remove non-const sign bit + if (sig[i].wire) + ++i; + return sig.extract(0, i); + }; sigC = unextend(port(dsp_pcin, \C)); endcode