FPGA-Implemented Fractal Decoder with Forward Error Correction in Short-Reach Optical Interconnects

Forward error correction (FEC) codes combined with high-order modulator formats, i.e., coded modulation (CM), are essential in optical communication networks to achieve highly efficient and reliable communication. The task of providing additional error control in the design of CM systems with high-performance requirements remains urgent. As an additional control of CM systems, we propose to use indivisible error detection codes based on a positional number system. In this work, we evaluated the indivisible code using the average probability method (APM) for the binary symmetric channel (BSC), which has the simplicity, versatility and reliability of the estimate, which is close to reality. The APM allows for evaluation and compares indivisible codes according to parameters of correct transmission, and detectable and undetectable errors. Indivisible codes allow for the end-to-end (E2E) control of the transmission and processing of information in digital systems and design devices with a regular structure and high speed. This study researched a fractal decoder device for additional error control, implemented in field-programmable gate array (FPGA) software with FEC for short-reach optical interconnects with multilevel pulse amplitude (PAM-M) modulated with Gray code mapping. Indivisible codes with natural redundancy require far fewer hardware costs to develop and implement encoding and decoding devices with a sufficiently high error detection efficiency. We achieved a reduction in hardware costs for a fractal decoder by using the fractal property of the indivisible code from 10% to 30% for different n while receiving the reciprocal of the golden ratio.


Introduction
With the development of the 5G network architecture, 4K/8K video streaming, the Internet of Things (IoT), cloud computing, and other modern technologies, the task of improving the reliability of data transmission remains urgent [1]. With an increase in the volume of the transmitted information and growing traffic, a strong candidate is PAM-M since it possesses cost-effectiveness, spectral efficiency, energy efficiency, and simplicity [2][3][4][5][6]. Although it is studied for short-reach networks, PAM-M format modulation was considered for C-band mobile and interdata centre networks.
Optical communication systems need to maintain highly efficient and highly reliable communications using digital signal processing (DSP), forward error correction (FEC), and E2E data control enables both transmission and digital devices, which significantly improves the efficiency of information systems. Codes involving artificial redundancy are designed only for error control tasks in either communication channels or information processing systems and do not allow for E2E data control. This creates effectively evaluating indivisible error detection codes with natural redundancy for their further application in digital devices and systems. As an additional control, indivisible codes can be used in conjunction with FEC codes, making it possible to simplify implementation methods of encoding and decoding devices with significant error detection properties.
In this paper, we investigate a fractal decoder, which was implemented in FPGA using Intel Quartus Prime software. The device was investigated for a 56 and 35 Gbaud PAM-M (M = 4, 8) modulation with Gray code mapping using wavelength division multiplexed (WDM) optical interconnect model with a standard single-mode fibre (SSMF) and erbiumdoped fibre amplifier (EDFA). We investigate the combination of an indivisible natural redundancy error detection code with an artificial redundancy FEC based on the interleaved BCH + LDPC and RS + LDPC FEC. We also evaluate the indivisible error detecting code using the average probability method (APM), which demonstrated that the simplicity, versatility, and reliability of estimation is close to reality. This shows that it is possible to reduce the saving hardware costs of the fractal decoder by using the fractal property of indivisible code. An increase in the savings in hardware costs occurs with an increase in the code length of the indivisible code, which is limited to the reciprocal of the golden ratio. With fractal decoding, the signal delays twice as much as the standard method of constructing line Fibonacci decoders.
The paper is structured as follows: Section 2 presents the theoretical aspects and estimation of the indivisible code based on the APM for a binary symmetric channel (BSC). Section 3 analyses the 56 and 35 Gbaud wavelength division multiplexed (WDM) shortreach optical interconnects for PAM-M (M = 4, 8) modulation with Gray code mapping with SSMF and EDFA. EDFA is used for signal amplification and to investigate the code performance in the presence of ASE noise. The simulation results of the WDM optical interconnect model with interleaved BCH + LDPC, and RS + LDPC with the fractal decoder device are also presented in Section 3. Section 4 investigates the fractal decoder device for the indivisible error-detecting code implemented in FPGA software. Lastly, we conclude this paper in Section 5.

Theoretical Aspects of Indivisible Code
In this paper, we use the Fibonacci indivisible error-detection code. The Fibonacci number system makes it possible to generate the Fibonacci code, consisting of Fibonacci numbers whose weights are a sequence of numbers 1, 1, 2, 3, 5, 8, . . . , F n . Equation (1) defines a sequence of numbers in an indivisible code [37][38][39]: It follows from Equation (1) that each subsequent element of the Fibonacci series is equal to the sum of its two preceding elements. The quantitative value of the Fibonacci numbers is set by a numbering function whose weights are the Fibonacci numbers represented as Equation (2) [25][26][27][28]: N = a n F n + a n−1 F n−1 + . . . + a i F i + . . . + a 1 F 1 (2) where a i ∈ {0, 1} is the binary digit of the i-th bit in the positional representation of a number; n is the length of the code; F i is the weight of the i-th bit, which is equal to the i-th Fibonacci numbers. The abbreviated form of Equation (1) is shown as Equation (3) [25][26][27][28]: N a = a n a n−1 , . . . , a i , . . . , a 1 .
The range of Fibonacci numbers is determined from Equation (4) [25][26][27][28]: where F n is the weight of the n-th bit of the Fibonacci numbers; F n−1 is the weight of the n−1 bits of the Fibonacci numbers.
Using two binary numbers, the range of Fibonacci numbers equals P 2 = 1 + 1 = 2, for P 3 = 2 + 3 = 5, for P 4 = 3 + 5 = 8. This code prohibits having two unities side by side, which is a sign of an error. If there are three neighbouring unities in the code combination, the middle bits can be corrected by inverting it to zero, resulting in a correction in the errordetecting code. Thus, the indivisible code can detect errors and correct some, transforming this code into an FEC code.
The fractal structure of the indivisible code with n = 5 is shown in Table 2.
where Fn is the weight of the n-th bit of the Fibonacci numbers; Fn−1 is the weight of the n−1 bits of the Fibonacci numbers.
Using two binary numbers, the range of Fibonacci numbers equals P2 = 1 + 1 = 2, for P3 = 2 + 3 = 5, for P4 = 3 + 5 = 8. This code prohibits having two unities side by side, which is a sign of an error. If there are three neighbouring unities in the code combination, the middle bits can be corrected by inverting it to zero, resulting in a correction in the errordetecting code. Thus, the indivisible code can detect errors and correct some, transforming this code into an FEC code.
The fractal structure of the indivisible code with n = 5 is shown in Table 2.
The range of Fibonacci numbers is determined fr where Fn is the weight of the n-th bit of the Fibonacci n bits of the Fibonacci numbers.
Using two binary numbers, the range of Fibonac P3 = 2 + 3 = 5, for P4 = 3 + 5 = 8. This code prohibits hav is a sign of an error. If there are three neighbouring u middle bits can be corrected by inverting it to zero, r detecting code. Thus, the indivisible code can detect er this code into an FEC code.

Bit Number
The range of Fibonacci numbers is determined from Equation (4) where Fn is the weight of the n-th bit of the Fibonacci numbers; Fn−1 is the weight of the n−1 bits of the Fibonacci numbers.
Using two binary numbers, the range of Fibonacci numbers equals P2 = 1 + 1 = 2, for P3 = 2 + 3 = 5, for P4 = 3 + 5 = 8. This code prohibits having two unities side by side, which is a sign of an error. If there are three neighbouring unities in the code combination, the middle bits can be corrected by inverting it to zero, resulting in a correction in the errordetecting code. Thus, the indivisible code can detect errors and correct some, transforming this code into an FEC code.
The fractal structure of the indivisible code with n = 5 is shown in Table 2.
The indivisible code possesses the property of self-similarity consisting of fractals with several ranks. Equation (1) forms the fractal of the first rank, from which multifractals 1 , ..., , ...   a n n i N a a a Table 1 shows the indivisible code for n = 8 an weights 1, 2, 3, 5, 8, 13, 21, 34.
The range of Fibonacci numbers is determined fr where Fn is the weight of the n-th bit of the Fibonacci n bits of the Fibonacci numbers.
Using two binary numbers, the range of Fibonac P3 = 2 + 3 = 5, for P4 = 3 + 5 = 8. This code prohibits hav is a sign of an error. If there are three neighbouring u middle bits can be corrected by inverting it to zero, r detecting code. Thus, the indivisible code can detect er this code into an FEC code.
The fractal structure of the indivisible code with  The indivisible code possesses the property of self-similarity consisting of fractals with several ranks. Equation (1) forms the fractal of the first rank, from which multifractals of the second, third, etc. are constructed ranks. Table 2 shows that the fractals of the first rank are the first five bits with 0 in the MSB, and the last five bits with 1 in the MSB. Bits 0 or 1 in the MSB are identifier fractals 1 and 2. Thus, they are enough to decode one of the fractals and save hardware costs. The line decoder decodes the nonfractal part of the code.

Estimation of Indivisible Code Based on Average Probability Method (APM)
We applied the APM for the BSC to estimate the indivisible code. The APM determines the probabilities of the transitions of code combinations of an indivisible code into proper, allowed, and prohibited classes. The APM possesses simplicity, versatility, and reliability of estimation, close to reality [40]. The probability of the proper transition of the indivisible code is represented by Equation (5): where P i is the probability that an information source generates the i-th code combination; p i i is the probability that the i-th code combination is properly transferred into the i-th code combination.
The probability of undetectable erroneous transitions of the indivisible code is represented by Equation (6): where p u i is the probability that the i-th code combination is erroneously transferred into the class of code combinations that is not detected.
The probability of an erroneous transition of the indivisible code is represented by Equation (7): where p u i,j is the probability that the i-th code combination is erroneously transferred into the j-th allowable code combination.

Numerical Analysis of an Optical System
The WDM optical interconnect model used concatenated codes, for instance, the indivisible error-detection code, interleaved BCH + LDPC (with shortened BCH codes), and RS + LDPC FEC. We used the fractal decoder for indivisible code, Berlekamp-Massey algorithm (BMA) for BCH and RS, and belief propagation algorithm (BPA) for LDPC FEC.
The RS (15, 5) FEC code used 200% overhead (OH), and code rate R c = 0.33. We considered the LDPC FEC code from the digital video broadcasting satellite second-generation standard with code rate R c = 0.75 with 33.3% overhead (OH), block length of n = 64,800 bits, and 50 decoding iterations [43].
We investigated the received optical power (ROP) and optical signal-to-noise ratio (OSNR) with concatenated FEC codes for the particular bit error rate (BER) for the WDM optical interconnect model. Figure 6a   Error statistics and post-FEC simulations use the Monte Carlo (MC) BER measurement up to 10 −5 , using the standard [11] expected BER up to 10 −15 . Compared to the BCH + LDPC FEC, the RS + LDPC FEC coded system, of which the correction symbol errors are in each codeword, have the best post-FEC performance and the highest OH for simulation WDM optical interconnect model. Post-FEC BER values for interleaved BCH + LDPC and RS + LDPC, which are shown in Figure 6a,b at an ROP, were −18 and −10 dBm for PAM-4, and −15 and −6 dBm for PAM-8; at a higher ROP, post-FEC BER values were zero. The post-FEC BER for interleaved BCH + LDPC and RS + LDPC codes in Figure 7a,b were achieved at an OSNR within the 28-42 dBm and 36-49 dBm for PAM-4 and PAM-8, respectively.  Decoding the essence was as follows: 4 LSB of fractal 1 repeated in 4 LSB of fractal 2 in Table 2. The difference between these fractals lay in the content of zeros or units in the MSB. Thus, to decode code fractals, it is enough to decode one of them [15][16][17]. The nonfractal part of the indivisible code decodes with the use line decoder.

Design of the Fractal Decoder Device
For example, code combinations of the indivisible code shown in Table 2 transmit to inputs DC 3.1 and DC 3.2. Decoder DC 3.1 decodes fractal 1 corresponding to code combinations 0-4 or 8-12. Decoder DC 3.2 interprets fractal 2, corresponding to code combinations 5-7. Depending on the MSB of the code combination of fractals 1 or 2, one of the elements of switching devices SW 1.1 or SW 1.2 is triggered. If, as a result of decoding fractal or nonfractal parts of the indivisible code, an error occurs, characterized by the appearance of two or more units that are next to each other in the code combinations, at the output of the error detection circuit, a signal of 1 is indicated.
The reduced hardware costs of the fractal decoder compared to the line decoder are due to using one fractal (fractal 1 or 2) in DC 3.1 to decode the code combinations of both fractals. However, instead of the excluded constituent, the fractal decoder uses the switching devices with 2-input OR elements, requiring much lower hardware costs than those of implementing components of the additional fractal part. Due to this, hardware costs are reduced, and this is more remarkable, the more significant the n of the indivisible code is.
Decoders DC 3.1 and DC 3.2 are the line decoders. However, opportunities became available to develop more economical decoder DC 3.1 by analogy with the fractal construction using the same structure as that of the DC 3.2 decoder. More economical decoders DC 3.1 can be implemented according to multifractal construction until the saved hardware costs are profitable. In this case, each subsequent DC 3.1 decoder for its synthesis uses the multifractal of a higher rank-third, fourth, etc.
For example, to implement the fractal decoder for 21 outputs on the basis of a fractal decoder with 13 outputs, the number 21 is represented as fractal equality of the first rank 21 = ((8 + 5) + 8), which indicates introducing an additional switching device for 16 outputs. Then, depending on the MSB of decoder 3.2, which includes eight inputs, they are triggered to one of the switching devices consisting of eight 2-input OR elements of the second stage with 16 outputs; 5 outputs in this case remain without switching. As a result, any of the 21st indivisible code combinations are decoded. In designing such multistage decoders, only multifractals of the first and second ranks are used that are then transformed, with the advent of switching devices, into fractals of second and third ranks, third and fourth, and so on, an unlimited number of ranks, thus constructing the multistage decoders.
The method of fractal decoding is as follows: 1.
In a set of the indivisible code f = x 1 , x 2 , . . . , x j , . . . , x n , fractal parts are found that are distinguished by the presence of 0 or 1 in the MSB.

2.
The fractal part of the indivisible codes decodes by the line decoder (D 3.1).

3.
Depending on the signal of the MSB (0 or 1), the first (SW 1.1) or second switch (SW 1.2) is triggered, wherein its outputs correspond to the numbers of the first or second fractals.

4.
The codes are not included in the fractal part decoding by the line decoder (D 3.2).

5.
If an erroneous combination is received at the inputs of decoders DC 3.1 and DC 3.2, in which x j × x −-1 = 1, j = 1, 2, . . . , n, an error signal is detected. The primary indicator in developing a fractal decoder device is saving hardware costs, which are reduced. As a measure for calculating hardware costs, we counted the number of inputs of logical elements of the fractal digital device and present them as a sum of inputs. The sum for line decoders equals the rounded product of the number of inputs by the logarithm of this number. For example, the line decoder for 13 digits has inputs equal to 13 × 5 = 65. The switching devices (SW 1.1, SW 1.2) that are triggered, depending on the value of the n-th bits of the MSB outputs of DC 3.2, contain 2 × 2 (F n−1 ) = 4 × F n−1 inputs.
The sum of inputs for n-bits fractal decoder: For the line decoder device, the sum of the inputs for n-bits equals n × F n+1 -for example, if an n = 5 product n × F n+1 = 5 × 13 = 65 exceeds the number of the fractal decoder elements by 10. In actual conditions, when the numbers of the code combinations of the indivisible code, as shown in Table 2, exceed ten digits, hardware costs of the fractal decoder can be significantly reduced [44]. Table 4 shows the number of fractal decoder inputs depending on n. Equation (10) shows the number of inputs with minimization function S n to the number of inputs W = n × F n+1 fractal decoder device without minimization for n: where W is the number of inputs of the fractal decoder device without minimization of the function.
The absolute value of the number of the saving hardware costs of the fractal decoder: Ratio Q/W determines the relative number saving hardware costs of the fractal decoder device: Equation (12) follows the F n+1 /F n with the increase in n tending to the reciprocal of the golden ratio. Table 5 shows the relative number saving hardware costs of the fractal decoder device for n. For n = 5, the saving hardware costs of the fractal decoder device are 15.38%, and for n = 20, they are 34.37%, which is more than twice as high as the initial value.
We realized the fractal decoder device in FPGA using Intel Quartus Prime software with the device setup of Cyclone V 5csema5f31c6. The FPGA fitting was the realization at a clock frequency of 429.37 MHz. Figure 9 shows the simulation waveform of the fractal decoder device in FPGA for n = 5. We utilized adaptive logic modules (ALMs) that, after modelling, were 10/32.070 and less than <1% with low power consumption. The maximal signal delay along the longest path in a combinational circuit was 0.806 ns. No digital signal processing (DSP) slices and RAM were employed. With an increase in the n of the fractal decoder, the delay time did not increase due to parallelization operations. The detecting ability of an indivisible code using the fractal decoder was analysed. For n = 64,800, the detecting errors of the indivisible code were 96%. The fractal decoder has a block structure in which n increases by adding switching devices depending on the calculated number of the indivisible code. Compared to saving hardware costs, an assessment of the fractal decoder was also carried out, which reduced hardware costs from 10% to 30% compared to the implementation of line decoders based on the used codes.

Conclusions
This paper presented an FPGA-implemented fractal decoder with FEC codes in a short-reach optical interconnect model for additional control CM. An indivisible errordetecting code was evaluated on the basis of the APM. Detection of errors on average probability allowed for assessing indivisible codes with any code distance starting from d = 1. The fractal decoder was investigated for 56 and 35 Gbaud PAM-M (M = 4, 8) with PAM-M Gray code mapping with SSMF fibre and EDFA for interleaved BCH + LDPC and RS + LDPC codes. We used the MC method to evaluate the error statistics and post-FEC, in which interleaved concatenated RS + LDPC FEC was more efficient due to the correction of symbolic errors. Thus, it is possible to reduce the hardware costs of a fractal decoder device by using the fractal property of the fractal numbers from 10% to 30%. In some cases, with the increase in their digit capacity, this reduction was quite significant with 96% error detection. Fractal decoder devices use fewer hardware costs compared to line decoders due to the property of the fractality of the indivisible code, which provides significant advantages for the proposed device, reducing its cost, power consumption, and chip size.