[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
Wed Jan 13 18:41:08 GMT 2021
https://bugs.libre-soc.org/show_bug.cgi?id=458
--- Comment #4 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
taking a look at this more closely, i realised that Value (and UserValue) will
need some tweaks.
at present, the code does this:
class Value:
def part(....)
return Part(self, ...)
where Part is a global function. in order to support override capability this
needs to change to:
class Value:
def part(....)
return ValuePart(self, ...)
where Part is defined as:
def Part(lhs, ....):
return lhs.part(....)
and the *current* Part function is *renamed* to ValuePart.
UserValue then does:
class UserValue:
def part(....)
return UserValuePart(self, ...)
or more likely also calls ValuePart but it is clearly documented that
user-derived overrides are perfectly well permitted.
PartitionedSignal would do *exactly that*.
then, a crucial addition to Value and UserValue would be:
def mux(self, choice1, choice2):
return ValueMux(self, choice1, choice2)
and PartitionedSignal could override it to provide the correct dynamic SIMD
functionality.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list