Add support for arrayed instances with inout ports.
A NetTran (TRAN_VP) can be used to connect arrayed instance inout ports. This allows bi-directionality and conflict resolution.
This commit is contained in:
parent
dc6a9e03c9
commit
c278b4e41f
18
elaborate.cc
18
elaborate.cc
|
|
@ -1440,11 +1440,23 @@ v NOTE that this also handles the case that the
|
||||||
spin += sp->vector_width();
|
spin += sp->vector_width();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NetNet::PINOUT:
|
case NetNet::PINOUT:
|
||||||
cerr << get_fileline() << ": XXXX: "
|
for (unsigned ldx = 0 ; ldx < prts.size() ; ldx += 1) {
|
||||||
<< "Forgot how to bind inout ports!" << endl;
|
NetNet*sp = prts[prts.size()-ldx-1];
|
||||||
des->errors += 1;
|
NetTran*ttmp = new NetTran(scope,
|
||||||
|
scope->local_symbol(),
|
||||||
|
sig->vector_width(),
|
||||||
|
sp->vector_width(),
|
||||||
|
spin);
|
||||||
|
des->add_node(ttmp);
|
||||||
|
ttmp->set_line(*this);
|
||||||
|
connect(ttmp->pin(0), sig->pin(0));
|
||||||
|
connect(ttmp->pin(1), sp->pin(0));
|
||||||
|
spin += sp->vector_width();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NetNet::PIMPLICIT:
|
case NetNet::PIMPLICIT:
|
||||||
cerr << get_fileline() << ": internal error: "
|
cerr << get_fileline() << ": internal error: "
|
||||||
<< "Unexpected IMPLICIT port" << endl;
|
<< "Unexpected IMPLICIT port" << endl;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue