QuarkGuide

Master Controlled Quarks
quark data type Group
| ||
data field sc_uint<X>* or sc_uint<X> (or equal representations like vector<sc_uint<X> > and stuff like that) (X is an int) Basic
address field sc_unit<Y> Basic
data width int Basic
addr width int Basic
Read/Write Flag bool or sc_bit Basic
masterID tlm_tag (part of request base) Basic
Byte Enable vector<sc_uint<X> > (size of vector equals number of datachunks, X is data width/8) Simple Extension
buslock flag bool or sc_bit Simple Extension
priority int (the higher the int the higher the priority) Simple Extension
burst flag bool or sc_bit Burst Extension
fixed burst flag bool or sc_bit Burst Extension
burst lenght int (only valid if fixed burst flag is set) Burst Extension
Other flags bool or sc_bit (e.g. ordered flag, guarded flag, compressed flag,...) User Extensions
Slave Controlled Quarks
quark data type Group
| ||
data field sc_uint<X>* or sc_uint<X> (or equal representations like vector<sc_uint<X> > and stuff like that) (X is an int) Basic
ack type int, where 1=AACK, 2=DACK, 3=RETRY, 4=SPLIT. All other values will be treated as errors and will be passed to the user modules. Encoding of other values is bus and/or user dependend Examples: BTERM (Burst termination by slave), REARB (rearbitration command to arbiter) Basic

The Quark grouping is closely related to the signal grouping in the OCP (Open Core Protocol). All members of the Basic group are mandatory. The members of the Simple Extension group are optional. The members of the Burst Extension Group are also optional, but as soon as one of them is used, the existance of the others becomes mandatory. User Extensions are all individually optional (just like the simple extensions).

This list is still "work in progress". Further Quarks (and Quark groups) may be added in the future.