A High Performance CRC Checker for Ethernet Application

Similar documents
Error Correction and Detection using Cyclic Redundancy Check

Implementing CRCCs. Introduction. in Altera Devices

PART III. Data Link Layer MGH T MGH C I 204

Achieving Reliable Digital Data Communication through Mathematical Algebraic Coding Techniques

LECTURE #34. Data Communication (CS601)

Data Link Protocols. High Level Data. Control Protocol. HDLC Framing ~~~~~~~~ Functions of a Data Link Protocol. Framing PDUs. Addressing Destination

CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems

64-bit parallel CRC Generation for High Speed Applications

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science

Lecture 2 Error Detection & Correction. Types of Errors Detection Correction

VHDL CODE FOR SINGLE BIT ERROR DETECTION AND CORRECTION WITH EVEN PARITY CHECK METHOD USING XILINX 9.2i

Design and Implementation of Hamming Code on FPGA using Verilog

UNIT-II 1. Discuss the issues in the data link layer. Answer:

Performance Evaluation & Design Methodologies for Automated CRC Checking for 32 bit address Using HDLC Block

CS254 Network Technologies. Lecture 2: Network Models & Error Detection and Correction. Dr Nikos Antonopoulos

CS321: Computer Networks Error Detection and Correction

MYcsvtu Notes DATA REPRESENTATION. Data Types. Complements. Fixed Point Representations. Floating Point Representations. Other Binary Codes

Chapter 10 Error Detection and Correction. Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

CSMC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 4. September 09 CMSC417 Set 4 1

SRI RAMAKRISHNA INSTITUTE OF TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY COMPUTER NETWORKS UNIT - II DATA LINK LAYER

Ch. 7 Error Detection and Correction

Chapter 3. The Data Link Layer. Wesam A. Hatamleh

A Novel Approach for Parallel CRC generation for high speed application

TYPES OF ERRORS. Data can be corrupted during transmission. Some applications require that errors be detected and corrected.

CMSC 2833 Lecture 18. Parity Add a bit to make the number of ones (1s) transmitted odd.

An HVD Based Error Detection and Correction Code in HDLC Protocol Used for Communication

(Refer Slide Time: 2:20)

CSN Telecommunications. 5: Error Coding. Data, Audio, Video and Images Prof Bill Buchanan

VLSI Implementation of Parallel CRC Using Pipelining, Unfolding and Retiming

CSE 123: Computer Networks Alex C. Snoeren. HW 1 due Thursday!

CSMC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. Nov 1,

Data Link Networks. Hardware Building Blocks. Nodes & Links. CS565 Data Link Networks 1

A Novel Approach for Error Detection using Double Redundancy Check

Lecture 5. Homework 2 posted, due September 15. Reminder: Homework 1 due today. Questions? Thursday, September 8 CS 475 Networks - Lecture 5 1

Announcement. (CSC-3501) Lecture 3 (22 Jan 2008) Today, 1 st homework will be uploaded at our class website. Seung-Jong Park (Jay)

Chip Design for Turbo Encoder Module for In-Vehicle System

Fault Tolerance & Reliability CDA Chapter 2 Additional Interesting Codes

Where we are in the Course

Lecture 6: Reliable Transmission. CSE 123: Computer Networks Alex Snoeren (guest lecture) Alex Sn

CSE 123A Computer Networks

CSE 461: Framing, Error Detection and Correction

SMALL DISTANCE CODES FOR HEADER ERROR DETECTION IN ATM NETWORKS

CSE 123: Computer Networks

The data link layer has a number of specific functions it can carry out. These functions include. Figure 2-1. Relationship between packets and frames.

INPUT TO (TM/TC) CHANNEL CODING GREEN BOOK(s) AS DISCUSSED AT THE MEETING IN CRYSTAL CITY, VA (USA) on 12 March Frame Error Control Field

Data Link Layer. Srinidhi Varadarajan

Computer and Network Security

CSEP 561 Error detection & correction. David Wetherall

Performance Optimization of HVD: An Error Detection and Correction Code

DESIGN AND IMPLEMENTATION OF HIGH SPEED 64-BIT PARALLEL CRC GENERATION

Fault Tolerant Parallel Filters Based On Bch Codes

HIGH SPEED SINGLE PRECISION FLOATING POINT UNIT IMPLEMENTATION USING VERILOG

Introduction to Computer Networks. 03 Data Link Layer Introduction

Overview. Data Link Technology. Role of the data-link layer. Role of the data-link layer. Function of the physical layer

Error Detection Codes. Error Detection. Two Dimensional Parity. Internet Checksum Algorithm. Cyclic Redundancy Check.

Chapter 2. Data Representation in Computer Systems

Lecture 5: Data Link Layer Basics

Implementation of Hamming code using VLSI

CSE123A discussion session

FPGA IMPLEMENTATION OF SUM OF ABSOLUTE DIFFERENCE (SAD) FOR VIDEO APPLICATIONS

2.4 Error Detection Bit errors in a frame will occur. How do we detect (and then. (or both) frames contains an error. This is inefficient (and not

CS 640 Introduction to Computer Networks. Role of data link layer. Today s lecture. Lecture16

Point-to-Point Links. Outline Encoding Framing Error Detection Sliding Window Algorithm. Fall 2004 CS 691 1

4. Error correction and link control. Contents

2 Asst Prof, Kottam College of Engineering, Chinnatekur, Kurnool, AP-INDIA,

ISO/OSI Reference Model. Data Link Layer. 7. Application. 6. Presentation. 5. Session. 4. Transport. 3. Network. 2. Data Link. 1.

Communication Fundamentals in Computer Networks

Chapter 2. Data Representation in Computer Systems. Objectives (1 of 2) Objectives (2 of 2)

COMPUTER NETWORKS UNIT I. 1. What are the three criteria necessary for an effective and efficient networks?

Forward Error Correction Using Reed-Solomon Codes

EE 6900: FAULT-TOLERANT COMPUTING SYSTEMS

International Journal of Innovations in Engineering and Technology (IJIET)

CIS 551 / TCOM 401 Computer and Network Security. Spring 2007 Lecture 7

Computer Sc. & IT. Digital Logic. Computer Sciencee & Information Technology. 20 Rank under AIR 100. Postal Correspondence

Some portions courtesy Robin Kravets and Steve Lumetta

EITF25 Internet Techniques and Applications L3: Data Link layer. Stefan Höst

Chapter Six. Errors, Error Detection, and Error Control. Data Communications and Computer Networks: A Business User s Approach Seventh Edition

Transmission SIGNALs

Framing, Synchronization, and Error Detection

CSCI-1680 Link Layer I Rodrigo Fonseca

DIGITAL SYSTEM DESIGN

Data Link Layer Overview

Digital Systems COE 202. Digital Logic Design. Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals

Error Correction Using Extended Orthogonal Latin Square Codes

FORWARD ERROR CORRECTION CODING TECHNIQUES FOR RELIABLE COMMUNICATION SYSTEMS

The Data Link Layer Chapter 3

Chapter 3. The Data Link Layer

Design of Convolutional Codes for varying Constraint Lengths

Design of Flash Controller for Single Level Cell NAND Flash Memory

Content beyond Syllabus. Parity checker and generator

Hardware Implementation of Cryptosystem by AES Algorithm Using FPGA

DESIGN AND IMPLEMENTATION OF SDR SDRAM CONTROLLER IN VHDL. Shruti Hathwalia* 1, Meenakshi Yadav 2

Fault-Tolerant Computing

Low Complexity Architecture for Max* Operator of Log-MAP Turbo Decoder

Design and Implementation of VLSI 8 Bit Systolic Array Multiplier

Digital Fundamentals

Design and Implementation of Effective Architecture for DCT with Reduced Multipliers

Implementation and Analysis of an Error Detection and Correction System on FPGA

New Method in Error Detection

Transcription:

A High Performance CRC Checker for Ethernet Application Deepti Rani Mahankuda & M. Suresh Electronics and Communication Engineering Dept. National Institute of Technology, Berhampur, Odisha, India. E-mail:deepti.rani07@gmail.com Abstract : This Project presents the generation of Cycle Redundancy Check (CRC) in the field of Data Communication and Networking. CRCs are popular because they are simple to implement in binary hardware, are easy to analyze mathematically, and are particularly good at detecting common errors caused by noise in transmission channels. It is for the purpose of error detection in communication networks. This project primarily focuses on error detection in the Ethernet applications. The main object of this project is to implement high performance error detection technique in a 32 bit Parallel data sending. Keywords-CRC, Computation of CRC Polynomial, Verilog and CADENCE Tool. I. INTRODUCTION CRCs are based on the theory of cyclic errorcorrecting codes. The use of systematic cyclic codes, which encode messages by adding a fixed-length check value, for the purpose of error detection in communication networks was first proposed by W. Wesley Peterson in 1961. Cyclic codes are not only simple to implement but have the benefit of being particularly well suited for the detection of burst errors, contiguous sequences of erroneous data symbols in messages. This is important because burst errors are common transmission errors in many communication channels, including magnetic and optical storage devices. Typically, an n-bit CRC, applied to a data block of arbitrary length, will detect any single error burst not longer than n bits and will detect a fraction 1 2 n of all longer error bursts. Specification of a CRC code requires definition of a so-called generator polynomial. This polynomial resembles the divisor in a polynomial long division, which takes the message as the dividend and in which the quotient is discarded and the remainder becomes the result, with the important distinction that the polynomial coefficients are calculated according to the carry-less arithmetic of a finite field. The length of the remainder is always less than the length of the generator polynomial, which therefore determines how long the result can be. In practice, all commonly used CRCs employ the finite field GF (2). This is the field of two elements, usually called 0 and 1, comfortably matching computer architecture. The simplest error-detection system, the parity bit, is in fact a trivial 1-bit CRC: it uses the generator polynomial x+1. II. DESCRIPTION The design of the 32-bit polynomial most commonly used by standards bodies, CRC-32-IEEE, was the result of a joint effort for the Rome Laboratory and the Air Force Electronic Systems Division by Joseph Hammond, James Brown and Shyan-Shiang Liu of the Georgia Institute of Technology and Kenneth Brayer of the MITRE Corporation. The earliest known appearances of the 32-bit polynomial were in their 1975 publications: Technical Report 2956 by Brayer for MITRE, published in January and released for public dissemination through DTIC in August, and Hammond, Brown and Liu's report for the Rome Laboratory, published in May. Both reports contained contributions from the other team. In December 1975, Brayer and Hammond presented their work in a paper at the IEEE National Telecommunications Conference: the IEEE 27

CRC-32 polynomial is the generating polynomial of a Hamming code and was selected for its error detection performance. Even so, the Castagnoli CRC-32C polynomial used in iscsi or SCTP matches its performance on messages from 58 bits 131 kbits, and outperforms it in several size ranges including the two most common sizes of Internet packet. The ITU- T G.hn standard also uses CRC-32C to detect errors in the payload (although it uses CRC-16-CCITT for PHY headers). III. ETHERNET FRAME The commonly used polynomial for Ethernet is given by: x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1 We will use this polynomial for all further calculations involved. A. Serial CRC Checker: Here CRC checking is done serially. The data input will be single (binary) and every clock pulse the data input will be one. There will some delay present between the consecutive data inputs and the output will be zero if the data will be encoded with same CRC value otherwise it shows non-zero value. By this form we will conclude where the data is accurate or corrupted. A.1.Verification and Simulation In this part the test bench and simulation result will be shown. In this test bench the signals will be generated and the data will be given to the input and the output will be shown. And finally the simulation result will be displayed by Simvision tool. The simulation result is given below. As in the above figure the simulation result is given as zero. It means CRC value is zero. So the exact data has entered. Simulation has completed at 4040 ns.(fig. 1) A.2. Synthesis Synthesis process will be done by using Cadence RTL Compiler (RC) tool. The process will generate area report, power report, timing report, clock gating report. The generated output will be the net list file and sdc file (Fig. 2) Refer to Table 1(b),2(b),3(b) of Serial CRC Checker. B. Parallel CRC Checker In this implementation, the data input will be 16 bits (2 Byte) at one clock pulse so the data input size will be increase so clock pulse will be decreased. It will complete the result in lesser clock pulse so it will be used for high performance. There will be various processes to implement the parallel crc checking process. B.1. Design Procedure In this procedure there will be two matrixes will be generated as H1 and H2 matrix. There is Nin will be data input and Min CRC input, N and M will be data width and CRC width. During generation of H1 matrix Nin will be one hot encoded and Min will be zero. In H2 matrix Nin will be zero and Min will be one hot encoded. For the parallel CRC generation, there will be pseudo code as CRC parallel. In this code there will be a regular iteration with the data size and CRC polynomial size. And finally the variables where the matrix is 1 that will be Ex-ORed. B.2. Verification and Simulation As the serial CRC implementation, the parallel CRC implementation the signals will be generated and the output is verified. The data input has difference as the data input is not one bit, it is 16 bit input in one clock pulse. The data input is 16 bits or 2 byte and the final output is zero. The simulation result is given below. (Fig 3) B.3.Synthesis Synthesis process will be done by using Cadence RTL Compiler (RC) tool. The process will generate area report, power report, timing report, clock gating report. The generated output will be the net list file and sdc file (Fig. 4) Refer to Table 1(a),2(a),3(a) of Parallel CRC Checker. IV. FINAL LAYOUT DESIGN This is the final and optimized layout of the Parallel CRC Checker. In this layout there are the standard cells have used and the cells are connected through the metals and it has optimized before routed and after routed. (Fig. 5) V. COMPARISION OF SERIAL AND PARALLEL CRC Both Serial and Parallel CRC Checker for Ethernet has been designed and synthesized. Now the comparison will be done between this two designs. The comparison will be done of the simulation results, area, timing and power.(fig 6,7) 28

VI. SIMULATION In the above two simulation result it has been observed that serial simulation has been completed at 4040 ns whereas parallel simulation has completed at 300 ns. So we have completed the same task very less clock pulse. Parallel CRC Checker completes its work 3740 ns before serial CRC checker completes.(fig. 6,7as compared in Fig. 1,3) Area Reports Power Report: Table 2 (a) Parallel CRC Checker; Table 1. (a) Parallel CRC Checker area report Table2 (b) Serial CRC Checker As the cells have reduced of Serial CRC Checker compared to Parallel CRC Checker. So the total power has reduced from 428024.803 nw (Parallel CRC Checker) to 378176.222 nw (Serial CRC Checker). Timing Report Table 1(b) Serial CRC Checker Area report In this both area reports, we have observed that Parallel CRC Checker has cell area 1048 nm2 Serial CRC Checker 699 nm2. And the cells have been increased 112(Serial CRC Checker) to 217(Parallel CRC Checker). 29

[4] http://www.mhhe.com/forouzan/dcn4sie [5] http://www.circuitcellar.com/network. Table3 (a) Parallel CRC Checker; (b) Serial CRC Checker From the above comparison, it has been observed that the clock pulse in the simulation has been reduced in Parallel CRC Checker. But the no of cells, area size and power have been increased in Parallel CRC Checker as compared to Serial CRC Checker. And the timing slack is same. Although Parallel CRC Checker has increased in area, power but it reduces the simulation time. So it is called as high performance Checker. Figure 1. Simulation result of Serial CRC Checker VII. CONCLUSION From all the analysis of both Serial and Parallel implementation of CRC Checker, it has been concluded that Parallel CRC Checker for Ethernet is high speed and high performance Checker. Although Parallel CRC Checker has larger in area and power as compared to Serial CRC Checker but it reduces the simulation time or checking time at the optimum level which is required in High performance application. So it will very much suitable for high performance checking process for Ethernet application. ACKNOWLEDGMENT We are thankful to National Institute of Science and Technology Management for providing us the oppurtunity to work on this project REFERENCES [1] Data Communication and Networking 4 th Edition by Behrouz A Forouzan published by The McGraw Hills Company [2] W. W. Peterson and D. T. Brown, Cyclic Codes for Error Detection, Proceedings of the IRE, vol. 49, no. 1, pp. 228 235, 1961. [3] Jun-Ren Chen, Incorporating data abstraction in CRC to simplify method interface, International Computer Symposium (ICS), 2010, pp- 983 987, Dec, 2010 Figure 2. : Synthesize circuit of Serial CRC RTL 30

Figure 3. : Simulation result of Parallel CRC Checker Figure 7. Parallel CRC Checker Figure 8. Serial CRC Checker Figure 4. Synthesize Output of Parallel CRC RTL Figure 5. Figure 6. Layout of the Circuit 31