[Libre-soc-bugs] [Bug 458] PartitionedSignal needs nmigen constructs "m.If", Switch etc

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon Sep 27 13:31:21 BST 2021


https://bugs.libre-soc.org/show_bug.cgi?id=458

--- Comment #11 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
https://bugs.libre-soc.org/show_bug.cgi?id=709#c1

thoughts on the idea of a tree-walk down to leaf-node
Assign statements: the PartitionedSignal.__Assign__
can be made *aware* of the Switch, and even help by having
a hidden "Condition" Signal (which defaults to a Const
of length equal to the number of partitions).

instead of making a mess with temporary Signals as described
at the end of Comment #9 the Switch hooks into the hidden "Condition"
Signal on a per-partition basis.

or, more to the point, PartitionedSignal.__Assign__ takes the
list of switch/cases, ANDs them together in the relevant
partition, and sets the relevant Condition bit in the
partition.

by setting that Condition bit in each partition, it will either
activate or prevent the actual assignment in that partition.

basically this is SIMD Predicate Masks, done in HDL.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list