| |||
| Home > Introduction > Connections |
Components provide ports that enable them to be connected together.
Unlike many other system simulation solutions, the ESL API uses direct communication. One component accesses the shared resources of another component by directly calling a method provided by the owner of the shared resource.
CASI provides two different types of connection:
The signal-based interface is very close to hardware simulators in that it simulates every signal independently.
The transaction-based interface encapsulates a group of signals into one data structure that is manipulated read or write transactions.
Rather than distinguishing input and output ports, the CASI API distinguishes master and slave ports. A master port initiates the transfer and a slave-port responds to the transfer.
In Figure 1.3:
The DSP component is the
signal master for the addr and req signal
ports.
The Memory component is the signal slave for the addr and req signal
ports.
The DSP component is the signal slave for the data and ack signal
ports.
The Memory component is the signal master for the data and ack signal
ports.
Each signal has its own interface function that transmits the signal state.
In Figure 1.4:
The component DSP is the transaction master.
The component Memory is the transaction slave.
There is only one interface function, read(),
that uses data structures to combine all signals into a parameter
that can be passed with the single function call.
The data is returned by read() in either:
the return value of the function
modified shared memory
modified memory that was indicated by a passed pointer.