uio: unified I/O object
authorSebastien Bourdeauducq <sebastien@milkymist.org>
Sat, 17 Nov 2012 18:54:50 +0000 (19:54 +0100)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Sat, 17 Nov 2012 18:54:50 +0000 (19:54 +0100)
migen/pytholite/compiler.py
migen/pytholite/io.py
migen/uio/__init__.py [new file with mode: 0644]
migen/uio/ioo.py [new file with mode: 0644]

index 269706a462336477102b10a8e04d5f61c0400c2b..5f6420f6e76d20b6b401ff53e8abfeb77e7b9993 100644 (file)
@@ -6,7 +6,7 @@ from migen.fhdl.structure import _Slice
 from migen.pytholite.reg import *
 from migen.pytholite.expr import *
 from migen.pytholite import transel
-from migen.pytholite.io import make_io_object, gen_io
+from migen.pytholite.io import Pytholite, gen_io
 from migen.pytholite.fsm import *
 
 def _is_name_used(node, name):
@@ -228,7 +228,7 @@ class _Compiler:
                        raise NotImplementedError
 
 def make_pytholite(func, **ioresources):
-       ioo = make_io_object(**ioresources)
+       ioo = Pytholite(**ioresources)
        
        tree = ast.parse(inspect.getsource(func))
        symdict = func.__globals__.copy()
index 51820a69cd738eb7073feb7befa6d3d4fda0536f..89effa6376fa761eb9fb5c4dc7565e704d618093 100644 (file)
@@ -1,24 +1,16 @@
 import ast
 
 from migen.fhdl.structure import *
-from migen.flow.actor import *
+from migen.uio.ioo import UnifiedIOObject
 from migen.actorlib.sim import *
+from migen.bus.transactions import *
 from migen.pytholite.fsm import *
 from migen.pytholite.expr import ExprCompiler
 
-class Pytholite:
+class Pytholite(UnifiedIOObject):
        def get_fragment(self):
                return self.fragment
 
-class DFPytholite(Pytholite, Actor):
-       pass
-
-def make_io_object(dataflow=None):
-       if dataflow is None:
-               return Pytholite()
-       else:
-               return DFPytholite(*dataflow)
-
 class _TokenPullExprCompiler(ExprCompiler):
        def __init__(self, symdict, modelname, ep):
                super().__init__(symdict)
diff --git a/migen/uio/__init__.py b/migen/uio/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/migen/uio/ioo.py b/migen/uio/ioo.py
new file mode 100644 (file)
index 0000000..934cbf3
--- /dev/null
@@ -0,0 +1,9 @@
+from migen.fhdl.structure import *
+from migen.flow.actor import *
+from migen.bus import wishbone
+
+class UnifiedIOObject(Actor):
+       def __init__(self, dataflow=None, buses={}):
+               if dataflow is not None:
+                       super().__init__(*dataflow)
+               self.buses = buses