mirror of
https://github.com/enjoy-digital/litex.git
synced 2025-01-04 09:52:26 -05:00
fhdl/structure: use sets for memories and instance collections
This commit is contained in:
parent
7c6ebcf753
commit
3971600917
3 changed files with 8 additions and 8 deletions
|
@ -324,8 +324,8 @@ class Fragment:
|
||||||
def __init__(self, comb=None, sync=None, instances=None, memories=None, sim=None):
|
def __init__(self, comb=None, sync=None, instances=None, memories=None, sim=None):
|
||||||
if comb is None: comb = []
|
if comb is None: comb = []
|
||||||
if sync is None: sync = dict()
|
if sync is None: sync = dict()
|
||||||
if instances is None: instances = []
|
if instances is None: instances = set()
|
||||||
if memories is None: memories = []
|
if memories is None: memories = set()
|
||||||
if sim is None: sim = []
|
if sim is None: sim = []
|
||||||
|
|
||||||
if isinstance(sync, list):
|
if isinstance(sync, list):
|
||||||
|
@ -333,8 +333,8 @@ class Fragment:
|
||||||
|
|
||||||
self.comb = comb
|
self.comb = comb
|
||||||
self.sync = sync
|
self.sync = sync
|
||||||
self.instances = instances
|
self.instances = set(instances)
|
||||||
self.memories = memories
|
self.memories = set(memories)
|
||||||
self.sim = sim
|
self.sim = sim
|
||||||
|
|
||||||
|
|
||||||
|
@ -345,8 +345,8 @@ class Fragment:
|
||||||
for k, v in other.sync.items():
|
for k, v in other.sync.items():
|
||||||
newsync[k].extend(v)
|
newsync[k].extend(v)
|
||||||
return Fragment(self.comb + other.comb, newsync,
|
return Fragment(self.comb + other.comb, newsync,
|
||||||
self.instances + other.instances,
|
self.instances | other.instances,
|
||||||
self.memories + other.memories,
|
self.memories | other.memories,
|
||||||
self.sim + other.sim)
|
self.sim + other.sim)
|
||||||
|
|
||||||
def rename_clock_domain(self, old, new):
|
def rename_clock_domain(self, old, new):
|
||||||
|
|
|
@ -84,7 +84,7 @@ def group_by_targets(sl):
|
||||||
def list_inst_ios(i, ins, outs, inouts):
|
def list_inst_ios(i, ins, outs, inouts):
|
||||||
if isinstance(i, Fragment):
|
if isinstance(i, Fragment):
|
||||||
return list_inst_ios(i.instances, ins, outs, inouts)
|
return list_inst_ios(i.instances, ins, outs, inouts)
|
||||||
elif isinstance(i, list):
|
elif isinstance(i, set):
|
||||||
if i:
|
if i:
|
||||||
return set.union(*(list_inst_ios(e, ins, outs, inouts) for e in i))
|
return set.union(*(list_inst_ios(e, ins, outs, inouts) for e in i))
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -14,7 +14,7 @@ class UnifiedIOObject(Actor):
|
||||||
self._memories = set(v for v in self.buses.values() if isinstance(v, Memory))
|
self._memories = set(v for v in self.buses.values() if isinstance(v, Memory))
|
||||||
|
|
||||||
def get_fragment(self):
|
def get_fragment(self):
|
||||||
return Fragment(memories=list(self._memories))
|
return Fragment(memories=self._memories)
|
||||||
|
|
||||||
(_WAIT_COMPLETE, _WAIT_POLL) = range(2)
|
(_WAIT_COMPLETE, _WAIT_POLL) = range(2)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue