hdl._ir: rename Instance.named_ports to Instance.ports.
Made possible by the new port propagation code freeing up the name.
This commit is contained in:
parent
fa2adbef84
commit
0c041f2602
3 changed files with 22 additions and 22 deletions
|
|
@ -309,9 +309,9 @@ class Instance(Fragment):
|
|||
def __init__(self, type, *args, src_loc=None, src_loc_at=0, **kwargs):
|
||||
super().__init__(src_loc=src_loc or tracer.get_src_loc(src_loc_at))
|
||||
|
||||
self.type = type
|
||||
self.parameters = OrderedDict()
|
||||
self.named_ports = OrderedDict()
|
||||
self.type = type
|
||||
self.parameters = OrderedDict()
|
||||
self.ports = OrderedDict()
|
||||
|
||||
for (kind, name, value) in args:
|
||||
if kind == "a":
|
||||
|
|
@ -324,7 +324,7 @@ class Instance(Fragment):
|
|||
else:
|
||||
if not isinstance(value, _ast.IOValue):
|
||||
value = _ast.Value.cast(value)
|
||||
self.named_ports[name] = (value, kind)
|
||||
self.ports[name] = (value, kind)
|
||||
else:
|
||||
raise NameError("Instance argument {!r} should be a tuple (kind, name, value) "
|
||||
"where kind is one of \"a\", \"p\", \"i\", \"o\", or \"io\""
|
||||
|
|
@ -338,13 +338,13 @@ class Instance(Fragment):
|
|||
elif kw.startswith("i_"):
|
||||
if not isinstance(arg, _ast.IOValue):
|
||||
arg = _ast.Value.cast(arg)
|
||||
self.named_ports[kw[2:]] = (arg, "i")
|
||||
self.ports[kw[2:]] = (arg, "i")
|
||||
elif kw.startswith("o_"):
|
||||
if not isinstance(arg, _ast.IOValue):
|
||||
arg = _ast.Value.cast(arg)
|
||||
self.named_ports[kw[2:]] = (arg, "o")
|
||||
self.ports[kw[2:]] = (arg, "o")
|
||||
elif kw.startswith("io_"):
|
||||
self.named_ports[kw[3:]] = (_ast.IOValue.cast(arg), "io")
|
||||
self.ports[kw[3:]] = (_ast.IOValue.cast(arg), "io")
|
||||
else:
|
||||
raise NameError("Instance keyword argument {}={!r} does not start with one of "
|
||||
"\"a_\", \"p_\", \"i_\", \"o_\", or \"io_\""
|
||||
|
|
@ -481,7 +481,7 @@ class Design:
|
|||
"""Collects used signals and IO ports for a fragment and all its subfragments."""
|
||||
from . import _mem
|
||||
if isinstance(fragment, _ir.Instance):
|
||||
for conn, kind in fragment.named_ports.values():
|
||||
for conn, kind in fragment.ports.values():
|
||||
if isinstance(conn, _ast.IOValue):
|
||||
for port in conn._ioports():
|
||||
self._use_io_port(fragment, port)
|
||||
|
|
@ -1194,7 +1194,7 @@ class NetlistEmitter:
|
|||
ports_io = {}
|
||||
outputs = []
|
||||
next_output_bit = 0
|
||||
for port_name, (port_conn, dir) in instance.named_ports.items():
|
||||
for port_name, (port_conn, dir) in instance.ports.items():
|
||||
if isinstance(port_conn, _ast.IOValue):
|
||||
if dir == 'i':
|
||||
xlat_dir = _nir.IODirection.Input
|
||||
|
|
|
|||
|
|
@ -232,15 +232,15 @@ class FragmentTransformer:
|
|||
for subfragment, name, src_loc in fragment.subfragments:
|
||||
new_fragment.add_subfragment(self(subfragment), name, src_loc=src_loc)
|
||||
|
||||
def map_named_ports(self, fragment, new_fragment):
|
||||
def map_ports(self, fragment, new_fragment):
|
||||
if hasattr(self, "on_value"):
|
||||
for name, (value, dir) in fragment.named_ports.items():
|
||||
for name, (value, dir) in fragment.ports.items():
|
||||
if isinstance(value, Value):
|
||||
new_fragment.named_ports[name] = self.on_value(value), dir
|
||||
new_fragment.ports[name] = self.on_value(value), dir
|
||||
else:
|
||||
new_fragment.named_ports[name] = value, dir
|
||||
new_fragment.ports[name] = value, dir
|
||||
else:
|
||||
new_fragment.named_ports = OrderedDict(fragment.named_ports.items())
|
||||
new_fragment.ports = OrderedDict(fragment.ports.items())
|
||||
|
||||
def map_domains(self, fragment, new_fragment):
|
||||
for domain in fragment.iter_domains():
|
||||
|
|
@ -302,7 +302,7 @@ class FragmentTransformer:
|
|||
elif isinstance(fragment, Instance):
|
||||
new_fragment = Instance(fragment.type, src_loc=fragment.src_loc)
|
||||
new_fragment.parameters = OrderedDict(fragment.parameters)
|
||||
self.map_named_ports(fragment, new_fragment)
|
||||
self.map_ports(fragment, new_fragment)
|
||||
elif isinstance(fragment, IOBufferInstance):
|
||||
if hasattr(self, "on_value"):
|
||||
new_fragment = IOBufferInstance(
|
||||
|
|
@ -452,7 +452,7 @@ class DomainCollector(ValueVisitor, StatementVisitor):
|
|||
self._add_used_domain(port._domain)
|
||||
|
||||
if isinstance(fragment, Instance):
|
||||
for name, (value, dir) in fragment.named_ports.items():
|
||||
for name, (value, dir) in fragment.ports.items():
|
||||
if not isinstance(value, IOValue):
|
||||
self.on_value(value)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue