CN104393952A - Error correcting code decoder - Google Patents
Error correcting code decoder Download PDFInfo
- Publication number
- CN104393952A CN104393952A CN201410591500.7A CN201410591500A CN104393952A CN 104393952 A CN104393952 A CN 104393952A CN 201410591500 A CN201410591500 A CN 201410591500A CN 104393952 A CN104393952 A CN 104393952A
- Authority
- CN
- China
- Prior art keywords
- hardware
- update module
- decoder
- node update
- correcting 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
The invention discloses an error correcting code decoder. The error correcting code decoder comprises a generating flow from ImpulseC software to FPGA (Field Programmable Gate Array) hardware. The generating flow comprises the following steps: performing C preprocessing on an ImpulseC design file, and performing C language analysis; determining hardware and software processes in application by using a compiler at a C language analysis state; performing an initial optimizing flow, and converting corresponding loops into equivalent concurrent statements by using the compiler at a loop unrolling stage; performing secondary optimization to generate a simulation-supporting HDL (Hardware Description Language) file which describes various processes, flows and elements described in an ImpulseC source element; and generating FPGA decoder hardware. Through the way, the error correcting code decoder can be applied to the fields of digital television demodulation chips, high-speed broadband mobile communication systems, compressed image transmission, wireless local area networks and the like, is used for performing error control and detecting and correcting errors introduced in a signal transmission process, and is an important component for ensuring reliable transmission of data.
Description
Technical field
The present invention relates to modern digital communication systems field, particularly relate to a kind of Error-Correcting Code Decoders based on Hardware/Software Co-design Technique.
Background technology
In the error control system of Modern Communication System, except described LDPC code, common code type also has RS code, Viterbi code, convolution code, TURBO code etc.But the error-correcting performance of RS code, Viterbi code and convolution code is poor, and limit its application due to the complexity of circuit realiration.
Though the performance index of TURBO code and LDPC code are very close, but a certain distance of still having, and be not easy to hardware implementing, system complexity is higher, can not be applicable to all channels, therefore has the trend replaced by LDPC code in many cases.
For the hard-wired design of LDPC code, except the described Hardware/Software Co-design Technique based on Impulse C, directly can also adopt conventional hardware describing method, namely VHDL language designs, but when FPGA realizes, empirically need relative high input in design with instrument.
In addition, described hardware also can realize with dsp processor, but configurability is poor, and can not parallel processing, and the speed of service is by the restriction of dsp chip clock frequency.
Summary of the invention
The technical problem that the present invention mainly solves is to provide a kind of Error-Correcting Code Decoders, can be used in the fields such as Circuit in Digital Television Demodulator, high-speed wideband mobile communication system, Compressed Image Transmission, WLAN (wireless local area network), carry out error control, detecting and the mistake introduced in correction signal transmitting procedure, is the important component part ensureing reliable data transmission.
For solving the problems of the technologies described above, the technical scheme that the present invention adopts is: provide a kind of Error-Correcting Code Decoders, comprising:
1), from Impulse C software to the product process of FPGA hardware:
Impulse C design document after C preliminary treatment, then carries out C language analysis; In the C language analysis phase, compiler determines the hardware and software process in application; Next carry out initial optimization flow process, in the loop unrolling stage, corresponding conversion and cycle is parallel subqueries of equal value by compiler; Again through double optimization, finally generate and can emulate hdl file, the element describing various process, stream and describe in the element of Impulse C source; Final generation FPGA decoder hardware.
2), the structure of decoder:
Decoder adopts Parallel Iteration Decoding Method structure, distributes a variable node update module (VNU), distribute a check-node update module (CNU), realize the complete parallel structure of decoder to each check-node to each variable node; After channel initialization data carry out data processing by input module feeding variable node update module, send into random asccess memory, data, through check-node update module, finally send variable node update module back to by another data wire again, complete an iteration; When condition meets or iteration completes, export iteration result by output module.
Preferably, the random asccess memory between described variable node update module and check-node update module cushions data and controls; The input and output of described input module and output module difference control data.
The invention has the beneficial effects as follows: the error correcting code that the present invention adopts is low density parity check code and LDPC code, its error correcting capability is extremely strong, and Error-floor is non-existent, as long as structure rationally, the error rate can be dropped to low arbitrarily, be a class error correcting code of approaching shannon limit at present most.
From hardware implementing angle, because LDPC code has the performance of approaching shannon limit, decoding complexity is low, and its decoding algorithm is parallel algorithm in essence, practicable parallel work-flow, reduces decoding delay, is very suitable for the parallel computation of FPGA.The present invention creates the LDPC decoding hardware algorithm achieving a Data Flow Oriented, and both occupied lower resource utilization, its throughput also can meet the needs of Practical Project, has good engineering sense.
Owing to having isolated the relation between hardware and software developing instrument and method in the past, the FPGA in software-oriented application has not embodied than the advantage of conventional processors and DSP.The present invention proposes the Hardware/Software Co-design Technique (HW/SW Co-Design) adopting latest generation based on Impulse C, can accelerate development process.Set up the mixed hardware/software application of highly-parallel, to obtain the balance of decoding rate and hardware resource consumption simultaneously.
Under Gaussian channel, achieve the design of encoder of the LDPC code of different code check in terrestrial broadcast transmission standard; Analyze the factor affecting LDPC code performance respectively, the pluses and minuses of existing channel coding schemes by BER performance analysis, for Digital Television Performance Test System provides theoretical foundation.
Accompanying drawing explanation
Fig. 1 is the optimization product process figure of Impulse C to FPGA hardware in a kind of Error-Correcting Code Decoders of the present invention;
Fig. 2 is the structured flowchart of the decoder in shown a kind of Error-Correcting Code Decoders.
Embodiment
Below in conjunction with accompanying drawing, preferred embodiment of the present invention is described in detail, can be easier to make advantages and features of the invention be readily appreciated by one skilled in the art, thus more explicit defining is made to protection scope of the present invention.
Refer to Fig. 1 and Fig. 2, the embodiment of the present invention comprises:
A kind of Error-Correcting Code Decoders, comprising:
1), from Impulse C software to the product process of FPGA hardware:
Impulse C design document after C preliminary treatment, then carries out C language analysis; In the C language analysis phase, compiler determines the hardware and software process in application; Next carry out initial optimization flow process, in the loop unrolling stage, corresponding conversion and cycle is parallel subqueries of equal value by compiler; Again through double optimization, finally generate and can emulate hdl file, the element describing various process, stream and describe in the element of Impulse C source; Final generation FPGA decoder hardware.
3), the structure of decoder:
Decoder adopts Parallel Iteration Decoding Method structure, distributes a variable node update module (VNU), distribute a check-node update module (CNU), realize the complete parallel structure of decoder to each check-node to each variable node; After channel initialization data carry out data processing by input module feeding variable node update module, send into random asccess memory, data, through check-node update module, finally send variable node update module back to by another data wire again, complete an iteration; When condition meets or iteration completes, export random asccess memory described in iteration result between variable node update module and check-node update module by output module and data are cushioned and controls; The input and output of described input module and output module difference control data.
The present invention includes following three beneficial effects:
1, described Impulse C programmes, directly initial FPGA is become to realize from C code compilation, the time that Hardware Engineer will participate in performance conversion can be done sth. in advance to the design phase further, and simplify FPGA design process of hardware, system can design with more high efficiency software design pattern.
2, the conventional hardware describing method of identical function is contrasted, " style of stream programming " method that Streams-C compiler provides can be effectively utilized in described Impulse C storehouse, chip internal parallel decoding structure adopts pipeline organization, and reduce the use amount of logical block, hardware size is relatively little.
3, in view of China mobile television standard also adopts LDPC code, and the cell phone standby time is general shorter, existing framework is necessary for low-power consumption should be used as certain improvement, and the use amount of described coder logical block is less, hardware size is relatively little, makes power consumption obtain reduction.
The foregoing is only embodiments of the invention; not thereby the scope of the claims of the present invention is limited; every utilize specification of the present invention and accompanying drawing content to do equivalent structure or equivalent flow process conversion; or be directly or indirectly used in other relevant technical fields, be all in like manner included in scope of patent protection of the present invention.
Claims (2)
1. an Error-Correcting Code Decoders, is characterized in that, comprising:
1), from Impulse C software to the product process of FPGA hardware:
Impulse C design document after C preliminary treatment, then carries out C language analysis; In the C language analysis phase, compiler determines the hardware and software process in application; Next carry out initial optimization flow process, in the loop unrolling stage, corresponding conversion and cycle is parallel subqueries of equal value by compiler; Again through double optimization, finally generate and can emulate hdl file, the element describing various process, stream and describe in the element of Impulse C source; Final generation FPGA decoder hardware;
2), the structure of decoder:
Decoder adopts Parallel Iteration Decoding Method structure, distributes a variable node update module (VNU), distribute a check-node update module (CNU), realize the complete parallel structure of decoder to each check-node to each variable node; After channel initialization data carry out data processing by input module feeding variable node update module, send into random asccess memory, data, through check-node update module, finally send variable node update module back to by another data wire again, complete an iteration; When condition meets or iteration completes, export iteration result by output module.
2. a kind of Error-Correcting Code Decoders according to claim 1, is characterized in that: the random asccess memory between described variable node update module and check-node update module cushions data and controls; The input and output of described input module and output module difference control data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410591500.7A CN104393952A (en) | 2014-10-29 | 2014-10-29 | Error correcting code decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410591500.7A CN104393952A (en) | 2014-10-29 | 2014-10-29 | Error correcting code decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104393952A true CN104393952A (en) | 2015-03-04 |
Family
ID=52611793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410591500.7A Pending CN104393952A (en) | 2014-10-29 | 2014-10-29 | Error correcting code decoder |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104393952A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127635A (en) * | 2016-06-28 | 2016-11-16 | 安徽科成信息科技有限公司 | A kind of Evaluation System for Teaching Quality |
CN106201866A (en) * | 2016-06-28 | 2016-12-07 | 安徽科成信息科技有限公司 | A kind of language teaching assessment system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131710A (en) * | 2007-09-13 | 2008-02-27 | 南京大学 | Low-density odd-even checking codec hardware simulation system based on programmable gate array |
US20140223264A1 (en) * | 2013-02-04 | 2014-08-07 | Sk Hynix Memory Solutions Inc. | Ldpc decoder with a variable node updater which uses a scaling constant |
-
2014
- 2014-10-29 CN CN201410591500.7A patent/CN104393952A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131710A (en) * | 2007-09-13 | 2008-02-27 | 南京大学 | Low-density odd-even checking codec hardware simulation system based on programmable gate array |
US20140223264A1 (en) * | 2013-02-04 | 2014-08-07 | Sk Hynix Memory Solutions Inc. | Ldpc decoder with a variable node updater which uses a scaling constant |
Non-Patent Citations (3)
Title |
---|
张培,尚丽,刘韬,汪一鸣: "LDPC译码器的ImpulseC编程设计", 《电讯技术》 * |
张培,陶志福,周昌雄,汪一鸣: "采用C语言FPGA技术实现LDPC码译码算法", 《微电子学与计算机》 * |
张培: "基于FPGA技术的纠错码研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127635A (en) * | 2016-06-28 | 2016-11-16 | 安徽科成信息科技有限公司 | A kind of Evaluation System for Teaching Quality |
CN106201866A (en) * | 2016-06-28 | 2016-12-07 | 安徽科成信息科技有限公司 | A kind of language teaching assessment system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075198B (en) | Quasi-cyclic low-density parity check convolution code coding-decoding system and coding-decoding method thereof | |
CN101820288B (en) | Information processing method of low-density check codes | |
CN104393952A (en) | Error correcting code decoder | |
Bang et al. | Implementation of LTE system on an SDR platform using CUDA and UHD | |
CN102340320A (en) | Bidirectional and parallel decoding method of convolutional Turbo code | |
Sun et al. | FPGA Design and Implementation of a Convolutional Encoder and a Viterbi Decoder Based on 802.11 a for OFDM | |
CN103199876B (en) | Realize the method and device of soft-decision FEC decoding | |
CN104242956A (en) | High-performance and low-complexity LDPC decoder based on randomized computation | |
CN102201817B (en) | Low-power-consumption LDPC decoder based on optimization of memory folding architecture | |
CN101895375B (en) | Decoding system of low-density parity-check code | |
CN206099947U (en) | Low resource consumption's multi -parameter can dispose viterbi decoder | |
CN104283571B (en) | It is a kind of based on the ldpc decoder calculated at random | |
CN103780335A (en) | Iterative decoding method and apparatus | |
Zhang et al. | The acceleration of turbo decoder on the newest GPGPU of kepler architecture | |
Lapotre et al. | A reconfigurable multi-standard ASIP-based turbo decoder for an efficient dynamic reconfiguration in a multi-ASIP context | |
Wang et al. | An efficient CPU‐GPU hybrid parallel implementation for DVB‐RCS2 receiver | |
TWI599182B (en) | Decoding device and method thereof | |
Le Gal et al. | High-performance software implementations of SCAN decoder for polar codes | |
Islam et al. | Computationally efficient implementation of a hamming code decoder using graphics processing unit | |
CN202663386U (en) | Check node updating circuit of LDPC decoder | |
Zhou et al. | A Parallel Turbo Product Codes Decoder Based on Graphics Processing Units | |
CN103081391B (en) | Method for stopping iteration in an iterative Turbo decoder and an iterative Turbo decoder | |
Roth et al. | Performance optimization and parallelization of turbo decoding for software-defined radio | |
Tang | Design and FPGA implementation of a Viterbi decoder: A case study using SystemVerilog and co-simulation | |
Alneema et al. | Image Transmission Through Channel Coding Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150304 |
|
RJ01 | Rejection of invention patent application after publication |