SPI Engine Control Interface#

The SPI Engine Control Interface is used to exchange data between different cores within the SPI Engine framework. It is used to exchange the commands and synchronization points as well as the SPI bus transmit and receive data.

The interface consists of four streams:

  • The CMD stream which carries the SPI Engine commands. (Manager to Subordinate)

  • The SDO stream which carries the to be transmitted data for the SPI bus. (Manager to Subordinate)

  • The SDI stream which carries the received data from the SPI bus. (Subordinate to Manager)

  • The SYNC stream which carries the synchronization events. (Subordinate to Manager)

Each of the streams has a valid, ready and data signal. They follow the handshaking protocol as defined by the AXI standard. Meaning the manager asserts valid when the data on the data signal is valid and the subordinate asserts ready when it is able to accept new data. If both valid and ready are asserted at the same time the data has been transmitted from the manager to the subordinate.

Files#

Name

Description

library/spi_engine/interfaces/spi_engine_ctrl_rtl.xml

Interface definition file

Signal Pins#

Width

Name

Direction (Manager)

Description

cmd_ready

Input

Ready signal of the CMD stream

cmd_valid

Output

Valid signal of the CMD stream

[15:0]

cmd_data

Output

Data signal of the CMD stream

sdo_ready

Input

Ready signal of the SDO stream

sdo_valid

Output

Valid signal of the SDO stream

[DATA_WIDTH-1:0]

sdo_data

Output

Data signal of the SDO stream

sdi_ready

Output

Ready signal of the SDI stream

sdi_valid

Input

Valid signal of the SDI stream

[(NUM_OF_SDI*DATA_WIDTH-1):0]

sdi_data

Input

Data signal of the SDI stream

sync_ready

Output

Ready signal of the SYNC stream

sync_valid

Input

Valid signal of the SYNC stream

[7:0]

sync_data

Input

Data signal of the sync stream