Skip to content

Commit 66f8dcb

Browse files
jordenssbourdeauducq
authored andcommittedApr 4, 2015
lite*: adapt to new ModuleTransformer semantics
NOTE: There is loads of duplicated code between the lite* modules that should be shared.
1 parent 2583e97 commit 66f8dcb

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed
 

Diff for: ‎misoclib/com/liteeth/common.py

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from collections import OrderedDict
33

44
from migen.fhdl.std import *
5-
from migen.fhdl.decorators import ModuleDecorator
65
from migen.genlib.resetsync import AsyncResetSynchronizer
76
from migen.genlib.record import *
87
from migen.genlib.fsm import FSM, NextState

Diff for: ‎misoclib/com/liteeth/generic/__init__.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from migen.fhdl.decorators import ModuleTransformer
12
from misoclib.com.liteeth.common import *
23

34
# Generic classes
@@ -10,15 +11,16 @@ def connect(self, port):
1011
return r
1112

1213
# Generic modules
13-
class BufferizeEndpoints(ModuleDecorator):
14-
def __init__(self, submodule, *args):
15-
ModuleDecorator.__init__(self, submodule)
14+
class BufferizeEndpoints(ModuleTransformer):
15+
def __init__(self, *names):
16+
self.names = names
1617

18+
def transform_instance(self, submodule):
1719
endpoints = get_endpoints(submodule)
1820
sinks = {}
1921
sources = {}
2022
for name, endpoint in endpoints.items():
21-
if name in args or len(args) == 0:
23+
if not self.names or name in self.names:
2224
if isinstance(endpoint, Sink):
2325
sinks.update({name : endpoint})
2426
elif isinstance(endpoint, Source):

Diff for: ‎misoclib/mem/litesata/common.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import math
22

33
from migen.fhdl.std import *
4-
from migen.fhdl.decorators import ModuleDecorator
4+
from migen.fhdl.decorators import ModuleTransformer
55
from migen.genlib.resetsync import *
66
from migen.genlib.fsm import *
77
from migen.genlib.record import *
@@ -252,15 +252,16 @@ def sectors2dwords(n):
252252
return n*logical_sector_size//4
253253

254254
# Generic modules
255-
class BufferizeEndpoints(ModuleDecorator):
256-
def __init__(self, submodule, *args):
257-
ModuleDecorator.__init__(self, submodule)
255+
class BufferizeEndpoints(ModuleTransformer):
256+
def __init__(self, *names):
257+
self.names = names
258258

259+
def transform_instance(self, submodule):
259260
endpoints = get_endpoints(submodule)
260261
sinks = {}
261262
sources = {}
262263
for name, endpoint in endpoints.items():
263-
if name in args or len(args) == 0:
264+
if not self.names or name in self.names:
264265
if isinstance(endpoint, Sink):
265266
sinks.update({name : endpoint})
266267
elif isinstance(endpoint, Source):

Diff for: ‎misoclib/mem/litesata/frontend/bist.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from misoclib.mem.litesata.common import *
22
from misoclib.mem.litesata.core.link.scrambler import Scrambler
33

4-
from migen.fhdl.decorators import ModuleDecorator
54
from migen.bank.description import *
65

76
class LiteSATABISTGenerator(Module):

0 commit comments

Comments
 (0)
Please sign in to comment.