From 12fe847888ad17e347e6e24ac1f9f2fa6ee68fdb Mon Sep 17 00:00:00 2001 From: awaisabbas006 Date: Mon, 28 Oct 2024 15:29:27 +0500 Subject: [PATCH] fix eda-3287 --- src/rs-pack-dsp-regs.cc | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/rs-pack-dsp-regs.cc b/src/rs-pack-dsp-regs.cc index 41fc9487..94856d3e 100644 --- a/src/rs-pack-dsp-regs.cc +++ b/src/rs-pack-dsp-regs.cc @@ -364,15 +364,30 @@ struct RsPackDspRegsWorker continue; } } - if (ignore_dsp){ - continue; + RTLIL::Const DSP_RST_POL; + if (!gen) + { + DSP_RST_POL = it_dsp->getParam(RTLIL::escape_id("DSP_RST_POL")); + log("DSP_Reset value = %d\n", DSP_RST_POL.as_int()); + if ((ignore_dsp) && !(DSP_RST_POL.as_int())) + continue; + // if DSP data ports is driven from DFFs add it in vector + if (port_a_from_dff && port_b_from_dff && port_load_acc_from_dff && (!ignore_dsp || DSP_RST_POL.as_int() != 0)) + DSP_driven_only_by_DFF.push_back(it_dsp); + } + else + { + if (ignore_dsp) + continue; + // if DSP data ports is driven from DFFs add it in vector + if (port_a_from_dff && port_b_from_dff && port_load_acc_from_dff && !ignore_dsp) + DSP_driven_only_by_DFF.push_back(it_dsp); } // if DSP data ports is driven from DFFs add it in vector - if (port_a_from_dff && port_b_from_dff && port_load_acc_from_dff && !ignore_dsp) { - DSP_driven_only_by_DFF.push_back(it_dsp); - } - if (1) { + + if (1) + { DSP_drives_DFF.push_back(it_dsp); } }