GR740-UM-DS, Nov 2017, Version 1.7 409 www.cobham.com/gaisler
GR740
Time-codes are sent when the FSM is in the run-state and a request is made through the time-interface
(described in section 35.4).
When the link interface is in the connecting- or run-state it is allowed to send FCTs. FCTs are sent
automatically by the link interface when possible. This is done based on the maximum value of 56 for
the outstanding credit counter and the currently free space in the receiver N-Char FIFO. FCTs are sent
as long as the outstanding counter is less than or equal to 48 and there are at least 8 more empty FIFO
entries than the counter value.
N-Chars are sent in the run-state when they are available from the transmitter FIFO and there are
credits available. NULLs are sent when no other character transmission is requested or the FSM is in
a state where no other transmissions are allowed.
The credit counter (incoming credits) is automatically increased when FCTs are received and
decreased when N-Chars are transmitted. Received N-Chars are stored to the receiver N-Char FIFO
for further handling by the DMA interface. Received Time-codes are handled by the time-interface.
35.3.2 Transmitter
The state of the FSM, credit counters, requests from the time-interface and requests from the DMA-
interface are used to decide the next character to be transmitted. The type of character and the charac-
ter itself (for N-Chars and Time-codes) to be transmitted are presented to the low-level transmitter
which is located in a separate clock-domain.
This is done because one usually wants to run the SpaceWire link on a different frequency than the
host system clock. The core has a separate clock input which is used to generate the transmitter clock.
Since the transmitter often runs on high frequency clocks (> 100 MHz) as much logic as possible has
been placed in the system clock domain to minimize power consumption and timing issues.
The transmitter logic in the host clock domain decides what character to send next and sets the proper
control signal and presents any needed character to the low-level transmitter as shown in figure 48.
The transmitter sends the requested characters and generates parity and control bits as needed. If no
requests are made from the host domain, NULLs are sent as long as the transmitter is enabled. Most of
the signal and character levels of the SpaceWire standard is handled in the transmitter. External LVDS
drivers are needed for the data and strobe signals.
A transmission FSM reads N-Chars for transmission from the transmitter FIFO. It is given packet
lengths from the DMA interface and appends EOPs/EEPs and RMAP CRC values if requested. When
it is finished with a packet the DMA interface is notified and a new packet length value is given.
35.3.3 Receiver
The receiver detects connections from other nodes and receives characters as a bit stream recovered
from the data and strobe signals by the PHY module which presents it as a data and data-valid signal.
Both the receiver and PHY are located in a separate clock domain which runs on a clock generated by
the PHY.
Transmitter Clock Domain
Host Clock Domain
Transmitter
D
S
Send Time-code
Send FCT
Send NChar
Time-code[7:0]
NChar[8:0]
Figure 48. Schematic of the link interface transmitter.