hdl.ir: for instance ports, prioritize defs over uses.

Fixes #274.
This commit is contained in:
whitequark 2019-11-26 21:17:12 +00:00
parent f207f3f620
commit 56bb42aff2
2 changed files with 24 additions and 1 deletions

View file

@ -433,7 +433,9 @@ class Fragment:
if isinstance(subfrag, Instance):
for port_name, (value, dir) in subfrag.named_ports.items():
if dir == "i":
subfrag.add_ports(value._rhs_signals(), dir=dir)
# Prioritize defs over uses.
rhs_without_outputs = value._rhs_signals() - subfrag.iter_ports(dir="o")
subfrag.add_ports(rhs_without_outputs, dir=dir)
add_uses(value._rhs_signals())
if dir == "o":
subfrag.add_ports(value._lhs_signals(), dir=dir)