AEROFLEX GAISLER
12
RT-SPW-ROUTER
Copyright Aeroflex Gaisler AB
June 2012, Version 1.2
3
SpaceWire router
3.1
Overview
The SpaceWire router core implements a SpaceWire routing switch as defined in the ECSS-E-ST-50-
12C standard. It provides an RMAP target for configuration at port 0 used for accessing internal con-
figuration and status registers. In addition to this there are three different external port types:
SpaceWire links, FIFO interfaces and AMBA interfaces. An AHB slave interface is also provided for
accessing the port 0 registers from the AHB bus. Group adaptive routing and packet distribution are
fully supported (two ports up to all ports can be assigned to an address). System time-distribution is
also supported. Timers are available for each port to prevent deadlock situations.
3.2
Operation
The router ports are interconnected using a non-blocking switch matrix which can connect any input
port to any output port. Access to each output port is arbitrated using a round-robin arbitration
scheme. A single routing-table is used for the whole router. Access to the table is also arbitrated using
a round-robin scheme.
The ports consist of configuration port 0 and three different types of external ports: SpaceWire links,
FIFO interfaces and AMBA interfaces.
All the ports regardless of their type have the same interface to the switch matrix and behave in the
same manner. The difference in behavior is on the external side of the port. The SpaceWire ports pro-
vide standard SpaceWire link interfaces using either on- or off-chip LVDS. The FIFO interfaces store
characters in two FIFOs which are accessed using 9-bit wide data paths with read/write signals. Lastly
the AMBA ports transfer characters from and to an AHB bus using DMA. The four different port
types are described in further detail in sections 3.3, 3.4, 3.5 and 3.6.
3.2.1
Port numbering
The ports are numbered in the following order: configuration port, SpW ports, AMBA ports, FIFO
ports. The configuration port is always present and has number 0. If SpW ports are present in the
router they are numbered starting from number 1. If AMBA ports are present they are numbered start-
ing from the last SpW ports. If no SpW ports are present the AMBA ports start at number 1. Lastly,
the FIFO ports are numbered starting after the last AMBA port, SpW port or at number 1 depending
on if AMBA ports and SpW ports are present respectively.
For example if 7 SpW ports and 4 FIFO ports are included in the router they will have port numbers 1-
7 and 8-11. If 16 SpW ports, 2 AMBA ports and 7 FIFO ports are included they have port numbers 1-
16, 17-18 and 19-25 respectively.
3.2.2
Routing table
A single routing table is provided. The access to this routing table is arbitrated using a round-robin
arbiter with each port being of equal priority. The operation is pipelined and one lookup can be done
each cycle. This way the maximum latency is equal to the number of ports in the router minus one.
The impact on throughput should be negligible provided that packets are not incoming at the same
time. The probability for this is higher when the traffic only consist of very small packets sent contin-
uously (the average size being about the same as the number of ports). This should be a very uncom-
mon case. Latency is still bounded and probably negligible in comparison to other latencies in most
systems. The benefit is a reduced area enabling the router to be implemented with a higher number of
ports on many FPGA technologies.