2.9.3 Port array connections

LISA+ simplifies connecting port arrays by permitting port arrays in connection statements. Each connection statement consists of a left and right-hand side.

There are these combinations:

A single port can be either a port declared as single or a single element of a port array. Port arrays are used in connection statements as the array identifier without an index.

Port array connections
protocol MyProtocol { /* protocol behaviors */ }
component Foo
    master port<MyProtocol> mPortArray[4];

component Bar
    slave port<MyProtocol> sPort;
    slave port<MyProtocol> sPortArray[4];

component MyComponent
        foo : Foo;
        bar : Bar;

        // single port to single port
        foo.mPortArray[2] => bar.sPort;
        foo.mPortArray[2] => bar.sPortArray[3];
        // single port to port array
        foo.mPortArray[2] => bar.sPortArray;
        // port array to single port
        foo.mPortArray => bar.sPortArray[3];
        // port array to port array
        foo.mPortArray => bar.sPortArray;

These rules apply:

Single-to-array connections
The master port is connected to every element of the slave port array.
Array-to-single connection
Every element of the master port array is connected to the slave port.


SimGen issues warning W7538 when it detects all elements of a master port array are connected to a single slave port. Such fan-ins are valid, but are usually unintentional and can cause significant performance problems. To suppress the warning, denote the fan-in as explicit by adding [*] to the left side of the connection statement, for example:

a[*] => b;
Array-to-array connections
Each element of the master port array is connected to the element of the slave port array that has the same index. The master must be equal to or smaller than the slave, otherwise an error is raised.
Non-ConfidentialPDF file icon PDF version101092_0100_04_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.