AXI Master Write Operation

An AXI write transaction is a split transaction with independent address and data signals associated with the corresponding channels. The client must follow the slave protocol for the write address and data channel as described in the AXI Specification v1.0. The PCIe Controller follows the master protocol for the write address and data channel as described in the AXI specification v1.0.

Figure 1. AXI Master Write Waveform

Unaligned Address Write 1

Condition:

Address = 0x5

AWSIZE = 2 (32 bit width)

AWLEN = 0

Byte Send = 2

Unaligned Address Write 2

Condition:

Address = 0x12

AWSIZE = 5 (256 bit width)

AWLEN = 1

Byte Send = 16

The write operation starts by placing the write request parameters on the AXI master write address channel signals. The write address channel signals are qualified by asserting the TARGET_AXI_AWVALID signal. The starting write address is placed on TARGET_AXI_AWADDR. The client accepts requests when it asserts TARGET_AXI_AWREADY input to the PCIe Controller. The PCIe Controller maintains the request and its associated descriptor until it receives acknowledgement from the client.

The PCIe Controller begins to transfer the data words by placing them on the AXI master write data channel signals and asserting TARGET_AXI_WVALID. The client can pace the data transfer by controlling the TARGET_AXI_WREADY input to the PCIe Controller. The PCIe Controller keeps each data word on the TARGET_AXI_WDATA data bus until it samples the ready input as high on a positive edge of the clock. The PCIe Controller indicates the last data transfer cycle by asserting the TARGET_AXI_WLAST signal. It does not perform an early burst termination and transfers the entire burst data as indicated in the TARGET_AXI_AWLEN signal during the request cycle.

The TARGET_AXI_WSTRB[31:0] outputs to indicate the valid bytes in the data transfer cycle on the first and last cycles of the data transfer. The transfer may start and finish at any byte position in the data path. For writes of a single DWord, the byte valids may be non-contiguous, as allowed by the PCIe specification. Likewise, for two-DWORD writes, the byte valids may be non-contiguous if the starting address is aligned on an even DWORD boundary.

If the inbound TLP length is greater than the maximum AXI burst size, the PCIe Controller splits the PCIe transaction into multiple AXI write transaction with the same TARGET_AXI_AWID. This process ensures that write data read requests are committed to the client in order.