Applications. Discontinued IP SYST_A SYST_B RDY BLK_START BLK_END RFFD. Figure 1: Pinout

Similar documents
3GPP Turbo Encoder v4.0

Discontinued IP. Verification

Discontinued IP. 3GPP2 Turbo Decoder v1.0. Features. Applications. General Description

PCE03D DVB RCS/ WiMAX Turbo Encoder. Small World Communications. PCE03D Features. Introduction. Signal Descriptions

Utility Reduced Logic (v1.00a)

Documentation. Implementation Xilinx ISE v10.1. Simulation

Utility Bus Split (v1.00a)

LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a)

LogiCORE IP FIFO Generator v6.1

Fibre Channel Arbitrated Loop v2.3

LogiCORE IP Multiply Adder v2.0

Discontinued IP. Distributed Memory v7.1. Functional Description. Features

LUTs. Block RAMs. Instantiation. Additional Items. Xilinx Implementation Tools. Verification. Simulation

LogiCORE IP Serial RapidIO v5.6

Data Side OCM Bus v1.0 (v2.00b)

LogiCORE IP Device Control Register Bus (DCR) v2.9 (v1.00b)

Virtex-5 FPGA Embedded Tri-Mode Ethernet MAC Wrapper v1.7

Virtex-6 FPGA Embedded Tri-Mode Ethernet MAC Wrapper v1.4

Channel FIFO (CFIFO) (v1.00a)

LogiCORE IP Mailbox (v1.00a)

Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Authors: Bill Wilkie and Beth Cowie

LogiCORE IP Initiator/Target v5 and v6 for PCI-X

Instantiation. Verification. Simulation. Synthesis

32-Bit Initiator/Target v3 & v4 for PCI

7 Series FPGAs Memory Interface Solutions (v1.9)

Supported Device Family (1) Supported User Interfaces. Simulation Model. Design Entry Tools. Simulation

LogiCORE IP ChipScope Pro Integrated Controller (ICON) (v1.05a)

Binary Counter v8.0. Features. Functional Description. Pinout. DS215 April 28, Product Specification

Virtex-5 GTP Aurora v2.8

OPB Universal Serial Bus 2.0 Device (v1.00a)

Virtual Input/Output v3.0

Supported Device Family (1) Supported User Interfaces. Simulation Models Supported S/W Drivers. Simulation. Notes:

Multiplier Generator V6.0. Features

Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Author: Michael Francis

The Lekha 3GPP LTE FEC IP Core meets 3GPP LTE specification 3GPP TS V Release 10[1].

Zynq-7000 Bus Functional Model

Clock Correction Module

Synthesis Options FPGA and ASIC Technology Comparison - 1

LogiCORE IP Floating-Point Operator v6.2

Virtex-4 FPGA Embedded Processor Block with PowerPC 405 Processor (v2.01b)

Summary. Introduction. Application Note: Virtex, Virtex-E, Spartan-IIE, Spartan-3, Virtex-II, Virtex-II Pro. XAPP152 (v2.1) September 17, 2003

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

LogiCORE IP 3GPP LTE Turbo Encoder v1.0 Bit-Accurate C Model. 3GPP LTE Turbo. [optional] UG490 (v1.0) April 25, 2008 [optional]

LogiCORE IP Soft Error Mitigation Controller v1.1

The Lekha 3GPP LTE Turbo Decoder IP Core meets 3GPP LTE specification 3GPP TS V Release 10[1].

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a)

LogiCORE IP Image Noise Reduction v2.0 Bit Accurate C Model

OPB General Purpose Input/Output (GPIO) (v3.01b)

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

DCR Interrupt Controller (v2.00a)

ISim Hardware Co-Simulation Tutorial: Processing Live Ethernet Traffic through Virtex-5 Embedded Ethernet MAC

Discontinued IP. 3GPP Searcher v1.0. Introduction. Features. System Overview

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

LogiCORE IP AXI DataMover v3.00a

Zynq UltraScale+ MPSoC Verification IP v1.0

AccelDSP Synthesis Tool

Discontinued IP. OPB General Purpose Input/Output (GPIO) (v3.01b) Introduction. Features. LogiCORE Facts

Configurable LocalLink CRC Reference Design Author: Nanditha Jayarajan

Dynamic Phase Alignment for Networking Applications Author: Tze Yi Yeoh

QPRO Family of XC1700E Configuration PROMs

32 Channel HDLC Core V1.2. Applications. LogiCORE Facts. Features. General Description. X.25 Frame Relay B-channel and D-channel

Configurable LocalLink CRC Reference Design Author: Nanditha Jayarajan

Single Channel HDLC Core V1.3. LogiCORE Facts. Features. General Description. Applications

TECHNICAL PAPER Interfacing the Byte- Wide SmartVoltage FlashFile Memory Family to the Intel486 Microprocessor Family

LogiCORE IP AXI DMA (v3.00a)

Virtex-II SiberBridge Author: Ratima Kataria & the SiberCore Applications Engineering Group

Binary Counter V3.0. Features

LogiCORE IP AXI DMA (v4.00.a)

It is well understood that the minimum number of check bits required for single bit error correction is specified by the relationship: D + P P

EFFICIENT RECURSIVE IMPLEMENTATION OF A QUADRATIC PERMUTATION POLYNOMIAL INTERLEAVER FOR LONG TERM EVOLUTION SYSTEMS

Sine/Cosine Look-Up Table v4.2. Features. Functional Description. θ = THETA radians 2 2 OUTPUT_WIDTH-1 OUTPUT_WIDTH-1

LogiCORE IP Serial RapidIO Gen2 v1.2

Minimizing Receiver Elastic Buffer Delay in the Virtex-II Pro RocketIO Transceiver Author: Jeremy Kowalczyk

isplever Turbo Encoder User s Guide November 2008 ipug08_04.4

Virtex FPGA Series Configuration and Readback

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a)

OPB to PLBV46 Bridge (v1.01a)

Intel Arria 10 Native Floating- Point DSP Intel FPGA IP User Guide

ISim Hardware Co-Simulation Tutorial: Accelerating Floating Point Fast Fourier Transform Simulation

Vivado Design Suite User Guide

Parameterizable LocalLink FIFO Author: Wen Ying Wei, Dai Huang

LogiCORE IP Initiator/Target v3.167 for PCI

Discontinued IP. Block RAMs

LogiCORE IP Block Memory Generator v6.1

DDR2 Controller Using Virtex-4 Devices Author: Tze Yi Yeoh

Virtex-7 FPGA Gen3 Integrated Block for PCI Express

/$ IEEE

LogiCORE IP Fast Fourier Transform v7.1

On-Chip Memory Implementations

Creating High-Speed Memory Interfaces with Virtex-II and Virtex-II Pro FPGAs Author: Nagesh Gupta, Maria George

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

Xilinx 7 Series FPGA Libraries Guide for HDL Designs. UG768 (v 13.4) January 18, 2012

Configuration and Readback of the Spartan-II and Spartan-IIE Families

Discontinued IP. LogiCORE IP Fibre Channel v3.5. Introduction. Features. DS270 April 19, LogiCORE IP Facts Core Specifics Supported Families 1

PowerPC Instruction Set Extension Guide

Virtex-6 FPGA GTX Transceiver OTU1 Electrical Interface

LogiCORE IP Block Memory Generator v7.1

LogiCORE IP AXI Video Direct Memory Access v5.00.a

Vivado Design Suite User Guide

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM

Transcription:

DS525 April 24, 2009 Features Drop-in module for Spartan -6, Spartan-3E, Spartan-3A/3A/3A DSP, Spartan-3, Virtex -6, Virtex-5 and Virtex-4 FPGAs Implements the IEEE 802.16e Wireless MA OFDMA PHY CTC encoder specification [1] Supports optional 64-QAM modulation Supports optional hybrid-arq (HARQ) Multiplexed symbol memory for maximum throughput Simultaneous C 1 and C 2 encoding Pipelined data paths for speed Flexible interfacing by means of optional control signals Designed for minimum area and maximum speed Available using the CORE Generator software v11.1, which is included with the ISE v11.1 tools Applications The Convolutional Turbo Code (CTC) encoder meets the Wireless MA OFDMA PHY CTC encoder specification of the IEEE 802.16e standard [1] and supports the optional hybrid ARQ (HARQ). General Description The theory of operation of the Turbo Codes is described in the paper by Berrou, Glavieux, and Thitimajshima [2]. The CTC Encoder core is a parallelized implementation of the convolutional turbo coder specified by the IEEE 802.16e Wireless MA OFDMA PHY CTC encoder specification [1]. The input and output ports of the CTC encoder core are shown in Figure 1. Figure Top x-ref 1 10 Mandatory Pins CLK FD_I DATA_I_A DATA_I_B BLK_SIZE Optional pins ACLR SCLR CE SYST_A SYST_B PAR_Y1 PAR_W1 PAR_Y2 PAR_W2 RDY BLK_START BLK_ED RFFD Multi-bit Single-bit Figure 1: Pinout 2006-2009 Xilinx, Inc., XILIX, the Xilinx logo, Virtex, Spartan, ISE and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. DS525 April 24, 2009 www.xilinx.com 1

Two constituent encoders perform C1 (uninterleaved) and C2 (interleaved) encoding. Two other convolutional encoders are employed as precoders that calculate the circulation states for the two main encoders. The constituent encoders are described later in this data sheet. A triple-buffered rotating memory bank permits C1 and C2 encoding, and the calculation of the circulation states all to be performed simultaneously for maximum data throughput. The encoder block size can be changed on a block-by-block basis, using the BLK_SIZE input port. All block sizes specified by the 802.16e standard, ranging from 6 to 600 bytes are supported. Flexible handshaking is facilitated by the FD_I input port and the output ports RDY, BLK_START, BLK_ED, and RFFD. The fundamental specification of the encoder, including block sizes, determination of the circulation states, and the interleaver specification can be found in the IEEE 802.16e standard[1]. Input/Output Ports The I/O ports for the basic configuration are summarized in Table 1 and described below. Table 1: I/O Ports, Basic Configuration Pin Sense Port Width (bits) FD_I Input 1 Description First Data. When sampled High on an active rising clock edge, the encoding process is started. ACLR Input (optional) 1 Asynchronous Clear. When this is asserted (High), the encoder asynchronously resets. SCLR Input (optional) 1 Synchronous Clear. When sampled High on an active rising clock edge, the encoder is reset. CE Input (optional) 1 Clock Enable. When Low, rising clock edges are ignored and the core is held in its current state. CLK Input 1 BLK_SIZE Input 10 Clock. All synchronous operations occur on the rising edge of the clock signal. Block Size. Sets up the block size (in bytes) when First Data (FD_I) is sampled high. Ignored if FD_I is Low. DATA_I_A Input 1 Data Input A. The A-channel of the data to be encoded. DATA_I_B Input 1 Data Input B. The B-channel of the data to be encoded. SYST_A Output 1 RSC1 Systematic A.The systematic A output from RSC1. SYST_B Output 1 RSC1 Systematic B. The systematic B output from RSC1. PAR_Y1 Output 1 RSC1 Parity Y. The Y parity output from RSC1. PAR_W1 Output 1 RSC1 Parity W. The W parity output from RSC1. PAR_Y2 Output 1 RSC2 Parity Y. The Y parity output from RSC2. PAR_W2 Output 1 RSC2 Parity W. The W parity output from RSC2. RFFD Output 1 Ready for First Data. When the output asserted (High), the core is ready to start another encoder operation. 2 www.xilinx.com DS525 April 24, 2009

Table 1: I/O Ports, Basic Configuration (Continued) Port Pin Sense Width (bits) Description RDY Output 1 Ready. The output is asserted (High) when there is valid data on the systematic and parity outputs. BLK_START Output 1 BLK_ED Output 1 Block Start. The output is asserted (High) for one clock cycle to signal the start of a valid block on the systematic and parity outputs. Block Start. The output is asserted (High) for one clock cycle to signal the end of a valid block on the systematic and parity outputs. Asynchronous Clear (ACLR) The ACLR input port is optional. When ACLR is driven High, the core resets to its initial state and is ready to process a new block. Following the initial configuration of the FPGA, the core is automatically in the reset state, so no further ACLR is required before an encoding operation can take place. ACLR is the only asynchronous input to the core. Clock (CLK) With the exception of asynchronous clear, all operations of the core are synchronized to the rising edge of CLK. If the optional CE pin is enabled, an active rising clock edge occurs only when CE is High. Clock Enable (CE) Clock enable is an optional input pin that is used to enable the synchronous operation of the core. When CE is High, a rising edge of CLK is acted upon by the core, but if CE is Low, the core remains in its current state. An active, rising clock edge is one on which CE (if enabled) is sampled High. Synchronous Clear (SCLR) The SCLR signal is optional. When SCLR is sampled High on an active rising clock edge, the core is reset to its initial state and is ready to process a new block. Following the initial configuration of the FPGA, the core is automatically in the reset state; no further SCLR is required before an encoding operation can take place. If the CE input port is selected, the SCLR is ignored if CE is Low. Data Input Ports (DATA_I_A / DATA_I_B) The DATA_I ports are mandatory input ports that carry the unencoded double-binary data couples. The input process is started with a First Data (FD_I) signal. When FD_I is sampled High, the value on the DATA_I_A port is the MSB of the first byte of unencoded data. Data couples are read serially into the DATA_I port on a clock-by-clock basis. BLK_SIZE*4 clock cycles are therefore required to input each block. First Data (FD_I) FD_I is a mandatory input port, which is used to start the encoder operation. When FD_I is sampled High on an active rising clock edge, the first data couple is read from the DATA_I_A and DATA_I_B ports, and the block size is read from the BLK_SIZE port. The core then continues loading data until a complete block has been input. The FD_I input should only be asserted when the RFFD output is High (see below). If FD_I is sampled High when RFFD is Low, this is an abort condition, and the behavior of the core is not specified. DS525 April 24, 2009 www.xilinx.com 3

Ready for First Data (RFFD) A logic High on RFFD indicates that the core is ready to accept an FD_I signal to start a new encoding operation. When an FD_I signal is sampled High, the RFFD signal goes Low and remains Low until it is safe to start another block. Block Size (BLK_SIZE) This 10-bit input port determines the size, in bytes, of the block of data that is about to be written into the encoder. The block size value is sampled on an active rising clock edge when FD_I is High. If an invalid block size is sampled, the behavior of the core is not specified. Systematic Data Output (SYST_A / SYST_B) SYST_A and SYST_B are mandatory output ports, which are delayed versions of the uninterleaved double-binary input data, DATA_I_A and DATA_I_B, respectively. RSC1 Parity Y Output (PAR_Y1) PAR_Y1 is a mandatory output port, which is the Y output of the Constituent Encoder RSC1. RSC1 Parity W Output (PAR_W1) PAR_W1 is a mandatory output port, which is the W output of the Constituent Encoder RSC1. RSC2 Parity Y Output (PAR_Y2) PAR_Y2 is a mandatory output port, which is the Y output of the Constituent Encoder RSC2. RSC2 Parity W Output (PAR_W2) PAR_W2 is a mandatory output port, which is the W output of the Constituent Encoder RSC2. Ready (RDY) RDY is a mandatory output port, which is driven High when there is valid data on the SYSTEMATIC and PARITY output ports Block Start (BLK_START) BLK_START is a mandatory output port, which is driven High for one clock period corresponding to the first valid output sample of a given block on the SYSTEMATIC and PARITY output ports Block End (BLK_ED) BLK_ED is a mandatory output port, which is driven High for one clock period corresponding to the last valid output sample of a given block on the SYSTEMATIC and PARITY output ports. 4 www.xilinx.com DS525 April 24, 2009

Functional Description Constituent Encoder The schematic of the constituent encoder and the polynomials for the first register input X and parity outputs Y and W are shown in Figure 2. Figure Top x-ref 2 A X + S1 + S2 + S3 B + + Y W XD ( ) = 1 + D + D 3 Y( D) = 1+ D 2 + D 3 WD ( ) = 1 + D 3 Figure 2: CRSC Constituent Encoder The constituent encoder produces a double-binary Circular Recursive Systematic Convolutional (CRSC) code. This code is more efficient than a basic Recursive Systematic Convolutional (RSC) code, because it does not require three tail bit periods to flush the encoder at the end of each block. Instead, the CRSC is pre-loaded with a circulation state at the start of each block. The CRSC is double-binary. It handles two data bits at a time, and the parity bits are functions of both input bits. Calculation of the circulation state for the constituent encoder is performed as follows. 1. Initialize the encoder to state 0. Encode the input sequence (in either interleaved or uninterleaved order as required), and obtain the final state of the encoder. 2. Apply a look up table to obtain the circulation state. In the CTC encoder core, the above operations are performed in parallel by the two precoders. DS525 April 24, 2009 www.xilinx.com 5

Internal Architecture The internal architecture of the core is shown in Figure 3. Figure Top x-ref 3 BLK_SIZE FD_I DATA_I(A:B) DIA M1 M1_DOUTA M1_DOUTB M1_DOUTA M2_DOUTA M3_DOUTA M1_DOUTB M2_DOUTB M3_DOUTB PRECODER 1 PRECODER 2 Interleaver (Precoder) CS2 CS1 Double-binary data couple DIA M2 ADDRESS x 6 COTROL x 6 M2_DOUTA M2_DOUTB MEMORY COTROL TIMIG COTROL RDY BLK_START RFFD DIA M3 M3_DOUTA M3_DOUTB M1_DOUTB M2_DOUTB M3_DOUTB M1_DOUTA M2_DOUTA M3_DOUTA Interleaver (Main) ECODER RSC2 ECODER RSC1 PAR_Y2 PAR_W2 PAR_Y1 PAR_W1 Memory Bank SYST_A SYST_B Figure 3: CTC Encoder Structure The sequence of input data couples is written into one of three dual-port memory buffers, while data from the other two dual-port memories are streamed out to the precoders and the encoders. The three dual-port memories are rotated every block. Data couples read out of the DOUTA ports of the memory bank are in uninterleaved (natural) order, whereas those read from the DOUTB ports are in interleaved order. Triple-buffering for Maximum Throughput As described previously, the encoder employs six parallel outputs, and a triple-buffered memory architecture for maximum throughput. Figure 4 illustrates the utilization of the three memories, M1, M2, and M3, and the effects on throughput of changing the block size. The throughput is at a maximum if the block size is constant, as in Figure 4(a). In this case, the output data is continuous, with the exception that due to internal delays there is a 4-cycle gap every third block. This is signalled on the output side by a Low on RDY and on the input side by a delay in RFFD of five cycles once every third block. Figure 4(b) shows the effect of increasing the block size. Since it takes longer to write a large block into memory than it does to read a smaller one out, the memory controller needs to wait for the larger block to be written before it can rotate the buffers. This causes a gap in the output data, which is signalled by a Low on RDY. 6 www.xilinx.com DS525 April 24, 2009

Figure 4(c) shows the effect of decreasing the block size. Since it takes longer to read a large block out of memory than it does to write smaller one in, the memory controller needs to wait for the larger block to be read out before it can rotate the buffers. To avoid overrun on the input, RFFD is held Low until the memory read operation has completed. Figure Top x-ref 4 a) Memory utilization for constant block size () FD_I DATA_I WRITE M3 M1 M2 M3 M1 PRECODER READ M2 M3 M1 M2 M3 ECODER READ M1 M2 M3 M1 M2 RDY b) Memory utilization for increasing block size (n to, where > n) FD_I DATA_I WRITE n M3 n M1 n M2 M3 M1 M2 PRECODER n M2 n M3 n M1 n M2 M3 M1 READ ECODER n M1 n M2 n M3 n M1 n M2 READ RDY M3 M3 M2 M1 c) Memory utilization for decreasing block size ( to n, where n < ) FD_I DATA_I WRITE M3 n M1 n M2 n M3 n M1 n M2 n M3 n M1 n M2 PRECODER READ M2 M3 n M1 n M2 n M3 n M1 n M2 n M3 n M1 ECODER READ M1 M2 M3 n M1 n M2 n M3 n M1 n M2 n M3 RDY Figure 4: Triple-Buffering Memory Utilization DS525 April 24, 2009 www.xilinx.com 7

Input Control Signals Figure 5 shows the signals associated with the data input side of the core. When FD_I is sampled High on an active rising edge of CLK, the RFFD signal is driven Low to indicate that the core is no longer waiting for FD_I. The block size (in bytes), in this case n/4, of the current input block is sampled on the BLK_SIZE port, and the first data couple, A0 and B0, is sampled on the DATA_I ports. The core continues to input data until n new data couples have been accepted, and then the core stops sampling the DATA_I ports. When the core is ready to accept a new block of data, RFFD is driven High. After asserting RFFD, the core waits until the next FD_I pulse, and then a new write cycle is started, in this case with block size m/4. Figure Top x-ref 5 CLK CE RFFD FD BLK_SIZE DATA_I_A DATA_I_B n/4 m/4 A0 A1 A2 A3 A4 A5 An-2 An-1 a0 a1 a2 a3 B0 B1 B2 B3 B4 B5 Bn-2 Bn-1 b0 b1 b2 b3 Figure 5: Input Timing 8 www.xilinx.com DS525 April 24, 2009

Output Control Signals The RDY signal is driven High to indicate that there is valid data on the systematic and parity ports. The BLK_START signal is driven High for one clock cycle at the start of an output block as shown in Figure 6. Figure Top x-ref 6 CLK CE SYST_A SYST_B A0 A1 A2 A3 A4 A5 An-2 An-1 a0 a1 a2 a3 B0 B1 B2 B3 B4 B5 Bn-2 Bn-1 b0 b1 b2 b3 PAR_Y1 Y1_0 Y1_1 Y1_2 Y1_3 Y1_4 Y1_5 Y1_n-2 Y1_n-1 y1_0 y1_1 y1_2 y1_3 PAR_W1 PAR_Y2 W1_0 W1_1 W1_2 W1_3 W1_4 W1_5 W1_n-2 W1_n-1 w1_0 w1_1 w1_2 w1_3 Y2_0 Y2_1 Y2_2 Y2_3 Y2_4 Y2_5 Y2_n-2 Y2_n-1 y2_0 y2_1 y2_2 y2_3 PAR_W2 W2_0 W2_1 W2_2 W2_3 W2_4 W2_5 W2_n-2 W2_n-1 w2_0 w2_1 w2_2 w2_3 RDY BLK_START BLK_ED Latency Figure 6: Output Timing The latency is defined as the number of cycles from when the first input data couple is sampled until the first encoded output. In other words, the time from the FD_I input being sampled until the BLK_START output being asserted for that block. Due to the triple-buffered architecture, all data must be written to RAM, read out first to the precoder, and then again to the main encoder. In the case where the block size is invariant, the latency is therefore a few cycles more than twice the block size in couples. In general, when the block size is not constant, there may be an additional component to the latency, such as a larger block already being processed. The worst case first-in-to-first-out latency for any given block is therefore just over twice the largest block size in couples. This can be understood by referring to the previous section on triple-buffering. Some latency values for fixed block sizes are given in table Table 2. Table 2: Latency Values for Fixed Block Sizes Blk_size Block Size (Couples) Latency First Input to First Output (Typical)(Cycles) 6 24 58 9 36 82 12 48 106 18 72 154 24 96 202 DS525 April 24, 2009 www.xilinx.com 9

Table 2: Latency Values for Fixed Block Sizes (Continued) Blk_size Block Size (Couples) Latency First Input to First Output (Typical)(Cycles) 27 108 226 30 120 250 36 144 298 45 180 370 48 192 394 54 216 442 60 240 490 120 480 970 240 960 1930 360 1440 2890 480 1920 3850 600 2400 4810 otes: 1. For a constant block size, First-in-last-out latency= 2+d cycles, where is the block size in couples, and d is a fixed delay. 2. On block size changes from block size 1 to 2, the First-in-last-out latency is given by: 2max( 1, 2 )+d for the first block of size 2, max( 1, 2 ) + 2 + d for the second block, 2 2 +d thereafter. Where: 1 and 2 are block sizes in couples. 3. First-in-last-out latency is (First-in-first-out latency)+ 2-1 cycles, 4. The fixed delay d is typically 10 cycles. 10 www.xilinx.com DS525 April 24, 2009

Performance and Resource Usage Some typical performance and resource usage figures for minimal and maximal implementations on Virtex-5 parts are given in Table 3. Table 3: Performance and Resource Usage With CE, SCLR, and ACLR ote Virtex-5 XC5VSX95T-1 Area (LUT6-FF pairs) 1 741 Area (Registers) 1 609 36K Block Memories 1 2 18K Block Memories 1 3 MULT18x18s or DSP48s 1 0 Speed (MHz) 1,2,3 303 Without CE, SCLR, or ACLR ote Virtex-5 XC5VSX95T-1 Area (LUT6-FF pairs) 1 666 Area (Registers) 1 608 36K Block Memories 1 2 18K Block Memories 1 3 MULT18x18s or DSP48s 1 0 Speed (MHz) 1,2,3 303 otes: 1. Area and maximum clock frequencies are provided as a guide. They may vary with new releases of Xilinx implementation tools, etc. 2. Obtained with the core instantiated within a double registered wrapper, and with the outer wrapper registers in the IOBs. Area figures do not include the inner wrapper registers. 3. Clock frequency does not take clock jitter into account and should be derated by an amount appropriate to the clock source jitter specification. Throughput The throughput is greatest when larger block sizes are used. Table 4 shows the throughput values obtained for some typical block sizes. Table 4: Throughput Values Block Size (Couples) Input Data Throughput (% of Clock Frequency) 24 94.7 216 99.4 480 99.7 2400 99.9 DS525 April 24, 2009 www.xilinx.com 11

References 1. IEEE Std 802.16e-2004/Cor1/D5. IEEE Standard for Local and Metropolitan Area etworks, Part 16: Air Interface for Fixed Broadband Wireless Access Systems (Draft Corrigendum) 2. C. Berrou, A. Glavieux, and P. Thitimajshima, ear Shannon Limit Error-correcting Coding and Decoding Turbo Codes, IEEE Proc 1993 Int Conf. Comm., pp. 1064-1070. Ordering Information This Xilinx LogiCORE IP product is provided under the terms of the SignOnce IP Site License. To evaluate this core in hardware, generate an evaluation license, which can be accessed from the Xilinx IP Evaluation page. After purchasing the core, you will receive instructions for registering and generating a full license. The full license can be requested and installed from the Xilinx IP Center for use with the Xilinx CORE Generator. The CORE Generator software is bundled with all Alliance series software package at no additional charge. Contact your local Xilinx sales representative for pricing and availability of Xilinx LogiCORE products and software. France Telecom, for itself and certain other parties, claims certain intellectual property rights covering Turbo Codes technology, and is licensing these rights under a licensing program called the Turbo Codes Licensing Program. Supply of this IP core does not convey a license nor imply any right to use any Turbo Codes patents owned by France Telecom, TDF, or GET. Contact France Telecom for information about its Turbo Codes Licensing Program at the following address: France Telecom R&D, VAT/TUR- BOCODES 38, rue du Général Leclerc 92794 Issy Moulineaux Cedex 9. otice of Disclaimer Xilinx is providing this product documentation, hereinafter Information, to you AS IS with no warranty of any kind, express or implied. Xilinx makes no representation that the Information, or any particular implementation thereof, is free from any claims of infringement. You are responsible for obtaining any rights you may require for any implementation based on the Information. All specifications are subject to change without notice. XILIX EXPRESSLY DISCLAIMS AY WARRATY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE IFORMATIO OR AY IMPLE- METATIO BASED THEREO, ICLUDIG BUT OT LIMITED TO AY WARRATIES OR REPRESETATIOS THAT THIS IMPLEMETATIO IS FREE FROM CLAIMS OF IFRIGE- MET AD AY IMPLIED WARRATIES OF MERCHATABILITY OR FITESS FOR A PARTIC- ULAR PURPOSE. Except as stated herein, none of the Information may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. 12 www.xilinx.com DS525 April 24, 2009

Revision History The following table shows the revision history for this document. Date Version Revision 01/18/06 1.1 Initial Xilinx release. 09/28/06 2.0 Updated to v2.0 of Encoder and Xilinx ISE tools v8.2i. 02/15/07 2.1 Updated for v2.1 of Encoder and Xilinx ISE tools v9.1i. 04/02/07 2.5 Added support for Spartan-3A DSP devices. 04/24/09 3.0 Removed support for legacy Virtex devices, added support for Virtex-6 and Spartan-6 FPGAs, updated for v3.0 of the Encoder and Xilinx ISE v11.1 tools. 13 www.xilinx.com DS525 April 24, 2009