Professional Documents
Culture Documents
Chuxiong 2019
Chuxiong 2019
Abstract: Fibre channel (FC) provides the high-speed and low-latency communication between the end systems, widely used in
data storage, aerospace applications and large electronic equipment including radar systems. Excellent in error detection and
easy to be implemented in hardware, cyclic redundancy check (CRC) is an important error detection method widely used in
network data transmission. This study introduces a design and development of parallel CRC algorithm for the hardware
implementation on FPGA to meet the specifications for FC. The algorithm can process 128-bit parallel data in a block by broken
it into four 32-bit data and calculate their CRC, respectively, based on the linear feedback shift register, simplifying the
calculation process and reducing resource consumption.
1 Introduction high-speed CRC algorithm for the Ethernet using a reduced lookup
With the rapid development of computer science and data table algorithm achieving a throughput of 40 Gbps.
communication technology, data volume is explosively growing in Although the CRC algorithm has a certain degree of versatility,
the information age, resulting in urgent demands for higher transfer it is necessary to focus on simplified design and implementation
rates. How to store and transmit data securely and rapidly over for FC due to the specifications of FC protocols. On the one hand,
long distances has become a major requirement of modern the increasing number of targets to be detected, the more flexible
communication technology. Fibre channel (FC) protocol, short as mobility of the targets and the dramatic increase in radar
FC, came into being out of this demand. technology and complexity in the future make the radars’ demand
Developed by the American National Standards Institute for data volume higher and higher. On the other hand, the resources
(ANSI), FC is mainly used to achieve high-speed data transmission of FPGAs to process the massive data are limited. Since each FC
between workstations, mainframes and storage devices. High- frame has a CRC field consuming the FPGA resources, how to
bandwidth, low-latency, long-distance transmission, flexible- design a resource-intensive CRC module that meets the transfer
topology and support for multiple upper-layer protocols features of rate requirement of FC has practical significance.
FC make it advantage for high-speed communication. Based on the The paper proposed a kind of design and implementation of a
special requirement of the avionics environment, the FC committee parallel CRC algorithm for FC by Verilog language from both
provided a subset protocol FC-AE in the Avionics Environment. coarse and fine dimensions. The algorithm consumes less resource
After several years of research and development, FC has become of FPGA logic resources and can be easily realised. In this paper,
the preferred choice for new generation of unified avionics network we are going to discuss the principle of CRC and the method we
in the fourth-generation fighter, and it has been applied to new use to generate CRC, respectively. Then, we will introduce the
fighter aircrafts such as F-35 and B-1B. In addition to the airborne specifications of FC in calculating CRC. Finally, according to the
field, large shipborne radar systems also adopt FC to guarantee the rules, we will focus on the implementation of the method and
high speed and reliability of data transmission. analysing the results.
FC generally uses light instead of electricity to transmit data in
the medium so that it can better avoid electromagnetic interference. 2 Principle of CRC algorithm
However, due to various complex influencing factors on the
channel, the transmitted signal will still receive different degrees of CRC is several bits of binary digits that shall immediately follow
interference, and in severe cases, it will cause bit errors and even the data to be check and shall be used to verify the integrity of the
block the communication. That's why we should check whether the data. As Fig. 1 of the FC frame format shows, the CRC field
data received is correct at the receiver. CRC is the most widely appended behind the frame content checks the integrity of the
used and powerful verification method in the field of frame content including the Frame_Headers, if any, the
communication and storage. Frame_Header, and the Data_field.
The CRC mathematics was proposed in 1961 by Perterson and For ease of calculation and explanation, the original data to be
Brown [1] as an error detection code. Since the theory was put checked in the frame content are treated as the coefficients of a
forward, CRC has aroused widespread concern in academia. In [2, polynomial U(x) and CRC can be generated as the following steps:
3], it is shown how the pipelined CRC algorithm can be
implemented based on lookup tables. In [4, 5], a kind of
1.
Adding m zeros after the original data to get xmU(x), where m
generalised parallel CRC algorithm was proposed to incorporate is determined by the degree of a certain polynomial called
negative degree terms. Bajarangbali and Anand [6] have designed a generate polynomial denoted as g(x).
2.
Module 2 dividing the data with m zeros appended by the
generate polynomial g(x) to get the remainder r(x).
3.
Adding zeros before the data corresponding to r(x) to extend it
to m bits.
Append the data got in step 3 after the original data U(x) and we
Fig. 1 FC frame format
get the data to be transmitted, expressed as xmU(x) + r(x).
This equation demonstrates that, to get the CRC of the new 256
bits of data, we can add the first CRC multiplied by x96 and the
second 128 bits of data, and then calculate CRC of the addition.
CRC has 32 bits and the product of CRC and x96 has 128 bits, so
the addition of x96r(x) and U′(x) has 128 bits, the same as the
Fig. 3 General LFSR architecture length of first data. Since the data has the same length, we can
calculate its CRC in an iterative way.
As shown in Fig. 2, we can design the CRC block based on
pipelined architecture as the following steps:
(15)
D[4], D[3], D[2], D[1] and D[0] are all zeros appended to the
original data to generate CRC according to the CRC method, so we
can erase the last five polynomial terms to simplify the calculation.
And let the initial state of S[0] be [0 0 0 0 0]T, we could calculate
that
S4[9] D[7]
S3[9] D8 ⊕
S[9] S2[9] D[6] (21)
= = D[8] ⊕ D[7] ⊕
S1[9] D[5] D[6]
S0[9] D[8] ⊕ D[5]
that means
∧
CRC[4] = U[2] (22) CRC[3] = U[3] U[1] (23)
4 J. Eng., 2019, Vol. 2019 Iss. 21, pp. 7827-7830
This is an open access article published by the IET under the Creative Commons Attribution License
(http://creativecommons.org/licenses/by/3.0/)
∧ ∧
CRC[2] = U[3] U[2] U[0] (24)
7 Conclusion
CRC, as a kind of widely-used algorithm in data communication,
can verify data integrity effectively. Aimed at the design and
implementation of CRC for high-speed FC protocol, the paper
gives a method to calculate CRC of 128-bit parallel data. The
method is parallel in both coarse dimension and fine dimension.
The coarse dimension demonstrates how to depart the 128-bit data
into four 32-bit parts and the relationship of CRC of each 128-bit
data. The fine dimension gives a method that uses matrices to
previously generate the direct connection of original data and it's
CRC based on LFSR. According to the method and following the
specifications of FC, the paper designed a resource-intensive
method to generate CRC for FC.
8 References
[1] Perterson, W.W., Brown, D.T.: ‘Cyclic codes for error detection’, Proc. IRE,
1961, 49, (1), pp. 228–235
Fig. 7 CRC calculation procedure [2] Sun, Y., Kim, M.S.: ‘A table-based algorithm for pipelined CRC calculation’.
2010 IEEE Int. Conf. on Communications (ICC), Cape Town, South Africa,
2010, pp. 1–5
According to the flowchart and the theory of CRC, we program [3] Sun, Y., Kim, M.S.: ‘A pipelined CRC calculation using lookup tables’. 7th
the CRC encoding module for FC in Verilog, designed and IEEE Consumer Communications and Networking Conf., Las Vegas, NV,
simulated with Vivado design suite. USA, 2010, pp. 1–2
Fig. 8 shows the simulation results. As the paper mainly [4] Kennedy, C.E., Mozaffari-Kermani, M.: ‘Generalized parallel CRC
computation on FPGA’. 2015 IEEE 28th Canadian Conf. on Electrical and
discusses the design and implementation of CRC for frame content, Computer Engineering (CCECE), Halifax, Canada, 2015, pp. 107–113
the figure shows the results of CRC of the data and skips the steps [5] Kennedy, C., Reyhani-Masoleh, A.: ‘High-speed parallel CRC circuits’. Proc.
to detect SOF and EOF delimiters. From the figure, we can see that of the 42nd Annual Asilomar Conf. on Signals, Systems and Computers
for a 128-bit data ‘0 × 313233343536373839383736353433’, (ACSSC2008), Pacific Grove, CA, USA, 2008, pp. 1823–1829
[6] Bajarangbali, D., Anand, P.A.: ‘Design of high speed CRC algorithm for
reverse it and we will get its reversed CRC ‘0 × 9bd00176’. In Ethernet on FPGA using reduced lookup table algorithm’. IEEE Annual
addition, for a data stream of 512 bits ‘0 × Indian Conf. (INDICON), Bangalore, India, 2016, pp. 1–7
313233343536373839383736353433_31323334353637383938373 [7] ‘ANSI INCITS, fibre channel framing and signaling-4(FC-FS-4)’, 2013
6353434_313233343536373839383736353435_313233343536373 [8] Narapureddy, P., Ananda, C.M., Pradeep Kumar, B., et al.: ‘Design and
839383736353436’, its revered CRC is ‘0 × 4e6dd731’. It can be implementation of fiber channel based high speed serial transmitter for data
protocol on FPGA’. IEEE Int. Conf. on Recent Trends in Electronics
seen that the results generated by our algorithm are consistent with Information Communication Technology, Bangalore, India, 2015, pp. 926–
[9], showing the algorithm is feasible. Append the reversed CRC 931
after the reserved data, we will get the frame content to transfer [9] ‘Online CRC calculation’, Available at http://www.ip33.com/crc.html,
(Table 1). accessed 2 April 2018
The CRC can be generated immediately when the input data is
received by the posedge of the clock. The implementation of the