Simplify filter expressions

This commit is contained in:
Eddie Hung 2019-09-06 11:39:20 -07:00
parent 39a5d046ea
commit fbf1b74946
1 changed files with 12 additions and 6 deletions

View File

@ -50,7 +50,8 @@ match ffA
select param(ffA, \CLK_POLARITY).as_bool() select param(ffA, \CLK_POLARITY).as_bool()
filter GetSize(port(ffA, \Q)) >= GetSize(sigA) filter GetSize(port(ffA, \Q)) >= GetSize(sigA)
slice offset GetSize(port(ffA, \Q)) slice offset GetSize(port(ffA, \Q))
filter offset+GetSize(sigA) <= GetSize(port(ffA, \Q)) && port(ffA, \Q).extract(offset, GetSize(sigA)) == sigA filter offset+GetSize(sigA) <= GetSize(port(ffA, \Q))
filter port(ffA, \Q).extract(offset, GetSize(sigA)) == sigA
optional optional
endmatch endmatch
@ -78,9 +79,11 @@ match ffAmux
select ffAmux->type.in($mux) select ffAmux->type.in($mux)
filter GetSize(port(ffAmux, \Y)) >= GetSize(sigA) filter GetSize(port(ffAmux, \Y)) >= GetSize(sigA)
slice offset GetSize(port(ffAmux, \Y)) slice offset GetSize(port(ffAmux, \Y))
filter offset+GetSize(sigA) <= GetSize(port(ffAmux, \Y)) && port(ffAmux, \Y).extract(offset, GetSize(sigA)) == sigA filter offset+GetSize(sigA) <= GetSize(port(ffAmux, \Y))
filter port(ffAmux, \Y).extract(offset, GetSize(sigA)) == sigA
choice <IdString> BA {\B, \A} choice <IdString> BA {\B, \A}
filter offset+GetSize(sigffAmuxY) <= GetSize(port(ffAmux, \Y)) && port(ffAmux, BA).extract(offset, GetSize(sigffAmuxY)) == sigffAmuxY filter offset+GetSize(sigffAmuxY) <= GetSize(port(ffAmux, \Y))
filter port(ffAmux, BA).extract(offset, GetSize(sigffAmuxY)) == sigffAmuxY
define <bool> pol (BA == \B) define <bool> pol (BA == \B)
set ffAenpol pol set ffAenpol pol
optional optional
@ -93,7 +96,8 @@ match ffB
select param(ffB, \CLK_POLARITY).as_bool() select param(ffB, \CLK_POLARITY).as_bool()
filter GetSize(port(ffB, \Q)) >= GetSize(sigB) filter GetSize(port(ffB, \Q)) >= GetSize(sigB)
slice offset GetSize(port(ffB, \Q)) slice offset GetSize(port(ffB, \Q))
filter offset+GetSize(sigB) <= GetSize(port(ffB, \Q)) && port(ffB, \Q).extract(offset, GetSize(sigB)) == sigB filter offset+GetSize(sigB) <= GetSize(port(ffB, \Q))
filter port(ffB, \Q).extract(offset, GetSize(sigB)) == sigB
optional optional
endmatch endmatch
@ -124,9 +128,11 @@ match ffBmux
select ffBmux->type.in($mux) select ffBmux->type.in($mux)
filter GetSize(port(ffBmux, \Y)) >= GetSize(sigB) filter GetSize(port(ffBmux, \Y)) >= GetSize(sigB)
slice offset GetSize(port(ffBmux, \Y)) slice offset GetSize(port(ffBmux, \Y))
filter offset+GetSize(sigB) <= GetSize(port(ffBmux, \Y)) && port(ffBmux, \Y).extract(offset, GetSize(sigB)) == sigB filter offset+GetSize(sigB) <= GetSize(port(ffBmux, \Y))
filter port(ffBmux, \Y).extract(offset, GetSize(sigB)) == sigB
choice <IdString> BA {\B, \A} choice <IdString> BA {\B, \A}
filter offset+GetSize(sigffBmuxY) <= GetSize(port(ffBmux, \Y)) && port(ffBmux, BA).extract(offset, GetSize(sigffBmuxY)) == sigffBmuxY filter offset+GetSize(sigffBmuxY) <= GetSize(port(ffBmux, \Y))
filter port(ffBmux, BA).extract(offset, GetSize(sigffBmuxY)) == sigffBmuxY
define <bool> pol (BA == \B) define <bool> pol (BA == \B)
set ffBenpol pol set ffBenpol pol
optional optional