The MicroBlaze V data-side bus interface performs the read steering and write steering required to support the following transfers:
- Byte, half word, and word transfers to word devices
- Byte and half word transfers to half word devices
- Byte transfers to byte devices
MicroBlaze V does not support transfers that are larger than the addressed device. These types of transfers require dynamic bus sizing and conversion cycles that are not supported by the bus interface. Data steering for read and write cycles are shown in the following tables.
| Address | Byte Enable | Transfer Size | Register xD Data | |||
|---|---|---|---|---|---|---|
| xD[31:24] | xD[23:16] | xD[15:8] | xD[7:0] | |||
| 11 | 1000 | byte | Byte0 | |||
| 10 | 0100 | byte | Byte1 | |||
| 01 | 0010 | byte | Byte2 | |||
| 00 | 0001 | byte | Byte3 | |||
| 10 | 1100 | halfword | Byte0 | Byte1 | ||
| 00 | 0011 | halfword | Byte2 | Byte3 | ||
| 00 | 1111 | word | Byte0 | Byte1 | Byte2 | Byte3 |
| Address | Byte Enable | Transfer Size | Write Data Bus Bytes | |||
|---|---|---|---|---|---|---|
| Byte 3 | Byte 2 | Byte 1 | Byte 0 | |||
| 11 | 1000 | byte | xD[7:0] | |||
| 10 | 0100 | byte | xD[7:0] | |||
| 01 | 0010 | byte | xD[7:0] | |||
| 00 | 0001 | byte | xD[7:0] | |||
| 10 | 1100 | halfword | xD[15:8] | xD[7:0] | ||
| 00 | 0011 | halfword | xD[15:8] | xD[7:0] | ||
| 00 | 1111 | word | xD[31:24] | xD[23:16] | xD[15:8] | xD[7:0] |
Note: Other masters could have more
restrictive requirements for byte lane placement than those allowed by MicroBlaze V. Slave devices are typically attached
“left-justified” with byte devices attached to the most significant byte lane, and half
word devices attached to the most significant half word lane. The MicroBlaze V steering logic fully supports this attachment method.