Abstract
In fifth generation (5G) new radio (NR), the medium access control (MAC) layer organizes the data into the transport block and transmits it to the physical layer. The transport block consists of up to million bits. When the transport block size exceeds a threshold, the transport block is divided into multiple equal size code blocks. The code block consists of up to 8448 bits. Both the transport block and the code block have a cyclic redundancy check (CRC) attached. Due to the difference in the size of the transport block and the code block, the CRC processing scheme suitable for the transport block and that suitable for the code block are different. This chapter gives an overview of the CRC implementation in 5G NR.
Keywords
- 5G
- NR
- CRC
- transport block
- code block
1. Introduction
In order to provide high data transmission rates, the bandwidth of mobile communication systems is increasing. In fourth generation (4G) long term evolution (LTE), the maximum transmission bandwidth for one component carrier is 20 MHz [1]. In fifth generation (5G) new radio (NR), the frequency bands are divided into two parts: frequency range 1 (FR1) below 6 GHz and frequency range 2 (FR2) above 24.25 GHz. The maximum transmission bandwidth for one component carrier is 100 MHz and 400 MHz in FR1 and FR2 respectively [2]. The increasing system bandwidth brings new problems to the design of the transmitter and the receiver. In this chapter of the book, we focus on the cyclic redundancy check (CRC) implementation in 5G NR.
In 5G NR, there are many physical channels defined in the downlink and the uplink [3]. The downlink physical channels consist of the physical downlink shared channel (PDSCH), the physical downlink control channel (PDCCH), the physical broadcast channel (PBCH), etc. The uplink physical channels consist of physical uplink shared channel (PUSCH), the physical uplink control channel (PUCCH), the physical random access channel (PRACH), etc. The PDSCH and the PDSCH are mainly used to transmit data. The usage scenarios of 5G NR consist of enhanced mobile broadband (eMBB), massive machine-type communications (mMTC) and ultra-reliable and low latency communications (URLLC) [4, 5]. The usage scenario of the eMBB requires high data transmission rates. As a consequence, we focus on the PDSCH and the PUSCH in this chapter.
The medium access control (MAC) layer organizes the data into the transport block and transmits it to the physical layer. In 5G NR, the maximum transport block size is 1,277,992 [6]. The processing of the transport block is shown in Figure 1 [7]. If the transport block size is larger than 3824, a 16-bit CRC is added at the end of the transport block. Otherwise, a 24-bit CRC is added at the end of the transport block. The transport block is divided into multiple equal size code blocks when the transport block size exceeds a threshold. For quasi-cyclic low-density parity-check code (QC-LDPC) base graph 1, the threshold is equal to 8448. For QC-LDPC base graph 2, the threshold is equal to 3840. In 5G NR, the maximum code block size number is 8448. An additional 24-bit CRC is added at the end of each code block when there is a segmentation. Due to the difference in the size of the transport block and the code block, the CRC processing scheme suitable for the transport block and that suitable for the code block are different.

Figure 1.
The transport block and the code block.
The rest of this chapter is organized as follows. Section 2 describes the system model of the transport block and the code block in 5G NR. Section 3 gives two properties of the CRC. Section 4 presents the overview of the CRC implementation. Finally, Section 5 gives the conclusion.
2. System model
Let
If
When
When there is no segmentation, the number of code blocks
In the following sections, we mainly consider the case that there is a segmentation. Let
Note that the procedure of the transport block size determination guarantees that
where
At the receiver side, the following steps are carried out for the transport block: code block segmentation, bit de-interleaving, de-rate matching, QC-LPDC decoding, code block concatenation. We need to check whether each code block and the transport block are correctly received. Let
where
3. Properties of the CRC
In this section, we give two properties of the CRC. These properties are useful in the CRC implementation. Before giving these properties, we define some variables. Let
Property 1 implies that
Property 2 implies that
The proof of the property 1 and the property 2 can be found in Refs. [10, 11]. It is omitted for brevity.
4. Overview of the CRC implementation
In this section, we give an overview of the CRC implementation. In the following, the received transport block after the hard decision
4.1 CRC implementation by direct calculation
In this scheme, the CRC of
Figure 2 illustrates an example. The dividend is equal to

Figure 2.
The division of polynomial using modulo-2 arithmetic.
The division of polynomial using modulo-2 arithmetic is a computationally intensive operation. In the worst case, it requires a shift operation and an XOR logic operation for each bit of
For example, the CRC implementation for

Figure 3.
CRC implementation for

Figure 4.
CRC implementation for
4.2 CRC implementation by parallel processing
In this scheme,
The size of
The CRC of
The above expression explains how

Figure 5.
CRC implementation by parallel processing.
As a consequence, the number of variables that needs to be precomputed is
It is clear that the memory that needs to store the variables increases with the transport block size. To reduce the memory,
In this way, the variables that need to be precomputed include
As a consequence, the number of variables that needs to be precomputed is
4.3 CRC implementation by serial processing
In this scheme,
The size of
The CRC of
where

Figure 6.
CRC implementation by serial processing.
As a consequence, the number of variables that needs to be precomputed is
It is clear that the memory that needs to store the variables increases with the transport block size. To reduce the memory,
In this way, the variables that need to be precomputed include
As a consequence, the number of variables that needs to be precomputed is
4.4 The Sarwate algorithm
Sarwate proposes an algorithm based on the lookup table [19]. The detail and the proof of the algorithm can be found in [19]. The Sarwate algorithm is shown in Figure 7 [20]. The Sarwate algorithm uses a single table of 256 32-bit elements and reads the bits byte by byte. Modern processors usually access 32 bits or 64 bits at a time. As a consequence, the Sarwate algorithm is not efficient. Some schemes have been proposed in the literatures to solve this problem.

Figure 7.
The Sarwate algorithm.
4.5 The slicing-by-4 and slicing-by-8 algorithms
Kounavis and Berry propose the slicing-by-4 and slicing-by-8 algorithms based on the lookup table [20]. The detail and the proof of the algorithms can be found in [20]. The slicing-by-4 and slicing-by-8 algorithms are shown in Figures 8 and 9 respectively [20]. The slicing-by-4 algorithm uses four tables of 256 32-bit elements and reads 32 bits at a time. The slicing-by-8 algorithm uses eight tables of 256 32-bit elements and reads 64 bits at a time. The performance of the slicing-by-4 and slicing-by-8 algorithms is improved compared to the Sarwate algorithm.

Figure 8.
The slicing-by-4 algorithm.

Figure 9.
The slicing-by-8 algorithm.
5. Conclusion
In 5G NR, the transport block consists of up to million bits and the code block consists of up to 8448 bits. Due to the difference in the size of the transport block and the code block, the scheme of the CRC processing suitable for the transport block and that suitable for the code block are different. This chapter gives an overview of the CRC implementation in 5G NR.
References
- 1.
Erik D, Stefan P, Johan S. 4G: LTE/LTE-advanced for Mobile Broadband. 2nd ed. Oxford, UK: Elsevier; 2014 - 2.
Erik D, Stefan P, Johan S. 5G NR: The Next Generation Wireless Access Technology. London, UK: Elsevier; 2018 - 3.
3GPP TS 38.211, V15.3.0, NR; Physical channels and modulation (Release 15). 2018-09 - 4.
Hyoungju J, Sunho P, Jeongho Y, Younsun K, Juho L, Byonghyo S. Ultra-reliable and low-latency communications in 5G downlink: Physical layer aspects. IEEE Wireless Communications. 2018; 25 :124-130. DOI: 10.1109/MWC.2018.1700294 - 5.
Petar P, Kasper Floe T, Osvaldo S, Giuseppe D. 5G wireless network slicing for eMBB, URLLC, and mMTC: A communication-theoretic view. IEEE Access. 2018; 6 :55765-55779. DOI: 10.1109/ACCESS.2018.2872781 - 6.
3GPP TS 38.214, V15.3.0, NR; physical layer procedures for data (Release 15). 2018-09 - 7.
3GPP TS 38.212, V15.3.0, NR; multiplexing and channel coding (Release 15). 2018-09 - 8.
R1-1713458. Qualcomm Incorporated, CRC attachment. 3GPP TSG RAN Meeting #90; August 21–25, 2017; Prague, Czechia - 9.
Hao W. Hard decision of the zero a posteriori LLR in 5G NR. Internet Technology Letters. 2020; 3 :e146. DOI: 10.1002/itl2.146 - 10.
Yan S, Min SK. A table-based algorithm for pipelined CRC calculation. In: Proceedings of the IEEE International Conference on Communications (ICC’10); 23-27 May 2010; Cape Town, South Africa: IEEE; 2010. pp. 1-5 - 11.
Hao W, Fang W, Yuqing Y. A distributed CRC early termination scheme for high throughput QC-LDPC codes. In: Proceedings of International Conference on Wireless Communications and Signal Processing (WCSP) (WCSP ’18); 18-20 October 2018; Hangzhou, China: IEEE; 2018. pp. 1-5 - 12.
TongBi P, Charles Z. High-speed parallel CRC circuits in VLSI. IEEE Transactions on Communications. 1992; 40 :653-657. DOI: 10.1109/26.141415 - 13.
Richard EB. Algebraic Codes for Data Transmission. Cambridge, UK: Cambridge University Press; 2003 - 14.
Chao C, Keshab KP. High-speed parallel CRC implementation based on unfolding, pipelining, and retiming. IEEE Transactions on Circuits and Systems II: Express Briefs. 2006; 53 :1017-1021. DOI: 10.1109/TCSII.2006.882213 - 15.
Keshab KP. VLSI Digital Signal Processing Systems: Design and Implementation. New York, USA: John Wiley & Sons; 1999 - 16.
Ji HM, Killian E. Fast parallel CRC algorithm and implementation on a configurable processor. In: Proceedings of the IEEE International Conference on Communications (ICC’02); 28 April-2 May 2002. New York, USA: IEEE; 2002. pp. 1813-1817 - 17.
Hyeji K, Injun C, Wooseok B, Jong-yeol L, Ji-Hoon K. Distributed CRC architecture for high-radix parallel turbo decoding in LTE-advanced systems. IEEE Transactions on Circuits and Systems II: Express Briefs. 2015; 62 :906-910. DOI: 10.1109/TCSII.2015.2435131 - 18.
Hao W, Tao L, Jin X, Fang W. Parallel CRC architecture for broadband communication systems. Electronics Letters. 2017; 53 :1439-1441. DOI: 10.1049/el.2017.1029 - 19.
Sarwate DV. Computation of cyclic redundancy checks via table look-up. Communications of the ACM. 1988; 31 :1008-1014. DOI: 10.1145/63030.63037 - 20.
Michael EK, Frank LB. Novel table lookup-based algorithms for high-performance CRC generation. IEEE Transactions on Computers. 2008; 57 :1550-1560. DOI: 10.1109/TC.2008.85