You copied the Doc URL to your clipboard.

LISA+ protocol behavior ADDRESS arguments

A description of the ADDRESS keyword.

A protocol is a bus protocol if it enables a single master port to connect to multiple slave ports and the address of the access determines the selection of the slave port.

The simulator must inspect the address of the access to determine the destination slave. Specify the address as a parameter of the protocol behavior annotated with the ADDRESS keyword:

LISA+ protocol behavior ADDRESS syntax
protocol MyBusProtocol
       // declare your own types
        #include "TransactionMode.h"
    slave behavior read(ADDRESS uint32_t addr): uint8_t;
    slave behavior write(ADDRESS uint32_t addr, uint8_t data);
    slave behavior setMode(const TransactionMode *mode);
  • You can omit the ADDRESS attribute from the parameter list for the protocol behaviors.
  • If present, only use the ADDRESS attribute with a single parameter of each protocol behavior.
  • The ADDRESS parameter can be at any position in the argument list.
  • ADDRESS is not a type specifier. Explicitly specify the type of the address as an integer type of any size.
  • Match the size of the integer type for each ADDRESS parameter for all of the behaviors in a protocol.
  • It is valid to have behaviors with and without an ADDRESS parameter in the same protocol:

    • A behavior with an ADDRESS parameter is read(), which selects the slave based on the address.

    • A behavior without an ADDRESS parameter is reset(), which calls all connected slaves.
Was this page helpful? Yes No