diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-09-06 14:36:10 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-09-06 14:36:10 -0700 |
commit | 8246062acfd3b294c59ce72a9dcc6513dc0d08bd (patch) | |
tree | 158b984e2b781734dc34b954af759886b8d08d3f /passes | |
parent | 2c32056990b9742839841f4cf3fa31d742cef472 (diff) | |
download | yosys-8246062acfd3b294c59ce72a9dcc6513dc0d08bd.tar.gz yosys-8246062acfd3b294c59ce72a9dcc6513dc0d08bd.tar.bz2 yosys-8246062acfd3b294c59ce72a9dcc6513dc0d08bd.zip |
Fix enable polarity
Diffstat (limited to 'passes')
-rw-r--r-- | passes/pmgen/xilinx_dsp.cc | 4 | ||||
-rw-r--r-- | passes/pmgen/xilinx_dsp.pmg | 24 |
2 files changed, 14 insertions, 14 deletions
diff --git a/passes/pmgen/xilinx_dsp.cc b/passes/pmgen/xilinx_dsp.cc index 65a4d5a11..d8213e02f 100644 --- a/passes/pmgen/xilinx_dsp.cc +++ b/passes/pmgen/xilinx_dsp.cc @@ -112,7 +112,7 @@ void pack_xilinx_dsp(dict<SigBit, Cell*> &bit_to_driver, xilinx_dsp_pm &pm) A.replace(Q, D); if (st.ffAmux) { SigSpec Y = st.ffAmux->getPort("\\Y"); - SigSpec AB = st.ffAmux->getPort(st.ffAenpol ? "\\A" : "\\B"); + SigSpec AB = st.ffAmux->getPort(st.ffAenpol ? "\\B" : "\\A"); SigSpec S = st.ffAmux->getPort("\\S"); A.replace(Y, AB); cell->setPort("\\CEA2", st.ffAenpol ? S : pm.module->Not(NEW_ID, S)); @@ -130,7 +130,7 @@ void pack_xilinx_dsp(dict<SigBit, Cell*> &bit_to_driver, xilinx_dsp_pm &pm) B.replace(Q, D); if (st.ffBmux) { SigSpec Y = st.ffBmux->getPort("\\Y"); - SigSpec AB = st.ffBmux->getPort(st.ffBenpol ? "\\A" : "\\B"); + SigSpec AB = st.ffBmux->getPort(st.ffBenpol ? "\\B" : "\\A"); SigSpec S = st.ffBmux->getPort("\\S"); B.replace(Y, AB); cell->setPort("\\CEB2", st.ffBenpol ? S : pm.module->Not(NEW_ID, S)); diff --git a/passes/pmgen/xilinx_dsp.pmg b/passes/pmgen/xilinx_dsp.pmg index 83963804b..f8bd26e8b 100644 --- a/passes/pmgen/xilinx_dsp.pmg +++ b/passes/pmgen/xilinx_dsp.pmg @@ -85,10 +85,10 @@ match ffADmux slice offset GetSize(port(ffADmux, \Y)) filter offset+GetSize(sigA) <= GetSize(port(ffADmux, \Y)) filter port(ffADmux, \Y).extract(offset, GetSize(sigA)) == sigA - choice <IdString> BA {\B, \A} + choice <IdString> AB {\A, \B} filter offset+GetSize(sigffAmuxY) <= GetSize(port(ffADmux, \Y)) - filter port(ffADmux, BA).extract(offset, GetSize(sigffAmuxY)) == sigffAmuxY - define <bool> pol (BA == \B) + filter port(ffADmux, AB).extract(offset, GetSize(sigffAmuxY)) == sigffAmuxY + define <bool> pol (AB == \A) set ffADenpol pol optional endmatch @@ -166,10 +166,10 @@ match ffAmux slice offset GetSize(port(ffAmux, \Y)) filter offset+GetSize(sigA) <= GetSize(port(ffAmux, \Y)) filter port(ffAmux, \Y).extract(offset, GetSize(sigA)) == sigA - choice <IdString> BA {\B, \A} + choice <IdString> AB {\A, \B} filter offset+GetSize(sigffAmuxY) <= GetSize(port(ffAmux, \Y)) - filter port(ffAmux, BA).extract(offset, GetSize(sigffAmuxY)) == sigffAmuxY - define <bool> pol (BA == \B) + filter port(ffAmux, AB).extract(offset, GetSize(sigffAmuxY)) == sigffAmuxY + define <bool> pol (AB == \A) set ffAenpol pol optional endmatch @@ -228,10 +228,10 @@ match ffBmux slice offset GetSize(port(ffBmux, \Y)) filter offset+GetSize(sigB) <= GetSize(port(ffBmux, \Y)) filter port(ffBmux, \Y).extract(offset, GetSize(sigB)) == sigB - choice <IdString> BA {\B, \A} + choice <IdString> AB {\A, \B} filter offset+GetSize(sigffBmuxY) <= GetSize(port(ffBmux, \Y)) - filter port(ffBmux, BA).extract(offset, GetSize(sigffBmuxY)) == sigffBmuxY - define <bool> pol (BA == \B) + filter port(ffBmux, AB).extract(offset, GetSize(sigffBmuxY)) == sigffBmuxY + define <bool> pol (AB == \A) set ffBenpol pol optional endmatch @@ -252,7 +252,7 @@ match ffMmux filter port(ffMmux, BA) == sigM.extract(0, GetSize(port(ffMmux, \Y))) // Remaining bits on sigM must not have any other users filter nusers(sigM.extract_end(GetSize(port(ffMmux, BA)))) <= 1 - define <bool> pol (BA == \B) + define <bool> pol (AB == \A) set ffMenpol pol optional endmatch @@ -348,15 +348,15 @@ match ffPmux select nusers(port(ffPmux, \Y)) == 2 filter GetSize(port(ffPmux, \Y)) >= GetSize(sigP) - choice <IdString> BA {\B, \A} slice offset GetSize(port(ffPmux, \Y)) filter offset+GetSize(sigP) <= GetSize(port(ffPmux, \Y)) + choice <IdString> BA {\B, \A} filter port(ffPmux, BA).extract(offset, GetSize(sigP)) == sigP define <IdString> AB (BA == \B ? \A : \B) // keep-last-value net must have at least three users: ffPmux, ffP, downstream sink(s) filter nusers(port(ffPmux, AB)) >= 3 - define <bool> pol (BA == \B) + define <bool> pol (AB == \A) set ffPenpol pol set ffPoffset offset optional |