You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The last missing part for implementing multiports/reactor banks fully is to support references to ports of a child bank.
There are several instances of this problem
a bank of children which each expose a single port
reactorFoo{output i: u32;}
main reactor{
bank = new[15]Foo();reaction(bank.i){=
// here, the variable bank__i should have type ReadablePortBank
=}}
a bank of children which each expose a multiport
a single child which exposes a multiport
To implement all of those, we should probably ruse, just how we do to implement references to a child port (see screenshot of my thesis below). The idea would be to create an intermediate multiport, and bind each channel to the referenced channel. In the above example, the main reactor would contain a multiport __bank__i, with the connection bank.i -> __bank__i (connecting ports like this is already supported). There are multiple todos in the RustReactorEmitter that should hint at how that can be done (at least for case 3, the easiest case). The two first cases may require some tweaks to RustModel classes (ChildPortReference).
The text was updated successfully, but these errors were encountered:
The last missing part for implementing multiports/reactor banks fully is to support references to ports of a child bank.
There are several instances of this problem
To implement all of those, we should probably ruse, just how we do to implement references to a child port (see screenshot of my thesis below). The idea would be to create an intermediate multiport, and bind each channel to the referenced channel. In the above example, the main reactor would contain a multiport
__bank__i
, with the connectionbank.i -> __bank__i
(connecting ports like this is already supported). There are multiple todos in the RustReactorEmitter that should hint at how that can be done (at least for case 3, the easiest case). The two first cases may require some tweaks to RustModel classes (ChildPortReference).The text was updated successfully, but these errors were encountered: