CN108304658B - FPGA-based polarization code encoder hardware implementation method - Google Patents

FPGA-based polarization code encoder hardware implementation method Download PDF

Info

Publication number
CN108304658B
CN108304658B CN201810107445.8A CN201810107445A CN108304658B CN 108304658 B CN108304658 B CN 108304658B CN 201810107445 A CN201810107445 A CN 201810107445A CN 108304658 B CN108304658 B CN 108304658B
Authority
CN
China
Prior art keywords
bit
matrix
rom
fpga
polarization code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810107445.8A
Other languages
Chinese (zh)
Other versions
CN108304658A (en
Inventor
王秀敏
吴卓铤
王怡
李君�
洪波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Jiliang University
Original Assignee
China Jiliang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Jiliang University filed Critical China Jiliang University
Priority to CN201810107445.8A priority Critical patent/CN108304658B/en
Publication of CN108304658A publication Critical patent/CN108304658A/en
Application granted granted Critical
Publication of CN108304658B publication Critical patent/CN108304658B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Abstract

The invention discloses a hardware implementation method of a polarization code encoder based on an FPGA (field programmable gate array). the method is mainly used for solving the problems that the design of a parallel structure is difficult and the like due to strong correlation between the front and rear stages of a polarization code encoding structure, and a method for simplifying operation is designed on the basis of summarizing a polarization code encoding generation matrix rule. The method only needs to perform the operation of generating the first column of the matrix, and then the whole coding result can be obtained according to the rule. The method also introduces a ROM table look-up method as an initial calculation unit on the basis of solving the parallel problem, thereby greatly improving the overall operation speed of the encoder.

Description

FPGA-based polarization code encoder hardware implementation method
Technical Field
The invention belongs to the field of channel coding, and particularly relates to a polarization code encoder hardware implementation method based on an FPGA.
Background
Polarization code coding technique proposed by e.arika in 2007, which is a coding technique that under binary discrete memoryless channel conditions, a channel polarization phenomenon occurs when the code length tends to infinity, i.e., part of the channel capacity tends to 1 and part tends to 0. Under the condition, the polar code can reach the fragrance limit, and the complexity of the coding algorithm is low, so that the polar code coding becomes a great breakthrough on the channel coding history. Polar codes are a new coding technology, which attracts great attention in the wireless communication field. Is one of the most important research topics in the field of coding.
This makes the polar code have many difficulties in parallel design due to the high correlation between the front and back stages of the polar code coding structure. At present, the encoder design of the polarization code mainly refers to the processing idea of an FFT algorithm to carry out FPGA hardware design, but the method still belongs to serial operation. The invention designs a polarization code encoder with a parallel structure by utilizing the distribution rule of a G matrix and combining a table look-up method.
Disclosure of Invention
The polar code coding method mainly aims at the problems of the polar code coding in parallel design, and designs the polar code coder based on the FPGA by utilizing a table look-up method on the basis of summarizing the structural rule of a polar code coding generation matrix, thereby greatly improving the parallelism of the polar code coding.
The technical scheme adopted by the invention is as follows:
(1) and finding out the structural rule of the generated matrix. The structure of the polar code encoder is formed based on a unit matrix, and the unit matrix is as follows:
Figure BDA0001568181550000011
when the code length is 2nThen, the relationship between the generating matrix and the unit matrix is:
Figure BDA0001568181550000012
wherein
Figure BDA0001568181550000013
Is a 2n×2nAnd (4) matrix.
from the above characteristics, it can be seen that there must be many repeated calculations when the generator matrix is used for operation, and we can calculate the repeated part only once and replace the repeated part with the result.
Figure BDA0001568181550000021
Wherein A is:
Figure BDA0001568181550000022
let the information bit with length of 64 bits be C ═ C0,c1,c2,c3,c4,c5,c6,c7In which c isiIs 8 bits. We can simplify in the following way, let a1={a0,a1,a2,a3,a4,a5,a6,a7In which ai=ciAnd (4) x A. Is provided withThe coded information sequence is S ═ S0,s1,s2,s3,s4,s5,s6,s7}, then there are
s0=a0^a1^a2^a3^a4^a5^a6^a7(5)
s1=a1^a3^a5^a7(6)
s2=a2^a3^a6^a7(7)
s3=a3^a7(8)
s4=a4^a5^a6^a7(9)
s5=a5^a7(10)
s6=a6^a7(11)
s7=a7(12)
The formulas (5) to (12) are basic operation formulas of the algorithm, compared with direct operation, the method simplifies the operation process, only the operation of the first column is carried out, the speed is improved by 7 times on the whole, 0 element in the G matrix is directly removed in the later operation, and the G matrix is a sparse matrix, so that the calculation unit is saved to a great extent.
(2) FPGA-based encoder design. The encoder system is constructed as shown in fig. 1. The system comprises an information segmentation module, a table look-up coding module, an 8-bit coding result memory, a coding intermediate result memory, a coding structure arithmetic unit and an output module. Based on the simplified algorithm, the hardware design of the encoder is performed. In order to further simplify the operation and improve the throughput of the encoder, the encoder uses a table lookup method to perform table lookup on the eight-bit encoding result. Firstly, all the inputs (256 types in total) of an 8-bit encoder are subjected to encoding calculation through MATLAB to obtain an encoding result, then an 8-bit read-only memory ROM with the depth of 256 is created in QUARTUS II, information bits are used as the address of the ROM, and the encoding result is used as the storage information of the corresponding address in the ROM. In order to improve the parallelism, 2 double-port ROMs are established in the system, and 8-bit polarization code coding of 4 threads is carried out simultaneously. Under the same parallelism, the table look-up method saves 8 times of calculation period.
Drawings
FIG. 1 System Structure
FIG. 2256 bit encoder System flow diagram
Detailed Description
The following describes the present invention in detail with reference to fig. 2 by taking an FPGA polarization code encoder with a code length of 1024 as an example, and the specific implementation manner includes the following steps:
the method comprises the following steps: enabling an encoder, setting a cycle flag bit n to be 1, starting to receive 32-bit information bits, dividing the 32-bit information bits into four threads, respectively transmitting the four threads to a ROM (read only memory) for table look-up operation, and respectively outputting 4 8-bit coding sequences by the ROM. And stores the result in an encoded intermediate result store.
Step two: the code structure operator reads data from the intermediate result memory and calculates the 32-bit code sequence according to the algorithm described in technical solution (1). And stored in 32-bit encoded memory. And selecting whether to carry out the next group of coding according to the current coding code length of the coder.
Step three: and adding 1 to the cyclic flag bit, receiving the next group of 32-bit information bits, and repeating the operation of the step one and the step two.
Step four: when n is 9, the system stops receiving information bits, calls the coding structure arithmetic unit to read 8 32-bit coding sequences, and calculates 256 codes according to the algorithm in the technical scheme (1). And begins encoding the next 256-bit information sequence.

Claims (2)

1. A method for realizing FPGA-based polar code encoder hardware is characterized by comprising the following steps:
(1) finding out the structural rule of the generator matrix G and designing a simplified method for calculating the generator matrix G;
(2) constructing a ROM for 8-bit coding table lookup;
the step (1) directly eliminates the 0 part in the generated matrix G in the calculation process by utilizing the structural rule of the generated matrix G to realize the simplified calculation of the generated matrix G, and comprises the following steps:
let the information bit with length of 64 bits be C ═ C0,c1,c2,c3,c4,c5,c6,c7In which c isiIs 8 bits, it is simplified by the following way, let A1={a0,a1,a2,a3,a4,a5,a6,a7};
ai=ciX A, wherein,
Figure FDA0002365210530000011
let the coded information sequence be S ═ S0,s1,s2,s3,s4,s5,s6,s7And then, there are:
s0=a0^a1^a2^a3^a4^a5^a6^a7(1);
s1=a1^a3^a5^a7(2);
s2=a2^a3^a6^a7(3);
s3=a3^a7(4);
s4=a4^a5^a6^a7(5);
s5=a5^a7(6);
s6=a6^a7(7);
s7=a7(8);
the expressions (1) to (8) are basic operation expressions of the simplified method, compared with direct operation, the method simplifies the operation process, only the operation of the first column is carried out, the speed is improved by 7 times on the whole, the 0 part in the generator matrix G is directly removed in the later operation, and the generator matrix G is a sparse matrix, so that the calculation unit is saved to a great extent.
2. The hardware implementation method of the FPGA-based polar code encoder according to claim 1, wherein the step (2) constructs a ROM for an 8-bit encoding look-up table, comprising:
all inputs of an 8-bit encoder are subjected to encoding calculation through MATLAB to obtain encoding results, wherein the inputs are 256 in total, then an 8-bit read only memory ROM with the depth of 256 is created in QUARTUS II, information bits are used as the address of the ROM, the encoding results are used as the storage information of the corresponding address in the ROM, in order to improve the parallelism, 2 double-port ROMs are established in the system, 8-bit polarization code encoding of 4 threads is carried out at the same time, and under the same parallelism, the calculation period is saved by 8 times through a table lookup method.
CN201810107445.8A 2018-02-02 2018-02-02 FPGA-based polarization code encoder hardware implementation method Active CN108304658B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810107445.8A CN108304658B (en) 2018-02-02 2018-02-02 FPGA-based polarization code encoder hardware implementation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810107445.8A CN108304658B (en) 2018-02-02 2018-02-02 FPGA-based polarization code encoder hardware implementation method

Publications (2)

Publication Number Publication Date
CN108304658A CN108304658A (en) 2018-07-20
CN108304658B true CN108304658B (en) 2020-05-19

Family

ID=62851044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810107445.8A Active CN108304658B (en) 2018-02-02 2018-02-02 FPGA-based polarization code encoder hardware implementation method

Country Status (1)

Country Link
CN (1) CN108304658B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114930726A (en) * 2020-01-27 2022-08-19 华为技术有限公司 Device and method for encoding or decoding a message by means of a polar code

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857239B (en) * 2012-09-27 2015-03-25 苏州威士达信息科技有限公司 LDPC (Low Density Parity Check) serial encoder and encoding method based on lookup table in CMMB (China Mobile Multimedia Broadcasting)
US9432056B2 (en) * 2013-11-04 2016-08-30 Microsoft Technology Licensing, Llc Fast decoding based on ZigZag deconvolution for random projection code
WO2015139297A1 (en) * 2014-03-21 2015-09-24 华为技术有限公司 Polar code rate-matching method and rate-matching device
CN104539393B (en) * 2015-01-07 2018-01-12 北京邮电大学 A kind of source coding method based on polarization code
CN106817195B (en) * 2015-12-02 2020-04-21 华为技术有限公司 Method and apparatus for rate matching of polar codes
CN105720992B (en) * 2016-01-22 2019-07-23 哈尔滨工业大学深圳研究生院 A kind of simplified decoding method of polarization code
CN106253913B (en) * 2016-07-29 2019-02-22 山东科技大学 The block encoder of polarization code and its coding method
CN108599900B (en) * 2016-08-11 2019-06-07 华为技术有限公司 Method, apparatus and equipment for Polarization Coding
CN107222293B (en) * 2017-05-16 2020-03-20 北京邮电大学 Information transmission method and device, electronic equipment and storage medium
CN107124251B (en) * 2017-06-08 2020-03-10 电子科技大学 Polarization code encoding method based on any kernel

Also Published As

Publication number Publication date
CN108304658A (en) 2018-07-20

Similar Documents

Publication Publication Date Title
CN109379086B (en) Low-complexity code rate compatible 5G LDPC coding method and encoder
Xiong et al. A multimode area-efficient SCL polar decoder
Li et al. Low-latency polar codes via hybrid decoding
KR20040044590A (en) Encoder using low density parity check code and encoding method thereof
CN103401564A (en) Encoder, decoder, transmitting device, receiving device, encoding method, and decoding method
La Guardia On classical and quantum MDS-convolutional BCH codes
JP2005535190A5 (en)
Wang et al. Construction of polar codes for channels with memory
Tan et al. Optimal cyclic locally repairable codes via cyclotomic polynomials
CN108304658B (en) FPGA-based polarization code encoder hardware implementation method
CN102340320A (en) Bidirectional and parallel decoding method of convolutional Turbo code
CN106533452A (en) Multi-ary LDPC coding method and coder
Haifen et al. A simplified decoding algorithm for multi-CRC polar codes
CN108959977B (en) Soft and hard hybrid decoding method suitable for SRAM PUF
CN103957016A (en) Turbo code encoder with low storage capacity and design method of Turbo code encoder
CN108494411B (en) Construction method of multi-system LDPC code check matrix
CN109245775B (en) Decoder and method for realizing decoding
KR101908389B1 (en) Error corrector coding and decoding
Nguyen et al. Neural normalized min-sum message-passing vs. viterbi decoding for the CCSDS line product code
CN103684655A (en) Code verifying device and method, decoding device and method, and receiving end
CN103532571A (en) Log-MAP decoding method and decoder
CN112953567A (en) Turbo coding method and device, electronic equipment and storage medium
Pimentel et al. On the power spectral density of constrained sequences
CN102571107A (en) System and method for decoding high-speed parallel Turbo codes in LTE (Long Term Evolution) system
Kuang et al. FPGA implementation of a modified turbo product code decoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant