Copyright 2009 Structured Design Verification Ltd.
Formal Protocol definition
Communications protocols describe the data in a message as well as how it's transferred in a reliable way between initiator and target.

Accurate, unambiguous rules are vital for reliable inter-block communication, as well as conformance to published specifications like AMBA bus protocols or specifications from PCISIG.

At the System-level we can encapsulate the data domain of a 'transaction' as a class


class APBx32ArgT {
        sc_uint< 32 >        addr_arg;
        sc_uint< 32 >        data_arg;
        sc_uint< 8 >        delay_arg;
        sc_uint< 2 >        resp_val;

};

The time domain or signal sequences that manage the data transfer can be described accurately using Regular Expressons from a Property Description language such as PSL.

We can define the full set of legal behavior of a medium such as a processor bus by defining the set of legal transactions, plus the idle and reset sequence. For this popular AHB bus this might comprise:


{
        BurstModeRead
      | BurstModeWrite
      | SingleRead
      | SingleWrite
      | Inactive
      | Reset
};
See an example of transaction description....