From: Eddie Hung Date: Thu, 26 Sep 2019 05:58:03 +0000 (-0700) Subject: Do not die if DSP48E1.P has no users (would otherwise get 'clean'-ed) X-Git-Tag: working-ls180~1039^2~16 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f1de93edf5b5c73440d445d8d6fa32251d2bdab1;p=yosys.git Do not die if DSP48E1.P has no users (would otherwise get 'clean'-ed) --- diff --git a/passes/pmgen/xilinx_dsp.pmg b/passes/pmgen/xilinx_dsp.pmg index 0a345e88d..3d0b1f2c3 100644 --- a/passes/pmgen/xilinx_dsp.pmg +++ b/passes/pmgen/xilinx_dsp.pmg @@ -53,6 +53,10 @@ code sigA sigB sigC sigD sigM clock } else sigM = P; + // This sigM could have no users if downstream $add + // is narrower than $mul result, for example + if (sigM.empty()) + reject; clock = port(dsp, \CLK, SigBit()); endcode @@ -261,7 +265,7 @@ endcode match postAdd // Ensure that Z mux is not already used - if port(dsp, \OPMODE).extract(4,3).is_fully_zero() + if port(dsp, \OPMODE, SigSpec()).extract(4,3).is_fully_zero() select postAdd->type.in($add) select GetSize(port(postAdd, \Y)) <= 48