Visible to Intel only — GUID: iga1401397863610
Ixiasoft
Visible to Intel only — GUID: iga1401397863610
Ixiasoft
42.2.2. Operation
Packet Formats
The core expects incoming data streams to be in the format shown in the table below. A response packet is returned for every write transaction. The core also returns a response packet if a no transaction (0x7f) is received. An invalid transaction code is regarded as a no transaction. For read transactions, the core simply returns the data read.
Byte | Field | Description |
---|---|---|
Transaction Packet Format | ||
0 | Transaction code | Type of transaction. See Properties of Avalon® -ST Interfaces table. |
1 | Reserved | Reserved for future use. |
[3:2] | Size | Transaction size in bytes. For write transactions, the size indicates the size of the data field. For read transactions, the size indicates the total number of bytes to read. |
[7:4] | Address | 32-bit address for the transaction. |
[n:8] | Data | Transaction data; data to be written for write transactions. |
Response Packet Format | ||
0 | Transaction code | The transaction code with the most significant bit inversed. |
1 | Reserved | Reserved for future use. |
[3:2] | Size | Total number of bytes read/written successfully. |
Supported Transactions
The table below lists the Avalon® -MM transactions supported by the core.
Transaction Code | Avalon® -MM Transaction | Description |
---|---|---|
0x00 | Write, non-incrementing address. | Writes data to the given address until the total number of bytes written to the same word address equals to the value specified in the size field. |
0x04 | Write, incrementing address. | Writes transaction data starting at the given address. |
0x10 | Read, non-incrementing address. | Reads 32 bits of data from the given address until the total number of bytes read from the same address equals to the value specified in the size field. |
0x14 | Read, incrementing address. | Reads the number of bytes specified in the size field starting from the given address. |
0x7f | No transaction. | No transaction is initiated. You can use this transaction type for testing purposes. Although no transaction is initiated on the Avalon® -MM interface, the core still returns a response packet for this transaction code. |
The core can handle only a single transaction at a time. The ready signal on the core's Avalon® -ST sink interface is asserted only when the current transaction is completely processed.
No internal buffer is implemented on the data paths. Data received on the Avalon® -ST interface is forwarded directly to the Avalon® -MM interface and vice-versa. Asserting the waitrequest signal on the Avalon® -MM interface back-pressures the Avalon® -ST sink interface. In the opposite direction, if the Avalon® -ST source interface is back-pressured, the read signal on the Avalon® -MM interface is not asserted until the backpressure is alleviated. Back-pressuring the Avalon® -ST source in the middle of a read could result in data loss. In such cases, the core returns the data that is successfully received.
A transaction is considered complete when the core receives an EOP. For write transactions, the actual data size is expected to be the same as the value of the size field. Whether or not both values agree, the core always uses the EOP to determine the end of data.
Malformed Packets
The following are examples of malformed packets:
- Consecutive start of packet (SOP)—An SOP marks the beginning of a transaction. If an SOP is received in the middle of a transaction, the core drops the current transaction without returning a response packet for the transaction, and initiates a new transaction. This effectively handles packets without an end of packet(EOP).
- Unsupported transaction codes—The core treats unsupported transactions as a no transaction.