SPI Engine Interconnect Module
The SPI Engine Interconnect allows connecting multiple SPI Engine Control Interface managers to a single SPI Engine Control Interface subordinate. This enables two command stream generators to connect to a single SPI Engine Execution Module and consequentially give them access to the same SPI bus. The interconnect module is responsible for proper arbitration between the command streams.
Combining two command stream generators in a design and connecting them to a single execution module allows the creation of an efficient and flexible design by using standard components.
Files
Name |
Description |
|---|---|
library/spi_engine/spi_engine_interconnect/spi_engine_interconnect.v |
Verilog source for the peripheral. |
library/spi_engine/spi_engine_interconnect/spi_engine_interconnect_ip.tcl |
TCL script to generate the Vivado IP-integrator project for the peripheral. |
Configuration Parameters
Name |
Description |
Default Value |
Choices/Range |
|---|---|---|---|
DATA_WIDTH |
Data width of the parallel SDI/SDO data interfaces. |
8 |
From 8 to 256. |
NUM_OF_SDIO |
Number of SDI/SDO lines on the physical SPI interface. |
1 |
From 1 to 8. |
Signal and Interface Pins
Physical Port |
Logical Port |
Direction |
Dependency |
|---|---|---|---|
m_cmd_ready |
cmd_ready |
in |
|
m_cmd_valid |
cmd_valid |
out |
|
m_cmd_data |
cmd_data |
out [15:0] |
|
m_sdo_ready |
sdo_ready |
in |
|
m_sdo_valid |
sdo_valid |
out |
|
m_sdo_data |
sdo_data |
out [7:0] |
|
m_sdi_ready |
sdi_ready |
out |
|
m_sdi_valid |
sdi_valid |
in |
|
m_sdi_data |
sdi_data |
in [7:0] |
|
m_sync_ready |
sync_ready |
out |
|
m_sync_valid |
sync_valid |
in |
|
m_sync |
sync_data |
in [7:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
|---|---|---|---|
s_interconnect_dir |
interconnect_dir |
in |
Physical Port |
Logical Port |
Direction |
Dependency |
|---|---|---|---|
m_offload_active |
interconnect_dir |
out |
Physical Port |
Logical Port |
Direction |
Dependency |
|---|---|---|---|
s0_cmd_ready |
cmd_ready |
out |
|
s0_cmd_valid |
cmd_valid |
in |
|
s0_cmd_data |
cmd_data |
in [15:0] |
|
s0_sdo_ready |
sdo_ready |
out |
|
s0_sdo_valid |
sdo_valid |
in |
|
s0_sdo_data |
sdo_data |
in [7:0] |
|
s0_sdi_ready |
sdi_ready |
in |
|
s0_sdi_valid |
sdi_valid |
out |
|
s0_sdi_data |
sdi_data |
out [7:0] |
|
s0_sync_ready |
sync_ready |
in |
|
s0_sync_valid |
sync_valid |
out |
|
s0_sync |
sync_data |
out [7:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
|---|---|---|---|
s1_cmd_ready |
cmd_ready |
out |
|
s1_cmd_valid |
cmd_valid |
in |
|
s1_cmd_data |
cmd_data |
in [15:0] |
|
s1_sdo_ready |
sdo_ready |
out |
|
s1_sdo_valid |
sdo_valid |
in |
|
s1_sdo_data |
sdo_data |
in [7:0] |
|
s1_sdi_ready |
sdi_ready |
in |
|
s1_sdi_valid |
sdi_valid |
out |
|
s1_sdi_data |
sdi_data |
out [7:0] |
|
s1_sync_ready |
sync_ready |
in |
|
s1_sync_valid |
sync_valid |
out |
|
s1_sync |
sync_data |
out [7:0] |
Physical Port |
Direction |
Dependency |
Description |
|---|---|---|---|
clk |
in |
Buses
m_ctrl, s_interconnect_ctrl, m_offload_active_ctrl, s0_ctrl, s1_ctrl are synchronous to this clock domain. |
|
resetn |
in |
Synchronous active-low reset.
Resets the internal state of the module. Buses |
Theory of Operation
The SPI Engine Interconnect module has two SPI Engine Control Interface
subordinate ports and a single SPI Engine Control Interface manager
port. It can be used to connect two command stream generators to a single
command execution engine. Arbitration between streams is done based on the
s_interconnect_ctrl interface, there is a copy of this interface to
m_offload_active_ctrl to indicate whether the stream belongs to offload (s0) or
fifo mode (s1).