CN108304658B - FPGA-based polarization code encoder hardware implementation method - Google Patents
FPGA-based polarization code encoder hardware implementation method Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/08—HW-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
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:
when the code length is 2nThen, the relationship between the generating matrix and the unit matrix is:
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.
Wherein A is:
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,
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.
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)
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)
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 |
-
2018
- 2018-02-02 CN CN201810107445.8A patent/CN108304658B/en active Active
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 |