moiri / streamix-c

compiler for Streamix
GNU General Public License v2.0
0 stars 0 forks source link

Rework Side Ports #25

Open moiri opened 3 years ago

moiri commented 3 years ago

In Streamix side ports play a not well defined role. They provide the possibility to broadcast signals which is a good idea. But it is very annoying to use them as every side-port has to be explicitly forwarded through a wrapper (not through nets, which is good).

A new view of using side-ports could be to see them as a bus. A bus would be declared in a scope, e.g

bus my_awesome_bus

Which would allow to connect each net to this bus, provided the net as access to the scope the bus is defined in. Connecting to a bus would happen through side-ports. I.e side-ports would no longer represent a collection (like up and down) but be a separate thing used to connect to a bus.

Separating side-ports in such a manner from normal streams would allow the RTS to use a completely different approach to implement data distribution over a bus:

moiri commented 3 years ago

The topic of global connections which brake program locality is referred to by wormhole in research (not verified).