An Efficient Parallel CRC Computing Method for High Bandwidth Networks and FPGA Implementation
Abstract
:1. Introduction
- Aiming at the problems of hardware CRC circuits, which are caused by the variable length of the checksum data frame tail and the difficulty of convergence in timing, this paper proposes a bit-width normalized CRC parallel computation method based on the precomputation of the original seed value, called PSV-WN-CRC. The computation method selects the corresponding primitive seed value according to the data frame tail length, and converts the arbitrary bit-width CRC computation into the fixed bit-width CRC computation, so as to effectively adapt to the case of variable data frame tail length.
- Based on the PSV-WN-CRC computation method, this paper designs an efficient parallel CRC circuit for FPGAs. The implementation and experiments are performed in Virtex UltraScale+ FPGAs. The experimental results show that the efficient parallel CRC circuit designed in this paper consumes only 5981 LUTs for realizing 1024-bit wide CRC computation and achieves a maximum throughput of 392.2 Gbps. Compared with three advanced works, this method effectively reduces resource consumption and improves the maximum throughput.
2. Related Work
3. Proposed Work
3.1. PSV-WN-CRC
3.1.1. Basic Theory of the PSV-WN-CRC
3.1.2. Calculation of Primitive Seeds
3.2. PSV-WN-CRC Hardware Implementation
3.2.1. Data Preprocessing
3.2.2. CRC Circuit Structure
4. Experimental Section
4.1. Functional Test
4.2. Performance Test
5. Discussions
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Pei, T.-B.; Zukowski, C. High-speed parallel CRC circuits in VLSI. IEEE Trans. Commun. 1992, 40, 653–657. [Google Scholar] [CrossRef]
- Wang, X.; Zhuang, L.; Lu, Q.; Wang, S. The Research of Parallel CRC Pipeline Algorithm Based on Matrix Transformation. In Proceedings of the 2012 International Conference on Computer Science and Service System, Nanjing, China, 11–13 August 2012; pp. 162–165. [Google Scholar]
- Akagic, A.; Amano, H. Performance analysis of fully-adaptable CRC accelerators on an FPGA. In Proceedings of the 22nd International Conference on Field Programmable Logic and Applications (FPL), Oslo, Norway, 29–31 August 2012; pp. 575–578. [Google Scholar]
- 802.3bs-2017; Amendment 10: Media Access Control Parameters, Physical Layers, and Management Parameters for 200 Gbps and 400 Gbps Operation. IEEE: Piscataway, NJ, USA, 2017.
- Qaqos, N.N. Optimized FPGA implementation of the CRC using parallel pipelining architecture. In Proceedings of the 2019 International Conference on Advanced Science and Engineering (ICOASE), Zakho, Iraq, 2–4 April 2019; pp. 46–51. [Google Scholar]
- Peterson, W.W.; Brown, D.T. Cyclic codes for error detection. Proc. IRE 1961, 49, 228–235. [Google Scholar] [CrossRef]
- Patel, A.M. A multi-channel CRC register. In Proceedings of the May 18–20, 1971, Spring Joint Computer Conference, Atlantic City, NJ, USA, 18–20 May 1971; pp. 11–14. [Google Scholar]
- Sarwate, D.V. Computation of cyclic redundancy checks via table look-up. Commun. ACM 1988, 31, 1008–1013. [Google Scholar] [CrossRef]
- Albertengo, G.; Sisto, R. Parallel CRC generation. IEEE Micro 1990, 10, 63–71. [Google Scholar] [CrossRef]
- Weerasinghe, J.; Abel, F.; Hagleitner, C.; Herkersdorf, A. Enabling FPGAs in hyperscale data centers. In Proceedings of the 2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing and 2015 IEEE 12th Intl Conf on Autonomic and Trusted Computing and 2015 IEEE 15th Intl Conf on Scalable Computing and Communications and Its Associated Workshops (UIC-ATC-ScalCom), Beijing, China, 10–14 August 2015; pp. 1078–1086. [Google Scholar]
- Weerasinghe, J.; Polig, R.; Abel, F.; Hagleitner, C. Network-attached FPGAs for data center applications. In Proceedings of the 2016 International Conference on Field-Programmable Technology (FPT), Xi’an, China, 7–9 December 2016; pp. 36–43. [Google Scholar]
- Tarafdar, N.; Lin, T.; Fukuda, E.; Bannazadeh, H.; Leon-Garcia, A.; Chow, P. Enabling Flexible Network FPGA Clusters in a Heterogeneous Cloud Data Center. In Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, CA, USA, 22–24 February 2017; pp. 237–246. [Google Scholar]
- Bertolino, M.; Pacalet, R.; Apvrille, L.; Enrici, A. Efficient scheduling of FPGAs for cloud data center infrastructures. In Proceedings of the 2020 23rd Euromicro Conference on Digital System Design (DSD), Kranj, Slovenia, 26–28 August 2020; pp. 57–64. [Google Scholar]
- Hoozemans, J.; Peltenburg, J.; Nonnemacher, F.; Hadnagy, A.; Al-Ars, Z.; Hofstee, H.P. Fpga acceleration for big data analytics: Challenges and opportunities. IEEE Circuits Syst. Mag. 2021, 21, 30–47. [Google Scholar] [CrossRef]
- Mbongue, J.M.; Saha, S.K.; Bobda, C. Domain Isolation in FPGA-Accelerated Cloud and Data Center Applications. In Proceedings of the 2021 Great Lakes Symposium on VLSI, Virtual Event, USA, 22–25 June 2021; pp. 283–288. [Google Scholar]
- Chamola, V.; Patra, S.; Kumar, N.; Guizani, M. FPGA for 5G: Re-configurable hardware for next generation communication. IEEE Wirel. Commun. 2020, 27, 140–147. [Google Scholar] [CrossRef]
- Visconti, P.; Velázquez, R.; Soto, C.D.-V.; De Fazio, R. FPGA based technical solutions for high throughput data processing and encryption for 5G communication: A review. TELKOMNIKA (Telecommun. Comput. Electron. Control) 2021, 19, 1291–1306. [Google Scholar] [CrossRef]
- Bartzoudis, N.; Rubio Fernández, J.; López-Bueno, D.; Román Villarroel, A.; Antonopoulos, A. Agile FPGA Computing at the 5G Edge: Joint Management of Accelerated and Software Functions for Open Radio Access Technologies. Electronics 2024, 13, 701. [Google Scholar] [CrossRef]
- Gou, M.; Wang, B.; Zhang, X. Development of Multi-Motor Servo Control System Based on Heterogeneous Embedded Platforms. Electronics 2024, 13, 2957. [Google Scholar] [CrossRef]
- Ni, X.; Cen, Y.; Tyagi, T.; Enemali, G.; Arslan, T. 5G Enabled Dual Vision and Speech Enhancement Architecture for Multimodal Hearing-Aids. Electronics 2024, 13, 2588. [Google Scholar] [CrossRef]
- de Sousa, M.A.d.A.; Pires, R.; Del-Moral-Hernandez, E. SOMprocessor: A high throughput FPGA-based architecture for implementing Self-Organizing Maps and its application to video processing. Neural Netw. 2020, 125, 349–362. [Google Scholar] [CrossRef] [PubMed]
- Sarkar, S.; Bhairannawar, S.S. Efficient FPGA architecture of optimized Haar wavelet transform for image and video processing applications. Multidimens. Syst. Signal Process. 2021, 32, 821–844. [Google Scholar] [CrossRef]
- Sarkar, S.; Bhairannawar, S.S.; KB, R. FPGACam: A FPGA based efficient camera interfacing architecture for real time video processing. IET Circuits Devices Syst. 2021, 15, 814–829. [Google Scholar] [CrossRef]
- Jia, C.; Hang, X.; Wang, S.; Wu, Y.; Ma, S.; Gao, W. Fpx-nic: An fpga-accelerated 4k ultra-high-definition neural video coding system. IEEE Trans. Circuits Syst. Video Technol. 2022, 32, 6385–6399. [Google Scholar] [CrossRef]
- Jeong, D.; Lee, M.; Lee, W.; Jung, Y. FPGA-Based Acceleration of Polar-Format Algorithm for Video Synthetic-Aperture Radar Imaging. Electronics 2024, 13, 2401. [Google Scholar] [CrossRef]
- Leal, D.P.; Sugaya, M.; Amano, H.; Ohkawa, T. Automated integration of high-level synthesis fpga modules with ros2 systems. In Proceedings of the 2020 International Conference on Field-Programmable Technology (ICFPT), Maui, HI, USA, 9–11 December 2020; pp. 292–293. [Google Scholar]
- Kojima, A. Autonomous driving system implemented on robot car using soc fpga. In Proceedings of the 2021 International Conference on Field-Programmable Technology (ICFPT), Auckland, New Zealand, 6–10 December 2021; pp. 1–4. [Google Scholar]
- Uetsuki, T.; Okuyama, Y.; Shin, J. CNN-based End-to-end Autonomous Driving on FPGA Using TVM and VTA. In Proceedings of the 2021 IEEE 14th International Symposium on Embedded Multicore/Many-Core Systems-on-Chip (MCSoC), Singapore, 20–23 December 2021; pp. 140–144. [Google Scholar]
- Li, Y.; Li, S.E.; Jia, X.; Zeng, S.; Wang, Y. FPGA accelerated model predictive control for autonomous driving. J. Intell. Connect. Veh. 2022, 5, 63–71. [Google Scholar] [CrossRef]
- Sciangula, G.; Restuccia, F.; Biondi, A.; Buttazzo, G. Hardware acceleration of deep neural networks for autonomous driving on FPGA-based SOC. In Proceedings of the 2022 25th Euromicro Conference on Digital System Design (DSD), Maspalomas, Spain, 31 August–2 September 2022; pp. 406–414. [Google Scholar]
- Dimitrova, R.S.; Gehrig, M.; Brescianini, D.; Scaramuzza, D. Towards low-latency high-bandwidth control of quadrotors using event cameras. In Proceedings of the 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 31 May–31 August 2020; pp. 4294–4300. [Google Scholar]
- Du, J.; Jiang, C.; Wang, J.; Ren, Y.; Debbah, M. Machine learning for 6G wireless networks: Carrying forward enhanced bandwidth, massive access, and ultrareliable/low-latency service. IEEE Veh. Technol. Mag. 2020, 15, 122–134. [Google Scholar] [CrossRef]
- Niwa, N.; Amano, H.; Koibuchi, M. Low-latency high-bandwidth interconnection networks by selective packet compression. In Proceedings of the 2021 Ninth International Symposium on Computing and Networking (CANDAR), Matsue, Japan, 23–26 November 2021; pp. 56–64. [Google Scholar]
- Velayutham, A. Optimizing sase for low latency and high bandwidth applications: Techniques for enhancing latency-sensitive systems. Int. J. Intell. Autom. Comput. 2023, 6, 63–83. [Google Scholar]
- Kok, C.L.; Siek, L. Designing a Twin Frequency Control DC-DC Buck Converter Using Accurate Load Current Sensing Technique. Electronics 2024, 13, 45. [Google Scholar] [CrossRef]
- Kounavis, M.E.; Berry, F.L. Novel table lookup-based algorithms for high-performance CRC generation. IEEE Trans. Comput. 2008, 57, 1550–1560. [Google Scholar] [CrossRef]
- Akagic, A.; Amano, H. High-speed fully-adaptable CRC accelerators. IEICE Trans. Inf. Syst. 2013, 96, 1299–1308. [Google Scholar] [CrossRef]
- Walma, M. Pipelined cyclic redundancy check (CRC) calculation. In Proceedings of the 2007 16th International Conference on Computer Communications and Networks, Honolulu, HI, USA, 13–16 August 2007; pp. 365–370. [Google Scholar]
- Nie, Y.; Cai, F.; Zhang, K.; Zhong, S.; Luo, H. A Formal Design of Parallel CRC Circuit. In Proceedings of the 2023 5th International Conference on Electronic Engineering and Informatics (EEI), Wuhan, China, 30 June–2 July 2023; pp. 449–452. [Google Scholar]
- Hajare, P.S.; Mankar, K. Design and Implementation of Parallel CRC Generation for High Speed Application. IOSR J. VLSI Signal Process. (IOSR-JVSP) 2015, 5, 1. [Google Scholar]
- Kekely, L.; Cabal, J.; Kořenek, J. Effective fpga architecture for general crc. In Proceedings of the Architecture of Computing Systems–ARCS 2019: 32nd International Conference, Copenhagen, Denmark, 20–23 May 2019; Proceedings 32, 2019. pp. 211–223. [Google Scholar]
- Liu, H.; Qiu, Z.; Pan, W.; Li, J.; Zheng, L.; Gao, Y. Low-cost and programmable CRC implementation based on FPGA. IEEE Trans. Circuits Syst. II Express Briefs 2020, 68, 211–215. [Google Scholar] [CrossRef]
- Zhou, Z.; Wang, R. A Method of High-Speed Parallel CRC Computation. In Proceedings of the 2023 5th International Conference on Electronic Engineering and Informatics (EEI), Wuhan, China, 30 June–2 July 2023; pp. 298–303. [Google Scholar]
- Kishore, P.; Pal, B.A.; Kishore, L.N.; Revathi, C.V. Implementation of Table-Based Cyclic Redundancy Check (CRC-32) for Gigabit Ethernet Applications. In Proceedings of the 2023 4th International Conference for Emerging Technology (INCET), Belgaum, India, 26–28 May 2023; pp. 1–4. [Google Scholar]
- Das, A. Block-Wise Computation of Cyclic Redundancy Code Using Factored Toeplitz Matricesin Lieu of Look-Up Table. IEEE Trans. Comput. 2022, 72, 1110–1121. [Google Scholar] [CrossRef]
- Cai, F.; Nie, Y.; Zhang, K.; Luo, H.; Li, Y. A high-speed CRC-32 Implementation on FPGA. In Proceedings of the 2024 4th International Conference on Neural Networks, Information and Communication (NNICE), Guangzhou, China, 19–21 January 2024; pp. 1665–1668. [Google Scholar]
- Thomas, D.; Moorby, P. The Verilog® Hardware Description Language; Springer Science & Business Media: Berlin, Germany, 2008. [Google Scholar]
- Salauyou, V.; Zabrocki, Ł. Coding techniques in Verilog for finite state machine designs in FPGA. In Proceedings of the Computer Information Systems and Industrial Management: 18th International Conference, CISIM 2019, Belgrade, Serbia, 19–21 September 2019; Proceedings 18, 2019. pp. 493–505. [Google Scholar]
- Stock, F.; Koch, A.; Hildenbrand, D. FPGA-accelerated color edge detection using a Geometric-Algebra-to-Verilog compiler. In Proceedings of the 2013 International Symposium on System on Chip (SoC), Tampere, Finland, 23–24 October 2013; pp. 1–6. [Google Scholar]
- Rose, J.; Luu, J.; Yu, C.W.; Densmore, O.; Goeders, J.; Somerville, A.; Kent, K.B.; Jamieson, P.; Anderson, J. The VTR project: Architecture and CAD for FPGAs from verilog to routing. In Proceedings of the ACM/SIGDA international symposium on Field Programmable Gate Arrays, Monterey, CA, USA, 22–24 February 2012; pp. 77–86. [Google Scholar]
- Qiu, M.; Yu, S.; Wen, Y.; Lü, J.; He, J.; Lin, Z. Design and FPGA implementation of a universal chaotic signal generator based on the Verilog HDL fixed-point algorithm and state machine control. Int. J. Bifurc. Chaos 2017, 27, 1750040. [Google Scholar] [CrossRef]
Data Frame Tail Lengths 1 | Data High Complementary Zero Length 2 | Initial Value Low Complementary Zero Length 3 | Primitive Seed (Hex) |
---|---|---|---|
0 | 0 | No zero-completion operation required 4 | FFFFFFFF |
4 | 60 | 64 − 60 − 4 = 0 | C704DD7B |
8 | 56 | 64 − 56 − 4 = 4 | 6904BB59 |
12 | 52 | 64 − 52 − 4 = 8 | 099C5421 |
16 | 48 | 64 − 48 − 4 = 12 | 552D22C8 |
20 | 44 | 64 − 44 − 4 = 16 | 4E26540F |
24 | 40 | 64 − 40 − 4 = 20 | FBAC7C3A |
28 | 36 | 64 − 36 − 4 = 24 | 6811F1FE |
32 | 32 | 64 − 32 − 4 = 28 | 4A55AF67 |
36 | 28 | 64 − 28 − 4 = 32 | 54B292A9 |
40 | 24 | 64 − 24 − 4 = 36 | 7243C868 |
44 | 20 | 64 − 20 − 4 = 40 | C799DB3E |
48 | 16 | 64 − 16 − 4 = 44 | 5632EEB0 |
52 | 12 | 64 − 12 − 4 = 48 | F20F2BCC |
56 | 8 | 64 − 8 − 4 = 52 | 6D5AEC34 |
60 | 4 | 64 − 4 − 4 = 56 | EF6EB7DF |
Bus Width (w) | LUTs | Fmax (Mhz) | Throughput (Gbps) | Throughput/LUTs | |
---|---|---|---|---|---|
PSV-WN-CRC | 64 | 510 | 806.4 | 50.4 | 0.099 |
128 | 818 | 684.9 | 85.6 | 0.105 | |
256 | 1550 | 588.2 | 147.1 | 0.095 | |
512 | 3519 | 459.8 | 229.9 | 0.065 | |
1024 | 5981 | 392.2 | 392.2 | 0.066 | |
PQC-CRC in [43] | 64 | 846 | 650.2 | 40.6 | 0.048 |
128 | 1663 | 577.6 | 72.2 | 0.043 | |
256 | 5368 | 550.2 | 137.6 | 0.026 | |
512 | - * | - | - | - | |
1024 | - | - | - | - | |
Architecture in [41] | 64 | 697 | 698.7 | 43.7 | 0.063 |
128 | 1358 | 649.6 | 81.2 | 0.060 | |
256 | 2218 | 564.8 | 141.2 | 0.064 | |
512 | 4983 | 450.8 | 225.4 | 0.045 | |
1024 | 8935 | 352.3 | 352.3 | 0.039 | |
Stride-1 in [46] | 64 | 454 | 319.7 | 19.9 | 0.044 |
128 | 673 | 288.5 | 36.1 | 0.054 | |
256 | 1345 | 273.2 | 68.3 | 0.051 | |
512 | - | - | - | - | |
1024 | - | - | - | - | |
Multi-path Selection | 64 | 864 | 613.9 | 38.4 | 0.043 |
128 | 4276 | 552.8 | 69.1 | 0.017 | |
256 | 11683 | 486.3 | 121.6 | 0.011 | |
512 | - | - | - | - | |
1024 | - | - | - | - |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Zhang, L.; Ye, S.; Gou, Z.; Yang, X.; Dai, Q.; Wang, F.; Lin, Y. An Efficient Parallel CRC Computing Method for High Bandwidth Networks and FPGA Implementation. Electronics 2024, 13, 4399. https://doi.org/10.3390/electronics13224399
Zhang L, Ye S, Gou Z, Yang X, Dai Q, Wang F, Lin Y. An Efficient Parallel CRC Computing Method for High Bandwidth Networks and FPGA Implementation. Electronics. 2024; 13(22):4399. https://doi.org/10.3390/electronics13224399
Chicago/Turabian StyleZhang, Ling, Shanwei Ye, Zhuo Gou, Xuefei Yang, Qilin Dai, Fuqiang Wang, and Yingcheng Lin. 2024. "An Efficient Parallel CRC Computing Method for High Bandwidth Networks and FPGA Implementation" Electronics 13, no. 22: 4399. https://doi.org/10.3390/electronics13224399
APA StyleZhang, L., Ye, S., Gou, Z., Yang, X., Dai, Q., Wang, F., & Lin, Y. (2024). An Efficient Parallel CRC Computing Method for High Bandwidth Networks and FPGA Implementation. Electronics, 13(22), 4399. https://doi.org/10.3390/electronics13224399