Master, slave, and internal ports
Ports have a master side and a slave side. Ports must be
Some ports of a component are exposed to the system as master ports, for example a memory
port of a processor. Such ports have the
master port attribute.
Some ports are intended to be exposed to the outside system
as slave ports, for example an interrupt request port of a processor.
Such ports have the
Some ports are only used internally in a component, for example
to receive callbacks from a subcomponent. Such ports neither expose
their master side nor their slave side. Such ports have the
A port cannot be
the same time, meaning it can not expose the master and the slave
side at the same time to the outside world.
You can add the
internal keyword to indicate how the internal port
is to be used, but this is not required.
Master ports always only implement the master behaviors of a protocol and slave ports always implement the slave behaviors of a protocol. Because most protocols only have slave behaviors, typically only the slave port has behaviors.