Move unextend initialisation later
authorEddie Hung <eddie@fpgeh.com>
Mon, 23 Sep 2019 20:26:34 +0000 (13:26 -0700)
committerEddie Hung <eddie@fpgeh.com>
Mon, 23 Sep 2019 20:26:34 +0000 (13:26 -0700)
passes/pmgen/xilinx_dsp_cascade.pmg

index 19fe48bba80944537b6114d17f0236228e00a9b6..37674efea6c019867755b7335a06710d50b9aedf 100644 (file)
@@ -3,7 +3,15 @@ pattern xilinx_dsp_cascadeP
 udata <std::function<SigSpec(const SigSpec&)>> unextend
 state <SigSpec> sigC
 
-code
+match dsp_pcin
+       select dsp_pcin->type.in(\DSP48E1)
+       select !param(dsp_pcin, \CREG, State::S1).as_bool()
+       select port(dsp_pcin, \OPMODE, Const(0, 7)).extract(4,3) == Const::from_string("011")
+       select nusers(port(dsp_pcin, \C, SigSpec())) > 1
+       select nusers(port(dsp_pcin, \PCIN, SigSpec())) == 0
+endmatch
+
+code sigC
        unextend = [](const SigSpec &sig) {
                int i;
                for (i = GetSize(sig)-1; i > 0; i--)
@@ -14,17 +22,6 @@ code
                        ++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()
-       select port(dsp_pcin, \OPMODE, Const(0, 7)).extract(4,3) == Const::from_string("011")
-       select nusers(port(dsp_pcin, \C, SigSpec())) > 1
-       select nusers(port(dsp_pcin, \PCIN, SigSpec())) == 0
-endmatch
-
-code sigC
        sigC = unextend(port(dsp_pcin, \C));
 endcode