Implementation of High Speed Reed Solomon Encoder

28
Chapter I Reed Solomon encoder 1.1 Introduction Reed– Solomon (RS) codes are non-binary cyclic error- correcting codes invented in 1960; Irving Reed and Gus Solomon published a paper in the Journal of the Society for Industrial and Applied Mathematics. They described a systematic way of building codes that could detect and correct multiple random symbol errors. Reed-Solomon coding is a type of forward-error correction that is used in data transmission (vulnerable to channel noise) plus data-storage and retrieval systems. Reed- Solomon code’s (encoders/decoders) can detect and correct errors within blocks of data. Reed-Solomon code’s operate on blocks of data, these codes are generally designated as (n, K) block codes, K is the number of information symbols input per block, and n is the number of symbols per block that the encoder outputs. Reed Solomon Decoder is useful in correcting burst noise; it replaces the whole word if it is not a valid code word. This Reed Solomon Decoder is designed according to CCSDS Standards. Reed-Solomon codes are used to perform Forward Error Correction (FEC). FEC introduces redundancy in the data before it is transmitted. The redundant data (check symbols) are transmitted with the original data to the receiver. For example, a Reed-Solomon decoder is used to help recover any error data.

Transcript of Implementation of High Speed Reed Solomon Encoder

Page 1: Implementation of High Speed Reed Solomon Encoder

Chapter I

Reed Solomon encoder

1.1 Introduction

Reed– Solomon (RS) codes are non-binary cyclic error-correcting codes invented in

1960; Irving Reed and Gus Solomon published a paper in the Journal of the Society for Industrial

and Applied Mathematics. They described a systematic way of building codes that could detect

and correct multiple random symbol errors. Reed-Solomon coding is a type of forward-error

correction that is used in data transmission (vulnerable to channel noise) plus data-storage and

retrieval systems. Reed- Solomon code’s (encoders/decoders) can detect and correct errors

within blocks of data. Reed-Solomon code’s operate on blocks of data, these codes are generally

designated as (n, K) block codes, K is the number of information symbols input per block, and n

is the number of symbols per block that the encoder outputs. Reed Solomon Decoder is useful in

correcting burst noise; it replaces the whole word if it is not a valid code word. This Reed

Solomon Decoder is designed according to CCSDS Standards.

Reed-Solomon codes are used to perform Forward Error Correction (FEC). FEC

introduces redundancy in the data before it is transmitted. The redundant data (check symbols)

are transmitted with the original data to the receiver. For example, a Reed-Solomon decoder is

used to help recover any error data. The codes are referred to in the format RS (n,k) where k is

the number of s-bit wide information (data) symbols and n is the total number of s-bit wide

symbols in a codeword. The Reed-Solomon encoder generates a code such that the first k

symbols output from the encoder are the information symbols and the next n-k symbols from the

encoder are the check symbols added for error correction.

1.2 Features

Scaling factor for the generator polynomial root index:1

Number of information or data symbols in a code block: 223

Number of symbols in an entire code block: 255

Page 2: Implementation of High Speed Reed Solomon Encoder

Galois Field polynomial: 285

Bus-width of DATA_IN and DATA_OUT: 4

Fig1: Reed solomon encoder

1.3 Introduction to physical design

In integrated circuit design, physical design is a step in the standard design cycle which

follows after the circuit design. At this step, circuit representations of the components (devices

and interconnects) of the design are converted into geometric representations of shapes which,

when manufactured in the corresponding layers of materials, will ensure the required functioning

of the components. This geometric representation is called integrated circuit layout. This step is

usually split into several sub-steps, which include both design and verification and validation of

the layout.

Modern day Integrated Circuit (IC) design is split up into Front-end design using HDL's,

Verification and Back-end Design or Physical Design. The next step after Physical Design is the

Manufacturing process or Fabrication Process that is done in the Wafer Fabrication Houses. Fab-

houses fabricate designs onto silicon dies which are then packaged into ICs.

Each of the phases mentioned above have Design Flows associated with them. These

Design Flows lay down the process and guide-lines/framework for that phase. Physical Design

flow uses the technology libraries that are provided by the fabrication houses. These technology

Page 3: Implementation of High Speed Reed Solomon Encoder

files provide information regarding the type of Silicon wafer used, the standard-cells used, the

layout rules, etc.

Technologies are commonly classified according to minimal feature size. Standard sizes,

in the order of miniaturization, are 2μm, 1μm, 0.5μm, 0.35μm, 0.25μm, 180nm, 130nm, 90nm,

65nm, 45nm, 28nm, 22nm, 18nm. Etc

1.4 Physical design flow

1.4.1 Physical Design Input Data

Types of data that are required to start a physical design are

Technology and library files

Circuit description of the design in the form of netlist representation

Timing requirements or design constraints

Floor plan or the physical layout structure

Gate Level Netlist

Floor Planning

Power Planning

Placement

Clock Tree Distribution

Routing

Timing Analysis

DRC, ERC, LVS

Design Library Constraints

Page 4: Implementation of High Speed Reed Solomon Encoder

1.4.2 Library Preparation

Library preparation (data preparation) process is done using the tool called Milky Way.

The Milky Way and the data preparation functions can perform several tasks essential for cell

library and data preparation, including the following,

Creating cell libraries

Importing cell data

Specifying technology information

Writing technology information to a file

Removing cell hierarchy

Specifying power and ground port types

Optimizing the standard cell layout

Extracting pin and blockage information

Setting place and route boundaries

Defining wire tracks

The input for data preparation is the LEF file from foundry. The data preparation for

standard cell using Milky Way is done with the following steps,

Step 1: Run and Read LEF to import LEF files

Step 2: Extract blockage pin and via

Step 3: Set place and route boundary

Step 4: define wire tracks

Technology Library files

Technology File (tf)

Library Exchange Format (LEF)

Design Exchange Format (DEF)

Page 5: Implementation of High Speed Reed Solomon Encoder

Physical library (PLIB)

Physical Design Exchange Format (PDEF)

Cell Library Format File (CLF)

Top Design Format File (TDF)

Table Look up (TLU)

Advanced Library Format (ALF)

Interconnect Technology Files (ITF)

1.4.3 Design Constraints

Design constraints are ASIC design specifications that are applied during logic and

physical synthesis. Each tool attempts to meet two general design constraints

Timing constraints

Design rule constraints

Timing constraints are user-specified and are related to speed, area, and the power

consumption of the ASIC design. Timing constraints utilized by physical design tools are

performance related.The most basic timing constraints are as follows

System clock definition and clock delays

Multiple cycle paths

Input and output delays

Minimum and maximum path delays

Input transition and output load capacitance

False paths

1.4.4 Floor Planning

Floor planning is the process of:

Positioning blocks on the die or within another block, thereby defining routing areas

between them

Creating and developing a physical model of the design in the form of an initial

optimized layout

A good floor planning should meet the following constraints,

Page 6: Implementation of High Speed Reed Solomon Encoder

Minimize the total chip area

Make the subsequent routing phase easy

Improve performance, by, for example, reducing signal delays

The input details provided for the floor planning are the design netlist, area requirements,

power requirements, timing constraints, physical partitioning information, die size, etc. After the

floor planning done the output will be a die with the core and I/O area, the macro areas, power

grid designed, power pre-routing, standard cell placement areas defined to the particular design.

1.4.5 Power planning

Power is limiting factor affection performance and features in most important products.

Power management issues are affecting every aspect of the design Software architecture, design

techniques, process technology and design methodology.

Chip-level power management can be treated as two parts,

Core cell power management

I/O cell power management

1.4.6 Placement

Exact placement of the modules (modules can be gates, standard cells, macros…) is done

in the process of placement. The goal is to minimize the total area and interconnect cost. Gate-

level netlists contain references to standard cells and macros, which are stored in the logical

libraries, as well as other hierarchical logic blocks. Before placing one must ensure that all

references can be resolved. Placement process done in two steps,

Global placement: Standard cells must be grouped in a way that the number of

connections between groups is minimum. This issue is solved through circuit

partitioning. As a basic criterion, the minimum is taken among group connections.

Detailed placement: In detailed placement coarse placement and legalization of the

placement is done. All the cells are placed in the approximate locations but they are not

legally placed and the logic optimization is not done. Legal placement of cells is not

required for analyzing routing congestion at an early stage, ensuring that the final

placement is legal before saving the design.

Page 7: Implementation of High Speed Reed Solomon Encoder

1.4.7 Clock tree synthesis

Before going for the clock tree synthesis the design placement should be completed and

power and ground nets are pre-routed, congestion estimation is done which is acceptable,

acceptable timing estimation os completed (~0ns slack).

The goal of clock tree synthesis is to,

• Meet logical Design Rule Constraints (DRC):

Maximum transition delay

Maximum load capacitance

Maximum fanout

Maximum buffer levels and

• Meet the clock tree targets:

Maximum skew

Min/Max insertion delay

Clock Distribution Systems

The types of clock distribution system are as follows,

Unconstrained tree - Automated buffer placements with unconstrained trees.

Balanced tree - Multiple levels of balanced tree segments H-tree is most common

Central spine-Central clock driver.

Spines with matched branches - Multiple central structures with length (or delay)

matched branches.

Grid - Interconnected (shorted) clock structure.

Hybrid distribution - Combination of multiple techniques common theme is tree + grid or

spine + grid.

Page 8: Implementation of High Speed Reed Solomon Encoder

1.4.8 Routing

Routing is the process of creating physical connections to all clock and signal pins

through metal interconnects. The Routed paths must meet setup and hold timing, max cap/trans,

power and clock skew requirements and also the metal traces must meet physical DRC

requirements. Given a placement, and a fixed number of metal layers, it is required to find a

valid pattern of horizontal and vertical wires that connect the terminals of the nets. The typical

objectives are area (channel width), wire delays, number of layers, number of bends, vias, etc.

The process of routing is done in two levels,

Global routing: Assigns nets to the global routing cells through which they pass. For each

global routing cell, the routing capacity is calculated according to the blockages, pins,

and routing tracks inside the cell. The objective is to minimize wire length, balance the

congestion, meet timing, noise driven and

Detailed routing: Detail route is concerned with fixing all the DRC violations after track

assignment. The detail router does not work on the whole chip at the same time like track

assignment determining exactly how each signal is routed through each region Seeking to

reduce routing area.

1.4.9 Design sign-off

In this step the design which is routed is verified for the DRC, LVS and ERC errors and it

has to be corrected for optimization and to meet proper functionality of design. Then the design

is ready for manufacturing process.

Page 9: Implementation of High Speed Reed Solomon Encoder

Chapter II

Synopsys IC-Compiler

2.1 Introduction

IC Compiler is a single, convergent netlist-to-GDSII or netlist-to-clock-tree-synthesis

design tool for chip designers developing very deep submicron designs. It takes as input a gate-

level netlist, a detailed floorplan, timing constraints, physical and timing libraries, and foundry

process data, and it generates as output either a GDSII-format file of the layout or a Design

Exchange Format (DEF) file of placed netlist data ready for a third-party router. IC Compiler can

also output the design at any time as a binary Synopsys Milkyway database for use with other

Synopsys tools based on Milkyway or as ASCII files (Verilog, DEF, and timing constraints) for

use with tools not from Synopsys.

2.2 IC Compiler design flow

The IC Compiler design flow is an easy-to-use, single-pass flow that provides convergent

timing closure. Figure 2.1 shows the basic IC Compiler design flow, which is centered around

three core commands that perform placement and optimization (place_opt), clock tree synthesis

and optimization (clock_opt), and routing and postroute optimization (route_opt).

Figure 2.1 IC Compiler design flow

Page 10: Implementation of High Speed Reed Solomon Encoder

Chapter III

Design description and implementation

3.1 Achieving frequency at 400 MHZ

****************************************Report : clocksDesign : rs_encodeVersion: C-2009.06-ICCDate : Tue Apr 12 23:56:01 2011****************************************

Clock Period Waveform Attrs Sources--------------------------------------------------------------------------master_clock 2.50 {0 1.25} {clkin}--------------------------------------------------------------------------

Rise Fall Min Rise Min fall UncertaintyObject Delay Delay Delay Delay Plus Minus--------------------------------------------------------------------------master_clock 0.60 0.60 0.60 0.60 0.12 0.25

3.2 Logic area and IO pin

-------------------------------------------------------------------------- FLOORPLAN INFORMATION--------------------------------------------------------------------------SITE ROW INFORMATION--------------------Site Type Hrows Vrows Tiles Width Height Row areaunit 63 0 41202 0.20 1.80 14832.72

CHIP AND CORE INFORMATION------------------------- Width Height AreaCore 130.800 121.200 15852.960Chip 172.800 163.200 28200.960

-------------------------------------------------------------------------- UTILIZATION INFORMATION--------------------------------------------------------------------------

CELL INSTANCE SECTION---------------------Cell Instance Type Count Area SitesPlaced Cells 2034 8040.96 unit:22336 Fixed Cells 0 0.00 --Soft Fixed Cells 0 0.00 --Unplaced Cells 0 0.00 --Fixed Cells 2 16.56 unit:46 Non-Fixed Cells 2032 8024.40 unit:22290

Page 11: Implementation of High Speed Reed Solomon Encoder

UTILIZATION RATIOS------------------Chip area : 28200.96Core Area : 15852.96SiteRow area : 14832.72Non-SiteRow area : 1020.24Cell/Core Ratio : 50.7221%Cell/Chip Ratio : 28.5131%

3.3 Floorplanning and PG network

VDD railW_vertical – Metal 8 = 8 micronsW_horizontal – Metal 9 = 8 microns

VSS rail:W_vertical – Metal 8 = 8 micronsW_horizontal – Metal 9 = 8 microns

Core to IO clearance width = 21 microns

Core Area IO Pads

Power (VDD) andGround (VSS) rails

Page 12: Implementation of High Speed Reed Solomon Encoder

3.4 Placement

Power and Ground pins

Page 13: Implementation of High Speed Reed Solomon Encoder

3.5 Clock tree synthesis information

Timing report before clock tree synthesis

----------------------------------------------------------- data required time 2.31 data arrival time -2.37 ----------------------------------------------------------- slack (VIOLATED) -0.06

Clock distribution before clock tree synthesis

Power straps

Page 14: Implementation of High Speed Reed Solomon Encoder

Clock distribution after CTS

Timing report after CTS

----------------------------------------------------------- data required time 2.36 data arrival time -2.28 ----------------------------------------------------------- slack (MET) 0.08

3.7 Routing with 9 layer metal

Page 15: Implementation of High Speed Reed Solomon Encoder

3.8 DRC

--------------------------------------------------------------------Rule: Met1 Spacing: minimum spacing = 0.09 um 220 errorsRule: Met1 Overlap: metal & blockage overlap 4 errorsRule: Met1 specEoLSpc: spacing= 0.11 ,crnKeepOut= 0.035 um(mode = 4 ) 1 errorRule: Met1 FatWireSpc: fat metal ( 0.201 um, 0.381 um) minimum spacing = 0.11 um 62 errorsRule: Met1 FatWireSpc: fat metal ( 0.421 um, 0.421 um) minimum spacing = 0.16 um 1 error

Page 16: Implementation of High Speed Reed Solomon Encoder

Chapter IV Design attributes

4.1 Power architecture

Power strap width calculations

Number of cell instances = 2145

Number of nets = 2289

Total dynamic power = 1.3502 mw

Supply voltage (v) = 1.32

Aspect ratio / Core utilization = (Number of cell instances) / (Number of nets)

= 0.937

Total dynamic core current

(Total dynamic power) / (Supply voltage)

= 1.022 ma

Current supply from each side of the block

Width of the block = 131

Height of the block = 121

= 0.265 ma

= 0.0245 ma

Page 17: Implementation of High Speed Reed Solomon Encoder

Calculation of power-strap width [IR]

Max Current density of M8 and M9 = 80.96

Roe of M8 and M9 = 0.0218

= 0.0032 microns

= 0.0030 microns

Calculation of power-strap width [EM]

W strap_vertical = (I top X Roe X Hblock) / 0.07VDD

= 8 microns

W strap_vertical = (I top X Roe X Hblock) / 0.07VDD

= 8 microns

Power refresh straps

Number of power/ground refresh

N refresh_horizontal = Wstrap_horizontal / W refresh

= 3

N refresh_horizontal = Wstrap_horizontal / W refresh

= 3

Spacing of each refresh

S refresh_horizontal = H block / W refresh_horizontal

= 48 microns

S refresh_vertical = W block / W refresh_vertical

= 45 microns

Page 18: Implementation of High Speed Reed Solomon Encoder

4.2 Design constraints

###################################################################

# Created by write_sdc on Thu Mar 31 22:21:30 2011

###################################################################set sdc_version 1.8

set_units -time ns -resistance kOhm -capacitance pF -voltage V -current mAset_operating_conditions BCCOM -library tcbn65lpbccreate_clock [get_ports clkin] -name master_clock -period 2.5 -waveform {0 1.25}set_max_dynamic_power 2 mwset_max_leakage_power 10 uwset_clock_latency 0.6 [get_clocks master_clock]set_clock_uncertainty -setup 0.25 [get_clocks master_clock]set_clock_uncertainty -hold 0.125 [get_clocks master_clock]set_clock_transition -fall 0.025 [get_clocks master_clock]set_clock_transition -rise 0.025 [get_clocks master_clock]

4.3 Reports

Timing report after routing

****************************************Report : timing -path full -delay max -max_paths 1Design : rs_encodeVersion: C-2009.06-ICCDate : Tue Apr 12 10:39:19 2011****************************************Operating Conditions: BCCOM Library: tcbn65lpbc

Startpoint: b15/out_reg[2] (rising edge-triggered flip-flop clocked by master_clock)Endpoint: b8/out_reg[5] (rising edge-triggered flip-flop clocked by master_clock)Path Group: master_clockPath Type: max ----------------------------------------------------------- data required time 2.36 data arrival time -2.28 ----------------------------------------------------------- slack (MET) 0.08

Page 19: Implementation of High Speed Reed Solomon Encoder

Power report after routing

****************************************Report : power -analysis_effort lowDesign : rs_encodeVersion: C-2009.06-ICCDate : Tue Apr 12 23:58:04 2011****************************************

Library(s) Used:tcbn65lpwc (File: /home/libraries/std/Front_End/timing_power_noise/tcbn65lpwc.db)

Operating Conditions: BCCOM Library: tcbn65lpbcWire Load Model Mode: segmented

Design Wire Load Model Library------------------------------------------------rs_encode ZeroWireload tcbn65lpwc

Global Operating Voltage = 1.32 Power-specific unit information :Voltage Units = 1VCapacitance Units = 1.000000pfTime Units = 1nsDynamic Power Units = 1mW (derived from V,C,T units)Leakage Power Units = 1nW

Cell Internal Power = 1.1041 mW (80%)Net Switching Power = 283.2232 uW (20%) ---------Total Dynamic Power = 1.3873 mW (100%)

Cell Leakage Power = 2.4163 uW

Page 20: Implementation of High Speed Reed Solomon Encoder

Chapter V

Results and Conclusion

5.1 Results

Achieved frequency is 400 MHz

Slack is met with the value 0.08

The logic area is 51%

Width Height Area

o Core 130.800 121.200 15852.960

o Chip 172.800 163.200 28200.960

Chip width is 131 microns

Chip height is 121 microns

Power and Ground rail width of 8 microns

Timing is met with the skew of 0.08 after CTS

Routing is done with 9 layer metal

The design is free from all DRC violations except the Met 1 violations

The total dynamic power of the chip after routing is 1.3873 mw with the leakage power

of 2.4163 um

Page 21: Implementation of High Speed Reed Solomon Encoder

5.2 Conclusion

Implementation of the High speed Reed Solomon encoder using Synopsys IC compiler is

successfully completed meeting all design specifications.

The design is successfully implemented .to work with the operating frequency of 400

Mhz with the supply voltage of 1.32v.

The timing constraint of the design is met with the positive slack of 0.08 ns.

The total dynamic power achieved is 1.3873 mw which is within the range of dynamic

power specified (i.e. 2 mw).

The total area of the chip is 28200.960 microns out of wich 51% of the area is occupied

by the core of the design.