CIRCT
19.0.0git
|
Unidirectional channels are the basic communication primitive between the host and accelerator. More...
#include <Ports.h>
Public Member Functions | |
ChannelPort (const Type *type) | |
virtual | ~ChannelPort () |
virtual void | connect (std::optional< unsigned > bufferSize=std::nullopt) |
Set up a connection to the accelerator. More... | |
virtual void | disconnect () |
const Type * | getType () const |
Private Member Functions | |
virtual void | connectImpl (std::optional< unsigned > bufferSize) |
Called by all connect methods to let backends initiate the underlying connections. More... | |
Private Attributes | |
const Type * | type |
Unidirectional channels are the basic communication primitive between the host and accelerator.
A 'ChannelPort' is the host side of a channel. It can be either read or write but not both. At this level, channels are untyped – just streams of bytes. They are not intended to be used directly by users but used by higher level APIs which add types.
|
inlinevirtual |
Definition at line 36 of file Ports.h.
References disconnect().
|
inlinevirtual |
Set up a connection to the accelerator.
The buffer size is optional and should be considered merely a hint. Individual implementations use it however they like. The unit is number of messages of the port type.
Reimplemented in esi::ReadChannelPort.
Definition at line 41 of file Ports.h.
References connectImpl().
Referenced by esi::ReadChannelPort::connect(), and PYBIND11_MODULE().
|
inlineprivatevirtual |
|
inlinevirtual |
Reimplemented in esi::ReadChannelPort.
Definition at line 44 of file Ports.h.
Referenced by ~ChannelPort().
|
inline |
|
private |
Definition at line 49 of file Ports.h.
Referenced by fsm.MachineOp::__init__(), hw.HWModuleOp::add_entry_block(), getType(), hw.HWModuleOp::input_indices(), fsm.MachineOp::instantiate(), hw.HWModuleOp::outputs(), esiaccel.types.ReadPort::read(), and esiaccel.types.WritePort::write().