aboutsummaryrefslogtreecommitdiffstats
path: root/passes/pmgen/ice40_dsp.pmg
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-01-13 10:57:11 +0100
committerClifford Wolf <clifford@clifford.at>2019-01-15 11:23:25 +0100
commitb9545aa0e1260f3d7123ec63e9dcfb0e022e2ff3 (patch)
tree91b4f2d03eca96ecfd9d1403781e904a24631e99 /passes/pmgen/ice40_dsp.pmg
parentad69c668cedaab76f84c982411d7cddbd868cccf (diff)
downloadyosys-b9545aa0e1260f3d7123ec63e9dcfb0e022e2ff3.tar.gz
yosys-b9545aa0e1260f3d7123ec63e9dcfb0e022e2ff3.tar.bz2
yosys-b9545aa0e1260f3d7123ec63e9dcfb0e022e2ff3.zip
Progress in pmgen
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'passes/pmgen/ice40_dsp.pmg')
-rw-r--r--passes/pmgen/ice40_dsp.pmg19
1 files changed, 11 insertions, 8 deletions
diff --git a/passes/pmgen/ice40_dsp.pmg b/passes/pmgen/ice40_dsp.pmg
index 5a0af3e04..2b9bb8783 100644
--- a/passes/pmgen/ice40_dsp.pmg
+++ b/passes/pmgen/ice40_dsp.pmg
@@ -1,6 +1,6 @@
-state SigBit clock
-state bool clock_pol, clock_vld
-state SigSpec sigA, sigB, sigY
+state <SigBit> clock
+state <bool> clock_pol clock_vld
+state <SigSpec> sigA sigB sigY
match mul
select mul->type.in($mul)
@@ -10,7 +10,8 @@ endmatch
match ffA
select ffA->type.in($dff)
- filter port(ffA, \Q) === port(mul, \A)
+ select nusers(port(ffA, \Q)) == 2
+ filter <SigSpec> port(ffA, \Q) === port(mul, \A)
optional
endmatch
@@ -28,11 +29,12 @@ endcode
match ffB
select ffB->type.in($dff)
- filter port(ffB, \Q) === port(mul, \B)
+ select nusers(port(ffA, \Q)) == 2
+ filter <SigSpec> port(ffB, \Q) === port(mul, \B)
optional
endmatch
-code sigB clock clok_pol clock_vld
+code sigB clock clock_pol clock_vld
sigB = port(mul, \B);
if (ffB != nullptr) {
@@ -51,11 +53,12 @@ endcode
match ffY
select ffY->type.in($dff)
- filter port(ffY, \D) === port(mul, \Y)
+ select nusers(port(ffY, \D)) == 2
+ filter <SigSpec> port(ffY, \D) === port(mul, \Y)
optional
endmatch
-code sigY clock clok_pol clock_vld
+code sigY clock clock_pol clock_vld
sigY = port(mul, \Y);
if (ffY != nullptr) {