Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

actorlib/structuring/Cast: support inversion

  • Loading branch information...
commit 77a0f0a3bb4b971bb30643935c295940680b72c1 1 parent c4c4765
@sbourdeauducq sbourdeauducq authored
Showing with 7 additions and 1 deletion.
  1. +7 −1 migen/actorlib/
8 migen/actorlib/
@@ -8,14 +8,20 @@ def _rawbits_layout(l):
return l
class Cast(CombinatorialActor):
- def __init__(self, layout_from, layout_to):
+ def __init__(self, layout_from, layout_to, reverse_from=False, reverse_to=False):
+ self.reverse_from = reverse_from
+ self.reverse_to = reverse_to
("sink", Sink, _rawbits_layout(layout_from)),
("source", Source, _rawbits_layout(layout_to)))
def get_process_fragment(self):
sigs_from = self.token("sink").flatten()
+ if self.reverse_from:
+ sigs_from = list(reversed(sigs_from))
sigs_to = self.token("source").flatten()
+ if self.reverse_to:
+ sigs_to = list(reversed(sigs_to))
if sum(len(s) for s in sigs_from) != sum(len(s) for s in sigs_to):
raise TypeError
return Fragment([
Please sign in to comment.
Something went wrong with that request. Please try again.