Efficient Bit-Channel Reliability Computation for Multi-Mode Polar Code Encoders and Decoders

Similar documents
Improved Successive Cancellation Flip Decoding of Polar Codes Based on Error Distribution

SC-Fano Decoding of Polar Codes

Low-Complexity Puncturing and Shortening of Polar Codes

Polar Code Construction for List Decoding

Permuted Successive Cancellation Decoder for Polar Codes

Construction and Decoding of Product Codes with Non-Systematic Polar Codes

Short Polar Codes. Peihong Yuan. Chair for Communications Engineering. Technische Universität München

Practical Polar Code Construction Using Generalised Generator Matrices

Minimum-Distance Based Construction of Multi-Kernel Polar Codes

ECC for NAND Flash. Osso Vahabzadeh. TexasLDPC Inc. Flash Memory Summit 2017 Santa Clara, CA 1

Polar Coding for the Large Hadron Collider: Challenges in Code Concatenation

RCA Analysis of the Polar Codes and the use of Feedback to aid Polarization at Short Blocklengths

β-expansion: A Theoretical Framework for Fast and Recursive Construction of Polar Codes

THE polar code of [1] achieves capacity of the symmetric

On Bit Error Rate Performance of Polar Codes in Finite Regime

Compound Polar Codes

Generalized Tree Architecture with High-Radix Processing for an SC Polar Decoder

Cluster Pairwise Error Probability and Construction of Parity-Check-Concatenated Polar Codes

POLAR codes have been proven to achieve the symmetric. Reduce the Complexity of List Decoding of Polar Codes by Tree-Pruning

Dynamic-SCFlip Decoding of Polar Codes

A COMBINED 16-BIT BINARY AND DUAL GALOIS FIELD MULTIPLIER. Jesus Garcia and Michael J. Schulte

Extended MinSum Algorithm for Decoding LDPC Codes over GF (q)

High-Speed Low-Power Viterbi Decoder Design for TCM Decoders

Polar Codes: Graph Representation and Duality

Enhanced belief propagation decoding of polar codes by adapting the parity-check matrix

SIPCom8-1: Information Theory and Coding Linear Binary Codes Ingmar Land

Analytical Performance of One-Step Majority Logic Decoding of Regular LDPC Codes

Iterative Encoding of Low-Density Parity-Check Codes

Flexible and Low-Complexity Encoding and Decoding of Systematic Polar Codes

POLAR CODES FOR ERROR CORRECTION: ANALYSIS AND DECODING ALGORITHMS

FEEDBACK does not increase the capacity of a discrete

Some Aspects of Hardware Implementation of LDPC Codes

Coding theory: Applications

Construction of low complexity Array based Quasi Cyclic Low density parity check (QC-LDPC) codes with low error floor

An Introduction to Low Density Parity Check (LDPC) Codes

An Efficient Algorithm for Finding Dominant Trapping Sets of LDPC Codes

THIS paper is aimed at designing efficient decoding algorithms

Girth Analysis of Polynomial-Based Time-Invariant LDPC Convolutional Codes

POLAR codes, which are proposed in [1], provably achieve

UNIVERSITI TENAGA NASIONAL. College of Information Technology

Chapter 3 Linear Block Codes

Information Theoretic Imaging

UNIT I INFORMATION THEORY. I k log 2

The E8 Lattice and Error Correction in Multi-Level Flash Memory

Research Article A Parallel Decoding Algorithm for Short Polar Codes Based on Error Checking and Correcting

Compression and Coding

Construction of Polar Codes with Sublinear Complexity

HARDWARE IMPLEMENTATION OF FIR/IIR DIGITAL FILTERS USING INTEGRAL STOCHASTIC COMPUTATION. Arash Ardakani, François Leduc-Primeau and Warren J.

16.36 Communication Systems Engineering

ECE Information theory Final (Fall 2008)

Lower Bounds on the Graphical Complexity of Finite-Length LDPC Codes

Run-length & Entropy Coding. Redundancy Removal. Sampling. Quantization. Perform inverse operations at the receiver EEE

Serially Concatenated Polar Codes

Performance of Multi Binary Turbo-Codes on Nakagami Flat Fading Channels

Soft-Input Soft-Output Sphere Decoding

A Real-Time Wavelet Vector Quantization Algorithm and Its VLSI Architecture

Performance of Polar Codes for Channel and Source Coding

Graph-based codes for flash memory

Successive Cancellation Decoding of Single Parity-Check Product Codes

Pre-sorted Forward-Backward NB-LDPC Check Node Architecture

Performance Analysis and Code Optimization of Low Density Parity-Check Codes on Rayleigh Fading Channels

Introduction to Low-Density Parity Check Codes. Brian Kurkoski

Branching MERA codes: a natural extension of polar codes

Non-Linear Turbo Codes for Interleaver-Division Multiple Access on the OR Channel.

Multi-Kernel Polar Codes: Proof of Polarization and Error Exponents

Reduced Complexity Sphere Decoding for Square QAM via a New Lattice Representation

VLSI Architecture for Layered Decoding of QC-LDPC Codes With High Circulant Weight

Median architecture by accumulative parallel counters

Flip-N-Write: A Simple Deterministic Technique to Improve PRAM Write Performance, Energy and Endurance. Presenter: Brian Wongchaowart March 17, 2010

Construction of Protographs for QC LDPC Codes With Girth Larger Than 12 1

A Simplified Min-Sum Decoding Algorithm. for Non-Binary LDPC Codes

Adaptive Cut Generation for Improved Linear Programming Decoding of Binary Linear Codes

Advanced Hardware Architecture for Soft Decoding Reed-Solomon Codes

APPLICATIONS. Quantum Communications

ELCT201: DIGITAL LOGIC DESIGN

IN this paper, we consider the capacity of sticky channels, a

Single-Gaussian Messages and Noise Thresholds for Low-Density Lattice Codes

Code design: Computer search

Lecture 4 : Introduction to Low-density Parity-check Codes

1 1 0, g Exercise 1. Generator polynomials of a convolutional code, given in binary form, are g

where L(y) = P Y X (y 0) C PPM = log 2 (M) ( For n b 0 the expression reduces to D. Polar Coding (2)

Turbo Codes for Deep-Space Communications

Low complexity state metric compression technique in turbo decoder

Low-Density Parity-Check Code Design Techniques to Simplify Encoding

PAPER A Low-Complexity Step-by-Step Decoding Algorithm for Binary BCH Codes

Chapter 4. Combinational: Circuits with logic gates whose outputs depend on the present combination of the inputs. elements. Dr.

Chapter 7: Channel coding:convolutional codes

Generalized Partial Orders for Polar Code Bit-Channels

VHDL Implementation of Reed Solomon Improved Encoding Algorithm

An analysis of the computational complexity of sequential decoding of specific tree codes over Gaussian channels

Linear Block Codes. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay

A Low-Error Statistical Fixed-Width Multiplier and Its Applications

Decoding of LDPC codes with binary vector messages and scalable complexity

CHAPTER 3 LOW DENSITY PARITY CHECK CODES

Introduction to Convolutional Codes, Part 1

A High-Yield Area-Power Efficient DWT Hardware for Implantable Neural Interface Applications

Improved Multiple Feedback Successive Interference Cancellation Algorithm for Near-Optimal MIMO Detection

A Short Length Low Complexity Low Delay Recursive LDPC Code

Part 1: Digital Logic and Gates. Analog vs. Digital waveforms. The digital advantage. In real life...

Advances in Error Control Strategies for 5G

Transcription:

Efficient Bit-Channel Reliability Computation for Multi-Mode Polar Code Encoders and Decoders Carlo Condo, Seyyed Ali Hashemi, Warren J. Gross arxiv:1705.05674v1 [cs.it] 16 May 2017 Abstract Polar codes are a family of capacity-achieving errorcorrecting codes, and they have been selected as part of the next generation wireless communication standard. Each polar code bit-channel is assigned a reliability value, used to determine which bits transmit information and which parity. Relative reliabilities need to be known by both encoders and decoders: in case of multi-mode systems, where multiple code lengths and code rates are supported, the storage of relative reliabilities can lead to high implementation complexity. In this work, observe patterns among code reliabilities. We propose an approximate computation technique to easily represent the reliabilities of multiple codes, through a limited set of variables and update rules. The proposed method allows to tune the trade-off between reliability accuracy and implementation complexity. An approximate computation architecture for encoders and decoders is designed and implemented, showing 50.7% less area occupation than storage-based solutions, with less than 0.05 db error correction performance degradation. I. INTRODUCTION Polar codes are a class of error-correcting codes proposed in [1], that can achieve capacity with a low-complexity encoding and decoding. Their construction exploits the channel polarization effect: this means that some of the channels through which codeword bits are transmitted (called bit-channels) are more reliable than others. Information bits are transmitted through the most reliable bit-channels, while the least reliable are set to a fixed value (frozen bits): the relative order of reliabilities is dependent on the code length and on the signal-to-noise ratio (SNR) for which the code has been constructed. The number and position of information bits in a polar codeword needs to be known by both the encoder and the decoder. For encoders, information bits need to be correctly interleaved with frozen bits before encoding, and frozen bits need to be re-set halfway through systematic encoding [2]. Decoders targeting any decoding algorithm need to be aware of the bit arrangement as well [1], [3] [6]. Hardware implementations of encoders and decoders usually consider the frozen-information bit pattern as an input, and thus do not evaluate its storage or calculation cost. Many implementations of encoders and decoders target a single or a limited number of combinations of code lengths and rates, and a single SNR [3], [7] [10]: thus, it is possible to store the frozen-information bit pattern for each supported code. However, practical applications demand the support of a possibly large number of code lengths and rates, and various SNRs. Multi-mode decoders, and thus encoders, need to grant an even higher degree of flexibility than what can currently be achieved [11]. Within this framework, the direct storage of the bit pattern for each supported case can lead to unbearable implementation costs. A few recent works address the problem of easy construction of polar code relative reliabilities. Partial orders in the reliability of polar code bit-channels were noticed in [12], while a theoretical framework based on β-expansion for fast polar code construction has been proposed in [13]. While these approaches greatly reduce the computation complexity of the relative reliabilities, the direct implementation cost is still very high. In this work, we propose an approximate method to compute the relative reliability of polar codes, that can be implemented with considerably lower complexity than the direct storage of all values, along with a flexible architecture that can be used in both encoders and decoders. The trade-off between implementation complexity and degree of approximation can be tuned according to the application constraints. The rest of the paper is structured as follows. Section II briefly introduces polar codes. Section III describes the observed patterns in reliabilities and proposes the approximate computation method. Section IV details a case study and evaluates the impact of various approximations on the error-correction performance, whereas Section V details an architecture for the implementation of the proposed technique, and provides implementation results. Finally, Section VI draws the conclusions. II. POLAR CODES A polar code P(N, K) is a linear block code of length N = 2 n and rate K/N. It is constructed as the concatenation of two polar codes of length N/2, and can be expressed as the matrix multiplication x = ug n (1) where u = {u 0, u 1,..., u N 1 } is the input vector, x = {x 0, x 1,..., x N 1 } is the codeword, and the generator matrix G n is the n-th Kronecker product of the polarizing matrix G = [ ] 1 0 1 1. The polar code structure allows to sort the N- bit input vector u according to the reliability of the bitchannels. The reliabilities associated with the bit-channels can be determined either by using the Bhattacharyya parameter [1], or through the direct use of probability function [14]. The K information bits are assigned to the most reliable bit-channels of u, while the remaining N K (frozen bits) are set to a predetermined value, usually 0. Codeword x is transmitted through the channel, and the decoder receives the Logarithmic Likelihood Ratio (LLR) vector y = {y 0, y 1,..., y N 1 }.

0 0 0 u 3 0 u 5 x 0 x 1 x 2 x 3 x 4 x 5 s + 1 s s 1 α β α l β l β r α r Fig. 3: Message passing in tree graph representation of SC decoding. u 6 u 7 Fig. 1: Polar code encoding example for P(8, 4) and {u 0, u 1, u 2, u 4 } F. s = 4 s = 3 s = 2 s = 1 s = 0 Fig. 2: Binary tree example for P(16, 8). White circles at s = 0 are frozen bits, black circles at s = 0 are information bits. The encoding process in Equation (1) can be represented as in Fig. 1, that shows a polar code encoding example for P(8, 4) where the frozen bits set F contains {u 0, u 1, u 2, u 4 }. Polar codes have been defined in [1] together with the successive cancellation (SC) decoder: SC-based decoding process can be represented as a full binary tree search, in which the tree is explored depth first, with priority to the left branches. Fig. 2 shows an example of SC decoding tree for P(16, 8), where nodes at stage s contain 2 s bits. White leaf nodes are frozen bits, while black leaf nodes are information bits. The message passing criteria among tree nodes is detailed in Fig. 3. LLR values α are sent from parents to children, that in return send back the hard bit estimates β. Left branch messages α l and right branch messages α r can be computed in a hardware-friendly way [15] as α l i =sgn(α i )sgn(α i+2 s 1) min( α i, α i+2 s 1 ) (2) α r i =α i+2 s 1 + (1 2β l i)α i, (3) while β is computed as { βi l β i = βr i, if i < 2s 1 βi 2 r, otherwise, s 1 where is the bitwise XOR. Due to data dependencies, SC computations need to follow a particular schedule. Every node receives α first, then computes α l, receives β l, computes α r, x 6 x 7 (4) receives β r, and finally sends back β. At leaf nodes, β i is set as the estimated bit û i : { 0, if i F or α i 0, û i = (5) 1, otherwise. SC decoding suffers from mediocre error correction performance when applied to moderate and short code lengths. The SC-list (SCL) algorithm described in [4] improves the error correction performance by storing a set of L codeword candidates, that gets updated after every bit estimation. III. APPROXIMATE RELIABILITY COMPUTATION Given a polar code P(N, K), let us define the reliability vector p as the N-length sequence of elements p i, where 0 i < N. Each element p i represents the reliability of bit-channel i, where p i = N 1 is the least reliable bit and p i = 0 is the most reliable bit. Index i = 0 refers to the leftmost bit on the decoding tree, while i = N 1 refers to the rightmost. It is possible to identify regular patterns in the reliability vectors of polar codes, both within the same p and among vectors constructed for polar codes with different lengths. These patterns allow to efficiently describe p through variables, update rules and scaling. In this section, we describe some of the patterns that we have identified and used to derive a hardware-efficient approximate reliability computation technique. We focused on codes constructed for the AWGN channel with the method used in [14], targeting an SNR of around 6 db. However, the proposed method can be easily extended to the reliabilities of codes constructed for other SNRs. We define here some variables that are going to be useful to explain the proposed method. Let us divide the reliability vector p in two halves, p L and p H, where p L contains all p i for 0 i < N/2, and p H the other ones. We call a reliability byte p 8 L a series of eight p i belonging to p L, and p 8 H one belonging to p H. To identify different reliability bytes, we assign an additional subscript to p 8 L and p8 H, as in p8 B1L and p 8 E3H. A. Intra-code reliability patterns Observing p L from i = 0, it is possible to see how, generally, p i tends to decrease (i.e. becomes more reliable) as i increases: this is because the first bits tend to be the least reliable of the code. In the same way, in p H, starting at i = N 1, p i tends to increase as i decreases, since the last bits are usually the most reliable.

N = 16 N = 32 p 8 B1H N = 64 p 8 C1L p 8 C2L p 8 C2H p 8 C2H p 8 B1H Fig. 4: Reliability bytes reusage scheme through different code lengths. TABLE I: Variable sequence in p for N = 32. Reliability byte p 8 B1H Composition sequence NNNZNZZY NZZY XY Y ENDL ENDH LLILIIH LIIHIHHH Both p L and p H can be expressed as a series of variables associated to update rules. As an example, let us consider p for N = 8: p = {7, 6, 5, 3, 4, 2, 1, 0} where p L = {7, 6, 5, 3} and p H = {4, 2, 1, 0}. We can write these vectors as, for example: p L = {N 1, N 2, N 3, ENDL}, p H = {ENDH, H + 2, H + 1, H}. As the code length increases, the regularity of the reliabilities decreases, and either a higher number of variables are needed to represent p exactly, or more irregular update patterns need to be used. For example, for N = 16: p = {15, 14, 13, 10, 12, 9, 8, 4, 11, 7, 6, 3, 5, 2, 1, 0}. A possible representation of p L and p H can be: p L = {N 1, N 2, N 3, Z, N 4, Z 1, Z 2, ENDL}, p H = {ENDH, I + 2, I + 1, H + 3, I, H + 2, H + 1, H}. With larger code lengths, we can derive an approximate p by limiting the number of variables used, and assigning a single, regular update pattern to each variable. As an example, Table I reports the variable allocation within p L = {, p8 B1L } and p H = {p 8 B1H, p8 A1H }. An initialization value and a single update rule are selected for each variable: every time that a variable is encountered, the previous value is substituted with the updated one. For example, variable Z is initialized as 25, and its update rule is 1. Thus, p 3 = 25, p 5 = 24, p 6 = 23, p 9 = 22 and p 10 = 21. Moreover, the variable sequence within different reliability bytes of the same code can repeat itself, like in case of the second and third byte of p H for N 64. B. Inter-code reliability patterns Having defined the code reliability as in Section III-A, it is possible to observe the evolution of p from a smaller code to larger codes. A first observation can be made towards the reuse of p L and p H of a length-n code as part of p L and p H of a length-2n code. Fig. 4 shows that the variable sequence found in p L for length N, can approximate the first N/2 positions of p L for length 2N. A mirrored observation can be made for p H. Different initialization values and different update rules will be necessary when the code length is changed, but the same variable sequence can be used. The precision with which variable sequences of lower-length codes can approximate part of larger-length code sequences depends on the number of variables. A high number of variables will guarantee very good precision and will allow to reuse a particular variable sequence for much larger codes. On the other hand, a large number of variable results in a higher degree of implementation complexity. The frequency of occurrence and positioning of a variable within p can often be computed exactly. For example, variables N and H in Table I will be encountered every δ i = 2δ i 1 + 1 variables. Moreover, the initialization values of many variables can be expressed in function of the code length. Variable I can be initialized as log 2 (N) + 1, while ENDL = log 2 (N) and L 6 log 2 (N) 8. We thus exploit the observed intra- and inter-code reliability patterns to propose an efficient way to store code reliabilities in decoder implementations. A single variable sequence p is selected, targeting the maximum code length supported. Shorter code lengths can be derived by considering only some p 8, as in Fig. 4. To each variable is assigned an initialization value and an update value for each supported code length. The complete p can be constructed sequentially, starting from i = 0 for p L and from i = N 1 for p H. The code structure derived for a certain code length can be extended to that targeting different SNR points by a limited number of adhoc p 8 substitutions. The selection of variables and update rules can be helped by theoretical construction approaches like [13]. The technique proposed in our work is orthogonal to the construction method. IV. SIMULATIONS AND PERFORMANCE As a proof of concept, we provide the full construction method of the approximate reliability for codes of length 8 to 256. Table II lists the variable sequences for the reliability

FER 10 0 10 1 10 2 10 3 10 4 10 5 10 6 0 2 4 6 SNR [db] SC SCL2-CRC8 SCL8-CRC8 10-var SC 10-var SCL2-CRC8 10-var SCL8-CRC8 Fig. 5: FER for P(64, 32), for original reliabilities and approximated reliabilities with 10 variables. FER 10 0 10 1 10 2 10 3 10 4 10 5 0 1 2 3 4 5 SNR [db] SC 24-var SC 32-var SC SCL8-CRC8 24-var SCL8-CRC8 32-var SCL8-CRC8 Fig. 6: FER for P(256, 128), for original reliabilities and approximated reliabilities with 24 and 32 variables. bytes needed to construct codes of with maximum code length of 256. The boldfaced variables in the low (high) half are substituted with ENDL (ENDH) when they represent p N/2 1 (p N/2 ). Initialization and update values for all considered code lengths are listed in Table III. The choice of variable placement and their total number is one of the possible schemes: a larger number of variables will lead to more precise representation of p, but will lead to higher storage requirements. The error-correction performance of the approximated reliability has been evaluated under both SC and SCL decoding. Fig. 5 shows the frame error rate (FER) for the P(64, 32) polar code, both with the original reliabilities and the approximated ones according to Table II-III. The degradation in FER brought TABLE II: Variable sequence in p for 8 N 256. Reliability byte Composition sequence NNNZNZZY NZZY XY Y W p 8 C1L NZXY XY Y W p 8 C2L XY Y W Y W W V p 8 D1L NXXY 2 XY 2 Y 2 W p 8 D2L XY 2 Y 2 W Y 2 W W V p 8 D3L XY 2 Y 2 W Y 2 W W V p 8 D4L Y 2 W W V W V V U p 8 E1L NY 3 Y 3 Y 3 Y 3 T T W 2 p 8 E2L Y 3 T T W 2 T W 2 W 2 V 2 p 8 E3L Y 3 T T W 2 T SSV 2 p 8 E4L T SSV 2 SV 2 V 2 U p 8 E5L Y 3 T T ST SSV 2 p 8 E6L T SSV 2 SV 2 V 2 U p 8 E7L T SSV 2 SV 2 V 2 U p 8 E8L SV 2 V 2 UV 2 UU ENDL p 8 E8H ENDH QQQQQQM 2 p 8 E7H QO 2 O 2 M 2 O 2 M 2 M 2 L 2 p 8 E6H QO 2 O 2 O 2 O 2 M 2 M 2 L 2 p 8 E5H O 2 M 2 M 2 L 2 M 2 L 2 L 2 I p 8 E4H QO 2 O 2 M 2 O 2 M 2 M 2 L 2 p 8 E3H O 2 M 2 M 2 L 2 M 2 L 2 L 2 I p 8 E2H O 2 M 2 M 2 L 2 M 2 L 2 L 2 I p 8 E1H M 2 L 2 L 2 IL 2 IIH p 8 D4H QOOMOMML p 8 D3H OMMLMLLI p 8 D2H OMMLMLLI p 8 D1H MLLILIIH p 8 C2H OMMLMLLI p 8 C1H MLLILIIH p 8 B1H MLLILIIH LIIHIHHH by the approximation is negligible for both SC and SCL (L = 2 and L = 8): thus, an approximation with 10 variables guarantees sufficient precision. Fig. 6 shows the same type of result for P(256, 128): we can see that the proposed 24- variable approximation causes significant FER degradation, particularly severe with SC. Increasing the number of variables to 32 allows a more precise approximation of p: the red curves show a 0.05 db FER degradation with respect to the ideal case. It is worth noting that the codes considered in Fig. 5-6 are rate 1/2, and thus more susceptible to the imprecisions of the approximation method. In fact, in general, the lowest and highest reliabilities are easy to represent with a regular structure, while the middle reliabilities are more complex. Thus, with high and low rate codes, the demarcation line between frozen and information bits will be closer to well-approximated reliabilities, and thus less likely to cause degradation. V. RELIABILITY COMPUTATION ARCHITECTURE Reliability vectors need to be stored both at the encoder and the decoder side: multiple code lengths and rates can lead to high memory requirements. Frozen bit sequences require less memory to be stored, but a single reliability vector is sufficient

TABLE III: Variable initial values and update values for p, 8 N 256. Variable N Initial Value Update N 8 256 N 1 1 Z 16 256 N 7 1 32 15 1 Y 64 43 1.5 128 108 2 256 233 2.5 128 95 2 Y 2 256 219 2.5 Y 3 256 232 4 32 19 X 64 50 1.5 128 113 2 256 241 2 64 21 1 W 128 70 2 256 204 5 W 2 256 174 6 V 128 30 2 256 140 10 V 2 256 113 3 U 256 47 3 T 256 204 3.5 S 256 145 3 H 8 256 0 +1 I 16 256 log 2 (N) + 1 +1 32 16 +1 L 64 22 +1 128 28 +1.5 256 35 +1.5 L 2 256 53 +2 64 40 +2 M 128 61 +2 256 79 +2 M 2 256 95 +3.5 O 128 91 +3 256 131 +5 O 2 256 143 +4 Q 256 192 +3 ENDL 8 256 I 1 8 4 16 11 ENDH 32 26 64 56 128 116 256 238 for all code rates, while each frozen bit sequence identifies a single P(N, K). A frozen bit sequence is easily generated by comparing each reliability with a threshold value: if p i is higher than the threshold, then bit i is among the least reliable bit-channels, and is used as a frozen bit. The proposed approximated reliability computation method can be efficiently implemented in hardware. Figure 7 depicts the architecture at the encoder or decoder side: two of them Initialization Memory Update Memory N, start count Structure Memory Current Variables Fig. 7: Reliability computation architecture. Output are instantiated, one for p L and one for p H. The Structure memory stores the variable sequence, as shown in Table II. Each variable is represented with 5 bits, sufficient to represent up to 2 5 variable types. The Initialization memory holds the 8-bit initialization values for all combinations of variables and code lengths in p L, and the Update memory the relative 5-bit update rules. In our case study, these two memories hold 38 values for p L and 30 values for p H in the 24-variable case. Int the 32-variable case, 43 values are needed for p L and 35 for p H. A counter from 0 to N 1 2 addresses the Structure memory: the output variable type, together with the code length, selects the correct variable and update values. The current variables memory holds the update value of all variable types used in the relative p half, appropriately initialized at the beginning of the computation. All memories can be reconfigured through external inputs. The Update memory stores fixed point values with four integer bits and one decimal bit, while the current variable values are integers. Before the summation, the selected variable is left-shifted of one position, and the result is right-shifted back before the current variables memory is updated. Along with the proposed architecture, we have designed a baseline architecture for comparative purposes. If no on-line construction technique is applied, the reliability vector for each supported code must be stored. Thus, the baseline considers a total 504 8-bit memory elements, along with the upload and reading logic. Both architectures output two reliabilities at each clock cycle. Table IV reports synthesis results on 65 nm CMOS technology for the storage-based baseline architecture, along with the 24-variable and the 32-variable approximated architectures, supporting codes of length 8 to 256. The 24-var and 32-var results are relative to two instances of the architecture shown in Fig. 7, so that both p L and p H can be computed. With a target frequency of 500 MHz, the area occupation A of the 24-var architecture is 54.4% less than that of the baseline. The multiplexing logic and adders account for a larger part of the area occupation than the baseline, reducing the percentage of memory elements A mem. The 32-var architecture extra memory requirements and logic lead to an area reduction

TABLE IV: Implementation results for reliability storage and computation in CMOS 65 nm technology. Full storage 24-var 32-var f [MHz] 500 500 500 A [µm 2 ] 52817 24103 26039 A mem [µm 2 ] 41249 (78.1%) 17584 (73%) 18941 (72.7%) A red 54.4% 50.7% f [MHz] 1000 1000 1000 A [µm 2 ] 52885 33799 35135 A mem [µm 2 ] 41252 (78.0%) 17871 (52.9%) 19200 (54.6%) A red 36.1% 33.6% [10] C. Xiong, J. Lin, and Z. Yan, Symbol-decision successive cancellation list decoder for polar codes, IEEE Trans. Signal Process., vol. 64, no. 3, pp. 675 687, February 2016. [11] S. A. Hashemi, C. Condo, and W. J. Gross, A fast polar code list decoder architecture based on sphere decoding, IEEE Trans. Circuits Syst. I, vol. 63, no. 12, pp. 2368 2380, December 2016. [12] C. Schurch, A partial order for the synthesized channels of a polar code, in 2016 IEEE International Symposium on Information Theory (ISIT), July 2016, pp. 220 224. [13] G. He, J.-C. Belfiore, X. Liu, Y. Ge, R. Zhang, I. Land, Y. Chen, R. Li, J. Wang, G. Yang, and W. Tong, β-expansion: A Theoretical Framework for Fast and Recursive Construction of Polar Codes, ArXiv e-prints, Apr. 2017. [14] I. Tal and A. Vardy, How to construct polar codes, IEEE Trans. Inf. Theory, vol. 59, no. 10, pp. 6562 6582, October 2013. [15] C. Leroux, A. Raymond, G. Sarkis, and W. Gross, A semi-parallel successive-cancellation decoder for polar codes, IEEE Trans. Signal Process., vol. 61, no. 2, pp. 289 299, January 2013. A red of 50.7%. When the target frequency is increased to 1 GHz, A red decreases for both approximated architectures. This is due to the longer critical path that the reliability computation entails, that leads to higher synthesis effort and logic duplication. VI. CONCLUSION In this work, we have proposed an approximate approach to polar code reliability computation that can efficiently be implemented in hardware encoders and decoders. Regular patterns within the reliability vector of a code and among those of different codes are observed, expressing the reliability vectors as a sequence of variables and update rules. Simulation show how the proposed method can be tuned to strike the desired trade-off between accuracy and ease of implementation. A low-complexity architecture is designed for various degrees of approximation, implemented and compared to a storage-based solution, showing 50.7% less area occupation with < 0.05 db FER loss. REFERENCES [1] E. Arıkan, Channel polarization: A method for constructing capacityachieving codes for symmetric binary-input memoryless channels, IEEE Trans. Inf. Theory, vol. 55, no. 7, pp. 3051 3073, July 2009. [2] G. Sarkis, I. Tal, P. Giard, A. Vardy, C. Thibeault, and W. J. Gross, Flexible and low-complexity encoding and decoding of systematic polar codes, IEEE Transactions on Communications, vol. 64, no. 7, pp. 2732 2745, July 2016. [3] G. Sarkis, P. Giard, A. Vardy, C. Thibeault, and W. Gross, Fast polar decoders: Algorithm and implementation, IEEE J. Sel. Areas Commun., vol. 32, no. 5, pp. 946 957, May 2014. [4] I. Tal and A. Vardy, List decoding of polar codes, IEEE Trans. Inf. Theory, vol. 61, no. 5, pp. 2213 2226, May 2015. [5] S. A. Hashemi, C. Condo, and W. J. Gross, Simplified successivecancellation list decoding of polar codes, in IEEE Int. Symp. on Inform. Theory, July 2016, pp. 815 819. [6], Fast simplified successive-cancellation list decoding of polar codes, in IEEE Wireless Commun. and Netw. Conf., to appear 2017. [7] P. Giard, G. Sarkis, C. Thibeault, and W. J. Gross, 237 Gbit/s unrolled hardware polar decoder, Electronics Letters, vol. 51, no. 10, pp. 762 763, 2015. [8], Multi-mode unrolled architectures for polar decoders, IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 63, no. 9, pp. 1443 1453, Sept 2016. [9] B. Yuan and K. Parhi, Low-latency successive-cancellation list decoders for polar codes with multibit decision, IEEE Trans. VLSI Syst., vol. 23, no. 10, pp. 2268 2280, October 2015.