Browse files

timeline: only trigger in rest state

  • Loading branch information...
1 parent 6f7a35e commit 22d03b4943a3bb6339c03a0607c0893410766609 @sbourdeauducq sbourdeauducq committed Dec 13, 2011
Showing with 4 additions and 10 deletions.
  1. +4 −10 migen/corelogic/timeline.py
View
14 migen/corelogic/timeline.py
@@ -4,7 +4,7 @@ class Inst:
def __init__(self, trigger, events):
self.trigger = trigger
self.events = events
- self.lastevent = max([e[0] for e in events] + [e[2] for e in events if len(e) == 3])
+ self.lastevent = max([e[0] for e in events])
f.Declare(self, "_counter", f.BV(f.BitsFor(self.lastevent)))
def GetFragment(self):
@@ -18,16 +18,10 @@ def GetFragment(self):
[f.Assign(self._counter, f.Constant(0, self._counter.bv))],
[counterlogic])
def getcond(e):
- if len(e) == 3:
- if e[0] == 0:
- return self.trigger & (self._counter <= f.Constant(e[2], self._counter.bv))
- else:
- return (self._counter >= f.Constant(e[0], self._counter.bv)) & (self._counter <= f.Constant(e[2], self._counter.bv))
+ if e[0] == 0:
+ return self.trigger & (self._counter == f.Constant(0, self._counter.bv))
else:
- if e[0] == 0:
- return self.trigger
- else:
- return self._counter == f.Constant(e[0], self._counter.bv)
+ return self._counter == f.Constant(e[0], self._counter.bv)
sync = [f.If(getcond(e), e[1]) for e in self.events]
sync.append(counterlogic)
return f.Fragment(sync=sync)

0 comments on commit 22d03b4

Please sign in to comment.