# An Efficient Multi-Lane SpaceFibre Core for Spacecraft Data-Handling Networks
## 4 FPGA Implementation and Analysis
### Board-Level Verification Results  
A board-level platform can effectively verify the complete functionality of the E-ML-SpFi core. During the verification stage, we verify, one by one, the compliance of the core to concrete requirements in SpaceFibre. The following paragraphs show several main results, which involve full bandwidth communication, exploiting all active lanes without any loss of data, hot redundancy and the functions mentioned in Section 3.2. The correctness of data is guaranteed at a packet level and a frame level. In terms of the packet level, each packet generated by a data generator has incremental data and a CRC checksum for content integrity, and so does each broadcast message. At the frame level, the correctness of data frames, broadcast frames, FCT control words, and other data-link control words is ensured by corresponding CRC fields and TSNs. The far end of a SpaceFibre link calculates a CRC checksum based on received data and compares the checksum with the CRC checksum contained in the received data. If checksums are equal, the received data is considered correctly received without any CRC errors. The received data is corrupted by a sequence error if the TSN inserted in the received data does not match the RSN, as described in Section 2. Meanwhile, the sequence error is recorded. Besides, the frame errors are also monitored, which are caused by incorrect frame length and unexpectable frame delimiters. Figure 9 shows the ILA results of a test to verify full-duplex communication with full bandwidth. In the test, \(L\) is set as four so that the link does not have any hot redundant lanes. Each graph in Figure 9 includes the words transferred from the Multi-lane layer to \(M\) Lane layers and includes error records. Errors are grouped into three categories, described in the paragraph above: CRC errors, sequence errors, and frame errors. The error records are read every hour for twelve hours. From Figure 9, we can conclude that the traffic in the E-ML-SpFi core is directed over the active lanes and that the core is compatible with \(1\times\), \(2\times\), \(3\times\), and \(4\times\) active lanes. Furthermore, error records are 0 under each lane configuration. The ILA waveforms of hot redundancy are shown in Figure 10. The test case, making \(L\) equal to three, has one hot redundant lane, namely lane 3, which has a higher lane number than that of data-sending lanes. In Figure 10a, the hot redundant lane sends pseudo-random bit sequence (PRBS) words, and valid information is only passed to data-sending lanes: lane 0, lane 1, and lane 2. As depicted in Figure 10b, lane 3 is automatically promoted to a data-sending lane when lane 2 is disconnected. As a result, the E-ML-SpFi core achieves the function of hot redundancy. Figure 11 provides the waveforms of a test to verify the function of error recovery captured by ILA. As shown in Figure 11a, the far end of a link starts with four data-sending lanes. After the failure of lane 3, the far-end indicates to near-end that the current value of RSN is hexadecimal 74 by sending an NACK word. Moreover, the receive polarity flag in Figure 11a is reversed. As described in Figure 11b, a retransmitted data frame, composed of words stored in a data retry buffer, is generated at the near end after the analysis of the received NACK. As shown in Figure 11a, a RETRY control word is received by the far end before the retransmitted frame. The far end then begins to add the current value of RSN and one, which indicates that the error recovery is completed. Figure 8: A schematic representation of board-level verification platforms. Figure 12 shows the ILA waveform of the modified word re-ordering block with the real-time disconnection of lane 3. As shown in Figure 12, the modified block maps data words from a data frame on lane 2, lane 1 and lane 0. The first data word in the data frame goes over lane 0, the next over lane 1, up to lane 2. When EDF words appear, the data frame introduces two PAD control words.