Merge pull request #2 from larsclausen/master

migen patches
This commit is contained in:
Sébastien Bourdeauducq 2012-02-03 01:25:38 -08:00
commit 504a169afb
5 changed files with 13 additions and 10 deletions

View File

@ -17,9 +17,9 @@ class For(Actor):
if step: params.append("step")
self.d_bv = [BV(bits_for(dimension)) for dimension in maxima]
l_sink = [("d{0}".format(n), [(p, bv) for p in params])
for n, bv in zip(range(len(self.d_bv)), self.d_bv)]
for n, bv in enumerate(self.d_bv)]
l_source = [("d{0}".format(n), bv)
for n, bv in zip(range(len(self.d_bv)), self.d_bv)]
for n, bv in enumerate(self.d_bv)]
Actor.__init__(self, SchedulingModel(SchedulingModel.DYNAMIC),
("sink", Sink, l_sink),
("source", Source, l_source))

View File

@ -5,7 +5,7 @@ class FSM:
self._state_bv = BV(bits_for(len(states)-1))
self._state = Signal(self._state_bv)
self._next_state = Signal(self._state_bv)
for state, n in zip(states, range(len(states))):
for n, state in enumerate(states):
setattr(self, state, Constant(n, self._state_bv))
self.actions = [[] for i in range(len(states))]
@ -20,7 +20,7 @@ class FSM:
def get_fragment(self):
cases = [[Constant(s, self._state_bv)] + a
for s, a in zip(range(len(self.actions)), self.actions) if a]
for s, a in enumerate(self.actions) if a]
comb = [
self._next_state.eq(self._state),
Case(self._state, *cases)

View File

@ -16,6 +16,9 @@ def get_var_name(frame):
elif opc == "STORE_FAST":
name_index = int(code.co_code[index+1])
return code.co_varnames[name_index]
elif opc == "STORE_DEREF":
name_index = int(code.co_code[index+1])
return code.co_cellvars[name_index]
elif opc == "LOAD_GLOBAL" or opc == "LOAD_ATTR" or opc == "LOAD_FAST":
index += 3
elif opc == "DUP_TOP":

View File

@ -19,8 +19,8 @@ class Combinator(Actor):
def __init__(self, layout, *subrecords):
source = Record(layout)
subrecords = [source.subrecord(*subr) for subr in subrecords]
eps = [("sink{0}".format(x[0]), Sink, x[1])
for x in zip(range(len(subrecords)), subrecords)]
eps = [("sink{0}".format(n), Sink, r)
for x in enumerate(subrecords)]
ep_source = ("source", Source, source)
eps.append(ep_source)
Actor.__init__(self,
@ -39,8 +39,8 @@ class Splitter(Actor):
def __init__(self, layout, *subrecords):
sink = Record(layout)
subrecords = [sink.subrecord(*subr) for subr in subrecords]
eps = [("source{0}".format(x[0]), Source, x[1])
for x in zip(range(len(subrecords)), subrecords)]
eps = [("source{0}".format(n), Source, r)
for n, r in enumerate(subrecords)]
ep_sink = ("sink", Sink, sink)
eps.append(ep_sink)
Actor.__init__(self,

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.2
#!/usr/bin/env python3
# vim: noexpandtab:tabstop=8:softtabstop=8
""" Migen's distutils distribution and installation script. """
@ -8,7 +8,7 @@ from distutils.core import setup
here = os.path.abspath(os.path.dirname(__file__))
README = open(os.path.join(here, "README")).read()
required_version = (3, 2)
required_version = (3, 1)
if sys.version_info < required_version:
raise SystemExit("migen requires python {0} or greater".format(
".".join(map(str, required_version))))