Abstract
Low-density parity-check (LDPC) codes and convolutional Turbo codes are two of the most powerful error correcting codes that are widely used in modern communication systems. In a multi-mode baseband receiver, both LDPC and Turbo decoders may be required. However, the different decoding approaches for LDPC and Turbo codes usually lead to different hardware architectures. In this paper we propose a unified message passing algorithm for LDPC and Turbo codes and introduce a flexible soft-input soft-output (SISO) module to handle LDPC/Turbo decoding. We employ the trellis-based maximum a posteriori (MAP) algorithm as a bridge between LDPC and Turbo codes decoding. We view the LDPC code as a concatenation of n super-codes where each super-code has a simpler trellis structure so that the MAP algorithm can be easily applied to it. We propose a flexible functional unit (FFU) for MAP processing of LDPC and Turbo codes with a low hardware overhead (about 15% area and timing overhead). Based on the FFU, we propose an area-efficient flexible SISO decoder architecture to support LDPC/Turbo codes decoding. Multiple such SISO modules can be embedded into a parallel decoder for higher decoding throughput. As a case study, a flexible LDPC/Turbo decoder has been synthesized on a TSMC 90 nm CMOS technology with a core area of 3.2 mm2. The decoder can support IEEE 802.16e LDPC codes, IEEE 802.11n LDPC codes, and 3GPP LTE Turbo codes. Running at 500 MHz clock frequency, the decoder can sustain up to 600 Mbps LDPC decoding or 450 Mbps Turbo decoding.
Similar content being viewed by others
References
Abbasfar, A., & Yao, K. (2003). An efficient and practical architecture for high speed turbo decoders. IEEE Vehicular Technology Conference, 1, 337–341.
Alles, M., Vogt, T., & Wehn, N. (2008). FlexiChaP: A reconfigurable ASIP for convolutional, turbo, and LDPC code decoding. In 2008 5th International symposium on turbo codes and related topics (pp. 84–89).
Bahl, L., Cocke, J., Jelinek, F., & Raviv, J. (1974). Optimal decoding of linear codes for minimizing symbol error rate. IEEE Transactions on Information Theory IT-20, 284–287.
Berrou, C., Glavieux, A., & Thitimajshima, P. (1993). Near Shannon limit error-correcting coding and decoding: Turbo-codes. In IEEE Int. conf. commun. (pp. 1064–1070).
Bickerstaff, M., Davis, L., Thomas, C., Garrett, D., & Nicol, C. (2003). A 24Mb/s radix-4 logMAP turbo decoder for 3GPP-HSDPA mobile wireless. In IEEE Int. solid-state circuit conf. (ISSCC).
Blanksby, A. J., & Howland, C. J. (2002). A 690-mW 1-Gb/s 1024-b, rate-1/2 low-density parity-check code decoder. IEEE Journal of Solid-State Circuits, 37, 404–412.
Bougard, B., Giulietti, A., Derudder, V., Weijers, J. W., Dupont, S., Hollevoet, L., Catthoor, F., et al. (2003). A scalable 8.7-nJ/bit 75.6-Mb/s parallel concatenated convolutional (turbo-) codec. In IEEE International solid-state circuit conference (ISSCC).
Bougard, B., Giulietti, A., Van der Perre, L., & Catthoor, F. (2002). A class of power efficient VLSI architectures for high speed turbo-decoding. In IEEE conf. global telecommunications (Vol. 1, pp. 549–553).
Brack, T., Alles, M., Kienle, F., & Wehn, N. (2006). A synthesizable IP core for WIMAX 802.16e LDPC code decoding. In IEEE 17th Int. symp. personal, indoor and mobile radio communications (pp. 1–5).
Brack, T., Alles, M., Lehnigk-Emden, T., Kienle, F., Wehn, N., L’Insalata, N., et al. (2007). Low complexity LDPC code decoders for next generation standards. In Design, automation, and test in Europe (pp. 331–336). New York: ACM
Chen, J., Dholakia, A., Eleftheriou, E., Fossorier, M., & Hu, X. (2005). Reduced-complexity decoding of LDPC codes. IEEE Transactions on Communications, 53, 1288–1299.
Dai, Y., Yan, Z., & Chen, N. (2006). High-throughput turbo-sum-product decoding of QC LDPC codes. In 40th Annual conf. on info. sciences and syst. (Vol. 11, pp. 839– 8446).
Gallager, R. (1963). Low-density parity-check codes. Cambridge: MIT.
Gunnam, K. K., Choi, G. S., Yeary, M. B., & Atiquzzaman, M. (2007). VLSI architectures for layered decoding for irregular LDPC codes of WiMax. In IEEE International Conference on Communications (ICC) (pp. 4542–4547).
Hagenauer, J., Offer, E., & Papke, L. (1996). Iterative decoding of binary block and convolutional codes. IEEE Transactions on Information Theory, 42(2), 429–445.
Hagenauer, J., Offer, E., & Papke, L. (1996). Iterative decoding of binary block and convolutional codes. IEEE Transactions on Information Theory, 42, 429–445.
He, Z., Fortier, P., & Roy, S. (2006). Highly-parallel decoding architectures for convolutional turbo codes. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 14(10), 1147–1151.
Hocevar, D. (2004). A reduced complexity decoder architecture via layered decoding of LDPC codes. In IEEE workshop on signal processing systems (SIPS) (pp. 107–112).
Dielissen, J., & Huisken, J. (2000). State vector reduction for initialization of sliding windows MAP. In 2nd International symposium on turbo codes and related topics.
Lee, S. J., Shanbhag, N., & Singer, A. (2005). Area-efficient high-throughput MAP decoder architectures. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 13, 921–933.
Lin, Y., Mahlke, S., Mudge, T., & Chakrabarti, C. (2006). Design and implementation of turbo decoders for software defined radio. In IEEE SIPS (pp. 22–27).
Lu, J., & Moura, J. (2003). Turbo like decoding of LDPC codes. In IEEE Int. conf. on magnetics (pp. DT-11).
MacKay, D. J. C. (1998). Turbo codes are low density parity check codes. Available online, http://www.inference.phy.cam.ac.uk/mackay/turbo-ldpc.pdf.
Mansour, M. M., & Shanbhag, N. R. (2003). High-throughput LDPC decoders. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 11, 976–996.
Masera, G., Piccinini, G., Roch, M., & Zamboni, M. (1999). VLSI architecture for turbo codes. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 7, 369–3797.
Masera, G., Quaglio, F., & Vacca, F. (2005). Finite precision implementation of LDPC decoders. In IEEE proc. commun. (Vol. 152, pp. 1098–1102).
Mohsenin, T., Truong, D., & Baas, B. (2009). Multi-split-row threshold decoding implementations for LDPC codes. In IEEE International symposium on circuits and systems (ISCAS’09) (pp. 2449–2452).
Niktash, A., Parizi, H., Kamalizad, A., & Bagherzadeh, N. (2008). RECFEC: A reconfigurable FEC processor for Viterbi, turbo, Reed-Solomon and LDPC coding. In IEEE Wireless communications and networking conference (WCNC) (pp. 605–610).
Oh, D., & Parhi, K. (2006). Low complexity implementations of sum-product algorithm for decoding low-density parity-check codes. In IEEE Workshop on signal processing systems (SIPS) (pp. 262–267).
Prescher, G., Gemmeke, T., & Noll, T. (2005). A parametrizable low-power high-throughput turbo-decoder. In IEEE Int. conf. acoustics, speech, and signal processing (Vol. 5, pp. 25–28).
Robertson, P., Villebrun, E., & Hoeher, P. (1995). A comparison of optimal and sub-optimal MAP decoding algorithm operating in the log domain. In IEEE Int. conf. commun. (ICC) (pp. 1009–1013).
Rovini, M., Gentile, G., Rossi, F., & Fanucci, L. (2007). A scalable decoder architecture for IEEE 802.11n LDPC codes. In IEEE global telecommunications conference (pp. 3270–3274).
Salmela, P., Sorokin, H., & Takala, J. (2008). A programmable Max-Log-MAP turbo decoder implementation. Hindawi VLSI Design, 2008, 636–640.
Scarpellino, M., Singh, A., Boutillon, E., & Masera, G. (2008). Reconfigurable architecture for LDPC and turbo decoding: A NoC case study. In IEEE 10th International symposium on spread spectrum techniques and applications (pp. 671–676).
Shih, X. Y., Zhan, C. Z., Lin, C. H., & Wu, A. Y. (2008). An 8.29 mm2 52 mW multi-mode LDPC decoder design for mobile WiMAX system in 0.13 m CMOS process. IEEE Journal of Solid-State Circuits, 43, 672–683.
Sun, J., & Takeshita, O. (2005). Interleavers for turbo codes using permutation polynomials over integer rings. IEEE Transactions on Information Theory, 51, 101–119.
Sun, Y., & Cavallaro, J. R. (2008). A low-power 1-Gbps reconfigurable LDPC decoder design for multiple 4G wireless standards. In IEEE International SOC conference (pp. 367–370).
Sun, Y., & Cavallaro, J. R. (2008). Unified decoder architecture For LDPC/Turbo codes. In IEEE Workshop on Signal Processing Systems (SIPS) (pp. 13–18).
Sun, Y., Karkooti, M., & Cavallaro, J. R. (2006). High throughput, parallel, scalable LDPC encoder/decoder architecture for OFDM systems. In IEEE workshop on design, applications, integration and software (pp. 39–42).
Sun, Y., Karkooti, M., & Cavallaro, J. R. (2007). VLSI decoder architecture for high throughput, variable block-size and multi-rate LDPC codes. In IEEE International symposium on circuits and systems (ISCAS) (pp. 2104–2107).
Sun, Y., Zhu, Y., Goel, M., & Cavallaro, J. R. (2008). Configurable and scalable high throughput turbo decoder architecture for multiple 4G wireless standards. In IEEE International conference on application-specific systems, architectures and processors (ASAP) (pp. 209–214).
Thul, M. J., Gilbert, F., Vogt, T., Kreiselmaier, G., & Wehn, N. (2005). A scalable system architecture for high-throughput turbo-decoders. Journal of VLSI Signal Processing, 39, 63–77.
Viterbi, A. (1998). An intuitive justification and a simplified implementation of the MAP decoder for convolutional codes. IEEE Journal on Selected Areas in Communications, 16, 260–264.
Wang, Z., Chi, Z., & Parhi, K. (2002). Area-efficient high-speed decoding schemes for turbo decoders. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 10, 902–912.
Wang, Z., & Cui, Z. (2007). Low-complexity high-speed decoder design for quasi-cyclic LDPC codes. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 15, 104–114.
Zhang, J., & Fossorier, M. (2002). Shuffled belief propagation decoding. In Asilomar Conference on signals, systems and computers (Vol. 1, pp. 8–15).
Zhang, K., Huang, X., & Wang, Z. (2009). High-throughput layered decoder implementation for quasi-cyclic LDPC codes. IEEE Journal on Selected Areas in Communications, 27(6), 985–994.
Zhang, T., Wang, Z., & Parhi, K. (2001). On finite precision implementation of low density parity check codes decoder. In IEEE Int. symposium on circuits and systems (ISCAS) (Vol. 4, pp. 202–205).
Zhong, H., & Zhang, T. (2005). Block-LDPC: A practical LDPC coding system design approach. IEEE Transactions on Circuits and Systems I: Fundamental Theory and Applications, 52(4), 766–775 (see also IEEE Transactions on Circuits and Systems I: Regular Papers).
Zhu, Y., & Chakrabarti, C. (2009). Architecture-aware LDPC code design for multiprocessor software defined radio systems. In IEEE transactions on signal processing (Vol. 57, pp. 3679–3692).
Acknowledgements
The authors would like to thank Nokia, Nokia Siemens Networks (NSN), Xilinx, Texas Instruments (TI), and US National Science Foundation (under grants CCF-0541363, CNS-0551692, CNS-0619767, CNS-0923479, and EECS-0925942) for their support of the research.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Sun, Y., Cavallaro, J.R. A Flexible LDPC/Turbo Decoder Architecture. J Sign Process Syst 64, 1–16 (2011). https://doi.org/10.1007/s11265-010-0477-6
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11265-010-0477-6