FPGA Implementation of Cyclic Code Encoder and Decoder

Similar documents
How To Fix A 3 Bit Error In Data From A Data Point To A Bit Code (Data Point) With A Power Source (Data Source) And A Power Cell (Power Source)

Digital Systems. Syllabus 8/18/2010 1

Verification & Design Techniques Used in a Graduate Level VHDL Course

Data Link Layer Overview

Guru Ghasidas Vishwavidyalaya, Bilaspur (C.G.) Institute of Technology. Electronics & Communication Engineering. B.

Research on the UHF RFID Channel Coding Technology based on Simulink

Sheet 7 (Chapter 10)

Data Link Layer(1) Principal service: Transferring data from the network layer of the source machine to the one of the destination machine

Fiber Optic Communications Educational Toolkit

University of St. Thomas ENGR Digital Design 4 Credit Course Monday, Wednesday, Friday from 1:35 p.m. to 2:40 p.m. Lecture: Room OWS LL54

ERROR DETECTION AND CORRECTION

FPGA Implementation of an Advanced Traffic Light Controller using Verilog HDL

Manchester Encoder-Decoder for Xilinx CPLDs

Revision of Lecture Eighteen

Reliability Level List Based Direct Target Codeword Identification Algorithm for Binary BCH Codes

Capacity Limits of MIMO Channels

Suppression of Four Wave Mixing in 8 Channel DWDM System Using Hybrid Modulation Technique

Implementation of Modified Booth Algorithm (Radix 4) and its Comparison with Booth Algorithm (Radix-2)

Review of Error Detection of Data Link Layer in Computer Network

MIMO detector algorithms and their implementations for LTE/LTE-A

Design and Verification of Nine port Network Router

Error detection using CRC

6.02 Fall 2012 Lecture #5

Adaptive Equalization of binary encoded signals Using LMS Algorithm

SDLC Controller. Documentation. Design File Formats. Verification

Radar Signal Processing:

Teaching Convolutional Coding using MATLAB in Communication Systems Course. Abstract

Design and FPGA Implementation of a Novel Square Root Evaluator based on Vedic Mathematics

Development of a Research-oriented Wireless System for Human Performance Monitoring

Gray Code Generator and Decoder by Carsten Kristiansen Napier University. November 2004

Professional Training Program

Design of Remote Laboratory dedicated to E2LP board for e-learning courses.

Complexity-bounded Power Control in Video Transmission over a CDMA Wireless Network

Chapter 3: Sample Questions, Problems and Solutions Bölüm 3: Örnek Sorular, Problemler ve Çözümleri

International Journal of Advancements in Research & Technology, Volume 2, Issue3, March ISSN

Technical Aspects of Creating and Assessing a Learning Environment in Digital Electronics for High School Students

Data Transmission Using Laser Light

Application Note AN-00160

Hardware and Software

CS2204 DIGITAL LOGIC & STATE MACHINE DESIGN SPRING 2016

(Refer Slide Time: 00:01:16 min)

Duobinary Modulation For Optical Systems

Multiplexers Two Types + Verilog

FPGA Implementation of System-on-chip (SOC) Architecture for Spacecraft Application

Hardware Implementation of Probabilistic State Machine for Word Recognition

Consumer Emergency Vehicle Alert System

2011, The McGraw-Hill Companies, Inc. Chapter 3

Algorithms for Interference Sensing in Optical CDMA Networks

What Types of ECC Should Be Used on Flash Memory?

Digital Modulation. David Tipper. Department of Information Science and Telecommunications University of Pittsburgh. Typical Communication System

Sigma- Delta Modulator Simulation and Analysis using MatLab

From Concept to Production in Secure Voice Communications

RS-485 Protocol Manual

if-then else : 2-1 mux mux: process (A, B, Select) begin if (select= 1 ) then Z <= A; else Z <= B; end if; end process;

Improved NAND Flash Memories Storage Reliablity Using Nonlinear Multi Error Correction Codes

Computer Systems Structure Main Memory Organization

Keywords Quantum logic gates, Quantum computing, Logic gate, Quantum computer

ADVANCED APPLICATIONS OF ELECTRICAL ENGINEERING

A Practical Parallel CRC Generation Method

FPGA Implementation of Human Behavior Analysis Using Facial Image

Optimising the resource utilisation in high-speed network intrusion detection systems.

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

Using Xilinx ISE for VHDL Based Design

Technical Information. Digital Signals. 1 bit. Part 1 Fundamentals

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Log-Likelihood Ratio-based Relay Selection Algorithm in Wireless Network

CDMA TECHNOLOGY. Brief Working of CDMA

COMBINATIONAL CIRCUITS

Introduction. Jim Duckworth ECE Department, WPI. VHDL Short Course - Module 1

AN ANALYSIS OF DELAY OF SMALL IP PACKETS IN CELLULAR DATA NETWORKS

Lab 1: Introduction to Xilinx ISE Tutorial

A Study of Speed Control of PMDC Motor Using Auto-tuning of PID Controller through LabVIEW

FPGAs in Next Generation Wireless Networks

Lesson 7: SYSTEM-ON. SoC) AND USE OF VLSI CIRCUIT DESIGN TECHNOLOGY. Chapter-1L07: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

FPGA Based Robotic Arm With Six Degrees of Freedom

Mobile IP Network Layer Lesson 01 OSI (open systems interconnection) Seven Layer Model and Internet Protocol Layers

Enhancing High-Speed Telecommunications Networks with FEC

Performance Evaluation of AES using Hardware and Software Codesign

DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev Key Design Features. Block Diagram. Generic Parameters.

A Parallel Processor for Distributed Genetic Algorithm with Redundant Binary Number

Practical Covert Channel Implementation through a Timed Mix-Firewall

AN IMPROVED DESIGN OF REVERSIBLE BINARY TO BINARY CODED DECIMAL CONVERTER FOR BINARY CODED DECIMAL MULTIPLICATION

APPLICATION NOTE. Efficient Shift Registers, LFSR Counters, and Long Pseudo- Random Sequence Generators. Introduction.

INTERNATIONAL JOURNAL OF ELECTRONICS AND COMMUNICATION ENGINEERING & TECHNOLOGY (IJECET)

Course Curriculum for Master Degree in Electrical Engineering/Wireless Communications

Nonlinear Multi-Error Correction Codes for Reliable NAND Flash Memories

Modeling a GPS Receiver Using SystemC

No serious hazards are involved in this laboratory experiment, but be careful to connect the components with the proper polarity to avoid damage.

A CDMA Based Scalable Hierarchical Architecture for Network- On-Chip

Reed-Solomon Codes. by Bernard Sklar

AUTOMATED ADVANCED INDUSTRIAL and HOME SECURITY USING GSM and FPGA

INTER CARRIER INTERFERENCE CANCELLATION IN HIGH SPEED OFDM SYSTEM Y. Naveena *1, K. Upendra Chowdary 2

IJESRT. [Padama, 2(5): May, 2013] ISSN:

MICROPROCESSOR AND MICROCOMPUTER BASICS

Implementation and Design of AES S-Box on FPGA

The Degrees of Freedom of Compute-and-Forward

ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT

Thwarting Selective Insider Jamming Attacks in Wireless Network by Delaying Real Time Packet Classification

Digital Systems Design! Lecture 1 - Introduction!!

Transcription:

Advance in Electronic and Electric Engineering. ISSN 2231-1297, Volume 4, Number 3 (2014), pp. 273-278 Research India Publications http://www.ripublication.com/aeee.htm FPGA Implementation of Cyclic Code Encoder and Decoder Gaurav Chawla and Vishal Chaudhary ECE Department, Kurukshetra University, Seth Jai Prakash Mukand Lal Institute of Engineering and Technology, Raduar, Yamunanagar, Haryana, INDIA. Abstract This paper presents Cyclic code Encoder and Decoder with its soft core design as well hardware implementation on FPGA. The design includes both encoder and decoder part that can be used in a communication system for encoding a message at the transmitter and decoding it, detecting error and correcting it on the receiver part. The source code for Encoder and Decoder has been formulated in VHDL ( VHSIC Hardware Description Language) and simulated and synthesized using Xilinx ISE14.3 The hardware implementation has been done on Xilinx Spartan6 LX45 FPGA. Keywords: FPGA; Cyclic Code; VHDL. 1. Introduction The essence of a communication system depends on how it deals with the noise that may interfere with the data to be transmitted. Noise generally is encountered in the channel phase of a communication system which could be transmission lines, optical fibers, space, air etc. The coding theory is an important tool for encoding a given message, decoding and correcting the received message. Cyclic codes are one such tool that can be used both for encoding and decoding of the information represented in the form of binary numbers. Cyclic Codes were first studied in 1957 by Prange. After that they became an important part of the coding theory. Cyclic codes are easy to study and implement because: 1) Encoding and syndrome computation can be done easily using shift registers with feedback connections. 2) Due to the inherent algebraic structure, they are easy to decode.

274 Gaurav Chawla & Vishal Chaudhary This Paper is organized as follows: Section II: Encoding and Decoding of Cyclic Codes; Section III: Software implementation of Cyclic Code with simulation results; Section IV: Hardware implementation of Cyclic Code; Section V: Conclusion. 2. Encoding and Decoding of Cyclic Codes Cyclic codes are an important class of linear block codes in which the cyclic shifting of the message bits results in another code vector, hence the name cyclic code. In other words a cyclic shift in a code word in C results in another code word in C. For Example C = {(110), (101), (011)} is cyclic, while C = {(000), (100), (111)} is not cyclic. A cyclic code is defined in terms of a generator polynomial g(x) of degree less than n-k, where k is the length of input message and n is the length of the encoded message. Cyclic codes are studied usually in polynomial form since it is easy to represent the code vectors as the coefficients of the polynomial. For example the message 110001 is represented as 1+ X + X⁵. Cyclic Codes are used both for encoding and decoding of the message bits. In an encoding process the message signal is divided by a certain sequence called generator number and corresponding to that the remainder bits form the parity check sequence which are concatenated to either front or back of the message signal to encode it. The process of encoding can be implemented using shift registers as shown in the Fig. 1, where g 0,g 1,..g n-k-1 is for generator bits, b 0, b 1,..b n-k-1 is for remainder bits and u(x) is for message bits. The decoding process is a more complex process and is followed by error detection and correction. In error detection the received vector is divided by the generator sequence and the computed remainder forms the syndrome. If the computed syndrome is identical to zero, then the received vector is error free, else the process advances to error correction. In error correction the computed syndrome is compared with the error pattern and accordingly the erroneous bit is XOR-ed with the error bit and the corrected received vector is obtained. The syndrome computation can be implemented using shift registers as shown in Fig. 2, where s 0,s 1,.s n-k-1 is for syndrome. Fig. 1: Encoding circuit for (n,k) Cyclic Code (Image Courtsey: Shu Lin, 1983) Fig. 2: Syndrome circuit for (n,k) Cyclic Code (Image Courtsey: Shu Lin, 1983)

FPGA Implementation of Cyclic Code Encoder and Decoder 275 3. Software Implementation of Cyclic Code In the software implementation we simulated many examples, the one shown in this paper is (15,10) Cyclic Code. Here we input the message bits 1010010001 and the generator sequence 10101, the parity bits obtained are 01010 which are concatenated at the end of the message. So the encoded message is 101001000101010. The simulation of Encoder is shown in Fig. 7. For the Decoding process we calculate the syndrome corresponding to the error at different bit positions and rectify the errors. The following values of syndrome are calculated corresponding to different error positions: Received message Error Syndrome Received message Error Syndrome 10100100010101001100 no error 00000 101001010101010 pos8 00100100010101010011 pos1 01011 101001001101010 pos 9 11100100010101000110 pos2 11101 101001000001010 pos 10 10000100010101000111 pos3 11010 101001000111010 pos 11 10110100010101000101 pos4 10100 101001000100010 pos 12 10101100010101000001 pos5 01000 101001000101110 pos 13 10100000010101001001 pos6 11011 101001000101000 pos 14 10100110010101011001 pos7 10110 101001000101011 pos 15 Fig. 3. Top Level Design of Encoder Fig. 4: Top Level Design of Decoder Fig. 3 and 4 shows the Top Level Design of the Encoder and Decoder Circuits Respectively. Fig. 5 and 6 corresponds to the Gate Level Design of the Encoder and Decoder Circuits. It can be seen that Gate Level Design of Decoder Circuit is more complex than that for Encoder

276 Gaurav Chawla & Vishal Chaudhary Fig. 5: Gate Level Design of Encoder Fig. 6: Gate Level Design of Decoder Fig. 7: Simulation of (15,10) Cyclic Code Encoder. Fig. 8: Simulation of (15,10) Cyclic Code Decoder.

FPGA Implementation of Cyclic Code Encoder and Decoder 277 4. Hadware Implementation of Cyclic Code To take into account the hardware constraints, we present here the hardware implementation of (7,4) Cyclic Code. Here we encode the input message 1101 with generator sequence 110. The encoded message comes out to be 1101001 with 001 as parity check bits. The message bits and the generator sequence are given as inputs to the FPGA kit using ON-OFF Switches as shown in figure. The encoded output is taken across the LEDs as shown. Similarly the (7,4) decoder has been implemented and tested with different received inputs corresponding to noise at different bit positions. The corrected message appears across LEDs as shown. Fig. 9: FPGA implementation of (7,4) Encoder. Fig. 10: FPGA implementation of (7,4) Decoder. 5. Conclusion The VHDL design for Cyclic Code Encoder and Decoder has been simulated and implemented on hardware using Xilinx Spartan 6 LX45 FPGA mounted on Atlys board. The message bits were encoded and decoded both on software and hardware environments. The error bits were detected and successfully corrected both on hardware and software platforms. The VHDL design core both for Encoder and Decoder can be used to program the FPGA chips in accordance to the need in various applications. References [1] Wael M El-Medany, "FPGA implementation of CRC with Error Correction", ICWMC 2012: Eighth International Conference on Wireless and Mobile Communications, pp. 266-271

278 Gaurav Chawla & Vishal Chaudhary [2] Gaurav Bansal, Vishal Chaudhary.," VHDL implementation of (15,11) hamming encoder and decoder", National conference on advancements in the era of Multi-disciplinary systems, AEMDS APRIL 2013, pp. 667-670. [3] W.W Peterson, D.T Brown, IRE, 1961 "Cyclic Codes for Error Detection", pp.228-235 [4] Daniel F. Russell, " Cyclic Error Correcting Codes" December 14, 2001 [5] Shu Lin, Daniel J. Costello, JR., " Error Control Coding", Prentice Hall, New Jersey, 1983 [6] Digilent, " Atlys Board Reference Manual", October 28, 2010 [7] Jayaram Bhaskar " A VHDL Primer", AT & T Bell Laboratories, October 1991 [8] Kevin Skahill, "VHDL For Programmable Logic", Cypress Semiconductor, August 14, 1995 [9] Douglas Perry, " VHDL: Programming by Example", McGraw Hill Professional, 2002.