We've had some discussion about using BlueNoC in the context of Connectal.
To try get the conversion going in a more concrete direction, I made a first cut at modules to expose a portal as a BlueNoC MsgSink (for requests) or MsgSource (for indications).
See bsv/BnocPortal.bsv for the implementations.
I made a new example that uses this: examples/simplebnoc
The mkSimple module is just a pass-through -- its indication interface is the same as its request interface.
In simplebnoc/Top.bsv, I instantiate two mkSimple, and use a BlueNoC link to connect the two together.
Software sends requests to simple1 via the simple1Wrapper and receives responses from simple2 via simple2Proxy.
SimpleProxy is a memory-mapped MemPortal while SimpleProxyPortal is a PipePortal -- a vector of PipeIn. Correspondingly, SimpleWrapper is a memory-mapped MemPortal while SimpleWrapperPortal contains a vector of PipeOut.
One problem I ran into in this example is that one of the methods has a 256 byte payload. So I stuck to our usual encoding and encoded length in words rather than length in bytes. I could modify the code to send multiple messages for such methods.
-Jamey