2.9.2 Hierarchy in port connections

Components that have subcomponents might require exposing master ports of the subcomponent. This is possible for both slave and master ports.

Component hierarchy
This example assumes a component parent with a subcomponent sub.
component parent
    composition { subcomponent: sub }
    master port<masterType> forwardedMaster;
    slave port<slaveType> forwardedSlave;
        subcomponent.subMaster => self.forwardedMaster;
        self.forwardedSlave => subcomponent.subSlave;

component sub
    master port<masterType> subMaster;
    slave port<slaveType> subSlave;
The subcomponent ports subMaster and subSlave are forwarded and are visible to the outside with the names forwardedMaster and forwardedSlave. The keyword self is used to identify the external ports forwardedSlave and forwardedMaster. This might seem to contradict the principle that master ports can only be connected to slave ports, and the reverse. Both ports, however, have two sides, a master port also has a slave side where the method is being initiated. The same is true for slave ports that receive some kind of signal and then act as a master within the component.
Non-ConfidentialPDF file icon PDF version101092_0100_04_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.