Dynamic Block Reed-Solomon Encoder User's Guide August 2010 IPUG40_03.6 Table of Contents Chapter 1. Introduction .......................................................................................................................... 4 Quick Facts ........................................................................................................................................................... 4 Features ................................................................................................................................................................ 8 Chapter 2. Functional Description ...................................................................................................... 10 General Description ............................................................................................................................................ 10 Field Polynomial......................................................................................................................................... 11 Generator Polynomial ................................................................................................................................ 11 Shortened Codes ....................................................................................................................................... 11 Output Latency........................................................................................................................................... 11 Functional Description......................................................................................................................................... 11 Multiplier Array ........................................................................................................................................... 11 Adder Array ................................................................................................................................................ 11 Remainder Array ........................................................................................................................................ 12 Control........................................................................................................................................................ 12 Basis Conversion Modules......................................................................................................................... 12 Signal Descriptions ............................................................................................................................................. 12 Timing Specifications .......................................................................................................................................... 13 Chapter 3. Parameter Settings ............................................................................................................ 17 Reed-Solomon Encoder Configuration GUI ........................................................................................................ 18 Core Configuration ..................................................................................................................................... 18 RS Parameters........................................................................................................................................... 18 Check Symbols .......................................................................................................................................... 19 Block Size Type ......................................................................................................................................... 19 Implementation Parameters ....................................................................................................................... 19 Optional Output Ports................................................................................................................................. 19 Summary............................................................................................................................................................. 20 Chapter 4. IP Core Generation............................................................................................................. 21 Licensing the IP Core.......................................................................................................................................... 21 Getting Started .................................................................................................................................................... 21 IPexpress-Created Files and Top Level Directory Structure............................................................................... 23 Instantiating the Core .......................................................................................................................................... 25 Running Functional Simulation ........................................................................................................................... 25 Synthesizing and Implementing the Core in a Top-Level Design ....................................................................... 25 Hardware Evaluation........................................................................................................................................... 26 Enabling Hardware Evaluation in Diamond:............................................................................................... 26 Enabling Hardware Evaluation in ispLEVER:............................................................................................. 26 Updating/Regenerating the IP Core .................................................................................................................... 26 Regenerating an IP Core in Diamond ........................................................................................................ 26 Regenerating an IP Core in ispLEVER ...................................................................................................... 27 Chapter 5. Support Resources ............................................................................................................ 28 Lattice Technical Support.................................................................................................................................... 28 Online Forums............................................................................................................................................ 28 Telephone Support Hotline ........................................................................................................................ 28 E-mail Support ........................................................................................................................................... 28 Local Support ............................................................................................................................................. 28 Internet ....................................................................................................................................................... 28 References.......................................................................................................................................................... 28 LatticeECP ........................................................................................................................................... /EC28 LatticeECP2M ............................................................................................................................................ 28 (c) 2010 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal. All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice. IPUG40_03.6, August 2010 2 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Table of Contents LatticeECP3 ............................................................................................................................................... 29 LatticeSC/M................................................................................................................................................ 29 LatticeXP.................................................................................................................................................... 29 LatticeXP2.................................................................................................................................................. 29 Related Information............................................................................................................................................. 29 Revision History .................................................................................................................................................. 29 Appendix A. Resource Utilization ....................................................................................................... 30 LatticeECP and LatticeEC FPGAs ...................................................................................................................... 30 Ordering Part Number................................................................................................................................ 30 LatticeECP2 and LatticeECP2S FPGAs ............................................................................................................. 31 Ordering Part Number................................................................................................................................ 31 LatticeECP2M and LatticeECP2MS FPGAs ....................................................................................................... 32 Ordering Part Number................................................................................................................................ 32 LatticeECP3 FPGAs............................................................................................................................................ 32 Ordering Part Number................................................................................................................................ 32 LatticeXP FPGAs ................................................................................................................................................ 33 Ordering Part Number................................................................................................................................ 33 LatticeXP2 FPGAs .............................................................................................................................................. 33 Ordering Part Number................................................................................................................................ 33 LatticeSC and LatticeSCM FPGAs ..................................................................................................................... 34 Ordering Part Number................................................................................................................................ 34 IPUG40_03.6, August 2010 3 Dynamic Block Reed-Solomon Encoder User's Guide Chapter 1: Introduction Lattice's Dynamic Block Reed-Solomon Encoder IP core can be used for forward error correction in many terrestrial communication, space communication, data storage, and data retrieval systems. The encoder is compliant with several industrial standards including the more recent IEEE 802.16-2004. The Reed-Solomon Encoder IP core provides a customizable solution allowing forward error correction in other non-standard applications as well. The encoder supports both a fixed, as well as a variable number of total symbols (block) and check symbols. In the variable configurations, either the block size or both the block size and check symbols can be dynamically varied through ports. The core allows dynamic output check symbols puncturing in the fixed check symbols configurations. This user's guide describes the functionality and implementation of the Reed-Solomon Encoder. Lattice also offers a Reed-Solomon Decoder core that can serve as a complementary pair for decoding. For more information on Lattice products, refer to the Lattice web site at www.latticesemi.com. Quick Facts Table 1-1 through Table 1-9 give quick facts about the Dynamic Block Reed-Solomon Encoder IP core for LatticeECTM, LatticeECPTM, LatticeECP2TM, LattceECP2MTM, LattticeSCTM, LatticeSCMTM, LatticeXPTM, LatticeXP2TM, and LatticeECP3TM devices. Table 1-1. Dynamic Block Reed-Solomon Encoder IP core for LatticeEC Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFEC1E LFEC1E Synthesis LFEC1E LFEC1E LFEC3E 300 500 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 600 (R) (R) Diamond 1.0 or ispLEVER 8.1 Synopsys(R) SynplifyTM Pro for Lattice D-2009.12L-1 Aldec(R) Active-HDLTM 8.2 Lattice Edition Simulation IPUG40_03.6, August 2010 LFEC1E LFEC20E-5F672C Lattice Implementation Design Tool Support ATSC IEEE 802.162004 SC Lattice EC Targeted Device Resource Utilization DVB IEEE 802.162004 SCa Mentor Graphics(R) ModelSimTM SE 6.3F 4 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Introduction Table 1-2. Dynamic Block Reed-Solomon Encoder IP core for LatticeECP Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFECP6E LFECP20E-5F672C 300 500 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 600 Lattice Implementation Design Tool Support ATSC IEEE 802.162004 SC Lattice ECP Targeted Device Resource Utilization DVB IEEE 802.162004 SCa Diamond 1.0 or ispLEVER 8.1 Synthesis Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation Mentor Graphics ModelSim SE 6.3F Table 1-3. Dynamic Block Reed-Solomon Encoder IP core for LatticeECP2 Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFE2-6E LFE2-50E-7F484C 300 400 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 500 Lattice Implementation Design Tool Support Synthesis Diamond 1.0 or ispLEVER 8.1 Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation IPUG40_03.6, August 2010 ATSC IEEE 802.162004 SC Lattice ECP2 Targeted Device Resource Utilization DVB IEEE 802.162004 SCa Mentor Graphics ModelSim SE 6.3F 5 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Introduction Table 1-4. Dynamic Block Reed-Solomon Encoder IP core for LatticeECP2M Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFE2M20E LFE2M35E-7F484C 300 400 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 500 Lattice Implementation Design Tool Support ATSC IEEE 802.162004 SC Lattice ECP2M Targeted Device Resource Utilization DVB IEEE 802.162004 SCa Diamond 1.0 or ispLEVER 8.1 Synthesis Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation Mentor Graphics ModelSim SE 6.3F Table 1-5. Dynamic Block Reed-Solomon Encoder IP core for LatticeSC Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFSC3GA15E LFSC3GA25E-7F900C 300 500 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 500 Lattice Implementation Design Tool Support Synthesis Diamond 1.0 or ispLEVER 8.1 Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation IPUG40_03.6, August 2010 ATSC IEEE 802.162004 SC Lattice SC Targeted Device Resource Utilization DVB IEEE 802.162004 SCa Mentor Graphics ModelSim SE 6.3F 6 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Introduction Table 1-6. Dynamic Block Reed-Solomon Encoder IP core for LatticeSCM Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFSCM3GA15EP1 LFSCM3GA25EP1-7F900C 300 500 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 500 Lattice Implementation Design Tool Support ATSC IEEE 802.162004 SC Lattice SCM Targeted Device Resource Utilization DVB IEEE 802.162004 SCa Diamond 1.0 or ispLEVER 8.1 Synthesis Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation Mentor Graphics ModelSim SE 6.3F Table 1-7. Dynamic Block Reed-Solomon Encoder IP core for LatticeXP Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFXP3E LFXP20E-5F256C 300 500 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 600 Lattice Implementation Design Tool Support Synthesis Diamond 1.0 or ispLEVER 8.1 Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation IPUG40_03.6, August 2010 ATSC IEEE 802.162004 SC Lattice XP Targeted Device Resource Utilization DVB IEEE 802.162004 SCa Mentor Graphics ModelSim SE 6.3F 7 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Introduction Table 1-8. Dynamic Block Reed-Solomon Encoder IP core for LatticeXP2 Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS DVB FPGA Families Supported Lattice XP2 Minimal Device Needed LFXP2-5E Targeted Device Resource Utilization LUTs sysMEM EBRs Registers IEEE 802.162004 SC LFXP2-17E-7FT256C 300 400 300 400 400 2700 0 0 0 0 0 0 300 400 300 300 300 500 Lattice Implementation Design Tool Support ATSC IEEE 802.162004 SCa Diamond 1.0 or ispLEVER 8.1 Synthesis Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation Mentor Graphics ModelSim SE 6.3F Table 1-9. Dynamic Block Reed-Solomon Encoder IP core for LatticeECP3 Devices Quick Facts Dynamic Block Reed-Solomon Encoder IP Configuration OC-192 Core Requirements CCSDS DVB FPGA Families Supported Minimal Device Needed LUTs sysMEM EBRs Registers LFE3-35EA LFE3-95E-8FN484CES 300 500 300 400 400 2800 0 0 0 0 0 0 300 400 300 300 300 500 Lattice Implementation Design Tool Support Synthesis IEEE 802.162004 SC Lattice ECP3 Targeted Device Resource Utilization ATSC IEEE 802.162004 SCa Diamond 1.0 or ispLEVER 8.1 Synopsys Synplify Pro for Lattice D-2009.12L-1 Aldec Active-HDL 8.2 Lattice Edition Simulation Mentor Graphics ModelSim SE 6.3F Features * 3- to 12-bit symbol width * Configurable field polynomial * Configurable generator polynomial: starting root and root spacing * User-defined codewords - Maximum of 4095 symbols - Maximum of 256 check symbols - Shortened codes IPUG40_03.6, August 2010 8 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Introduction * Selectable Reed-Solomon standards - OC-192 - DVB - CCSDS - ATSC - IEEE 802.16-2004 WirelessMAN-SCa/OFDM - IEEE 802.16-2004 WirelessMAN-SC * Fully synchronous * Registered input selection * Systematic encoder * Full handshaking capability * Dynamically variable block size * Dynamically variable check symbols * Dynamically variable check symbols puncturing IPUG40_03.6, August 2010 9 Dynamic Block Reed-Solomon Encoder User's Guide Chapter 2: Functional Description Figure 2-1 illustrates the operation of a systematic encoder. Figure 2-1. Reed-Solomon Encoder Block Diagram Multiplier Array Control Bus din rstn enable byp ibstart clk blocksize Adder Array Remainder Array Control dout status outvalid rfi obstart obend rfib ibend numchks General Description Reed-Solomon codes are used to perform Forward Error Correction (FEC). FEC introduces controlled redundancy in the data before it is transmitted to allow error correction at the receiver. The redundant data (check symbols) are transmitted with the original data to the receiver. A Reed-Solomon Decoder is used in the receiver to correct any transmission errors. This type of error correction is widely used in data communications applications such as Digital Video Broadcast (DVB) and Optical Carriers (i.e. OC-192). Reed-Solomon codes are written in the format RS(n,k) where k is the number of information symbols and n is the total number of symbols in a codeword or block. Each symbol in the codeword is wsymb bits wide. The first k symbols in the Reed-Solomon Encoder output are information symbols and the last n-k symbols are check symbols. This type of encoder, where the information symbols are unchanged and are followed by check symbols in the output, is called a systematic encoder. Figure 2-1 illustrates the operation of a systematic encoder. Reed-Solomon codes are defined on a finite field known as a Galois field. The size of the field is determined by the symbol width, wsymb, and is equal to 2wsymb. When n is less than its maximum value of 2wsymb - 1, it is referred to as a shortened code. Reed-Solomon codes are characterized by two polynomials: the generator polynomial and the field polynomial. The field polynomial defines the Galois field where the information and check symbols belong. The generator polynomial determines the check symbol generation and it is a prime polynomial for all codewords (i.e. all codewords are exactly divisible by the generator polynomial). Both the field and generator polynomials are user configurable. IPUG40_03.6, August 2010 10 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Functional Description Field Polynomial The field polynomial is defined by its decimal value (f). The decimal value of a field polynomial is obtained by setting x=2 in the polynomial. For example, the polynomial x2 + x + 1 in decimal value is 22 + 2 + 1 = 7. The field polynomial can be specified as any prime polynomial with decimal value up to 2wsymb+1 - 1. Generator Polynomial The generator polynomial determines the value of the check symbols. The generator polynomial can be defined by the parameters starting root (gstart) and root spacing (rootspace). The general form of the generator polynomial is given by: (x - rootspace (gstart + i)) n-k-1 g(x) = (1) i=0 where a (alpha) is called the primitive element of the field polynomial. For a binary Galois field GF(2), a (alpha) is equal to 2. Shortened Codes When the size of the Reed-Solomon codewords, n, is less than the maximum possible size, 2wsymb - 1, they are called shortened codes. For example, RS (204,188) when wsymb = 8 is a shortened code. Only the non-zero data is transmitted to the encoder (i.e., 188 in the above example). The encoder then generates the required check symbols from the non-zero data. Output Latency Output Latency for the Reed-Solomon Encoder core is defined as the number of clock cycles between the sampling of the first input data and the availability of the first data at the output port. It is three clock cycles when the inputs are registered and two clock cycles otherwise. Functional Description The Reed-Solomon Encoder utilizes Multiplier, Adder and Remainder arrays to perform finite field arithmetic. A block diagram of the Reed-Solomon Encoder is shown in Figure 2-2. The following section explains the operation of the arrays and the Control block. Figure 2-2. Systematic Reed-Solomon Encoder Codeword n-k Check Symbols DATA k-1 DATA 1 DATA 0 Reed-Solomon Encoder CHECKn-k-1 k Information Symbols CHECK 1 CHECK 0 DATA k-1 DATA 1 DATA 0 wsymb bits wide Multiplier Array The Multiplier array performs the Galois field multiplication between the generator coefficients and the modulo-2 sum of input data and feedback data. This multiplication is optimized during the processing of the core. Adder Array The Adder array performs modulo-2 addition on the data from the previous element of the Remainder array and the result of the corresponding Galois field multiplication from the Multiplier array. The outputs from the Adder array are latched into the Remainder array on each clock cycle. IPUG40_03.6, August 2010 11 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Functional Description Remainder Array The Remainder array is a shift register array. It stores the remainder polynomial after the polynomial division. The remainder polynomial becomes the check symbols once all information symbols have been processed. The Remainder array shifts-in the data from the Adder array while the information symbols are processed. When all the information symbols have been processed, the polynomial multiplication stops and the contents of the Remainder array are output to dout. Control The Control block generates all control signals and determines the state of the Reed-Solomon Encoder. The rstn, enable, byp, ibstart, and clk inputs control the state of the encoder. The Control block uses these inputs to control the state of the Multiplier, Adder and Remainder arrays as well as to generate the rfi, status, outvalid, ibend, obstart and obend outputs. Basis Conversion Modules When core type is selected as CCSDS, then two additional Basis Conversion modules are added to the Reed-Solomon Encoder. These modules comply to the CCSDS specification. Dual-basis to normal polynomial-basis conversion module is added after the din input port and normal polynomial-basis to dual-basis conversion module is added before the dout output port. Table 2-1. Default Field Polynomials Symbol Width Default Field Polynomial Decimal Value 3 x3 + x + 1 11 4 4 x +x+1 19 5 x5 + x2 +1 37 6 6 x +x+1 67 7 x 7 + x3 + 1 137 8 x8 + x4 + x3 + x2 + 1 285 9 x9 + x4 + 1 529 10 3 10 x +x +1 1033 11 x11 + x2 + 1 2053 12 12 6 4 x +x +x +x+1 4179 Signal Descriptions Table 2-2 shows the definitions of the interface signals available with the Reed-Solomon encoder IP Core Table 2-2. Interface Signal Descriptions Port Bits I/O Description All Configurations clk 1 I System clock. This is the reference clock for input and output data. rstn 1 I System wide asynchronous active-low reset signal. enable 1 I Enables the encoder to process data on din. When low, the input data is ignored and dout holds its state. byp 1 I When asserted, the data at the input din is passed directly to the output dout after the pipeline latency of the core. ibstart 1 I Indicates that the data on din is the first information symbol of a new codeword. This signal is ignored if byp is high or enable is low. din 3-12 I Input data port. The wsymb parameter defines the port width of this signal. dout 3-12 O Output data port. The wsymb parameter defines the port width of this signal. 1 O Indicates the information symbols are present on dout or byp is asserted. status IPUG40_03.6, August 2010 12 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Functional Description Table 2-2. Interface Signal Descriptions (Continued) Port Bits I/O Description For Variable Check Symbols or Punctured Check Symbols This signal is used for two functions. 1) When the parameter Variable check symbols is "Yes", this port is used to provide the number of check symbols value. The width of this port is equal to ceil(log2(Max. number of check symbols)) 2-9 numchks I 2) When the parameter Puncture check symbols is "Yes", this port is used to indicate the number of transmitted check symbols out of total of Number of check symbols. Only the first numchks number of check symbols are given out at the dout port. The width of this port is equal to ceil(log2(Number of check symbols)). In both cases, the value at this port is read only when ibstart is high. For Variable Block Size Type Only (When the Parameter Variable Block Size is "Yes") 3-12 I Variable block size value. The value at this port is read only when ibstart is high. The wsymb parameter defines the port width of this signal. outvalid 1 O Output data valid. This indicates valid data is present on dout. rfi 1 O Ready for input. This indicates the encoder is ready to receive input data. Typically, this signal is high when the core is ready to read information symbols and turns low when check symbols are being calculated. rfib 1 O Ready for input block. This indicates that the encoder is ready to receive the first information symbol in the block. ibend 1 O Input block end. This indicates that the encoder is sampling the last information symbol on the data input port din. obstart 1 O Output block start. This indicates first output data of the codeword on the dout port. obend 1 O Output block end. This indicates last output data of the codeword on the dout port. blocksize Optional I/Os Timing Specifications Figure 2-3 illustrates the timing of an RS (7,3) double pipelined encoder during normal operation. The diagram shows a typical behavior for the handshake signals status, rfi and outvalid. Figure 2-3. Timing of an RS (7,3) Double Pipelined Encoder clk rstn ibstart enable byp din dout D00 D01 D02 X D00 X X D01 D02 X D10 C00 C01 D11 C02 D12 C03 status rfi outvalid IPUG40_03.6, August 2010 13 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Functional Description Figure 2-4 shows the timing of an RS (7,3) double pipelined encoder with byp asserted during the operation of the encoder. The handshake signals are identical to normal operation, but the output is shifted due to the extra bypass data. Figure 2-4. Timing of an RS (7,3) Double Pipelined Encoder with byp Asserted clk rstn ibstart enable byp din D00 D01 D02 dout DBP X X X X D00 D01 D02 DBP C00 D10 C01 D11 C02 status rfi outvalid Figure 2-5 shows the timing of an RS (7,3) double pipelined encoder with enable de-asserted during the operation of the encoder. The de-assertion of enable results in corresponding invalid outputs happening after a few cycles determined by the output latency and indicated by outvalid going low. When outvalid is low, the output handshake signals maintain their last state. Figure 2-5. Timing of an RS (7,3) Double Pipelined Encoder with enable De-asserted clk rstn ibstart enable byp din dout D00 D01 D02 X D00 X X X X D01 D02 D02 C00 D10 C01 D11 C02 status rfi outvalid Figure 2-6 shows the timing of an RS (7,3) double pipelined encoder with ibstart re-asserted during the operation of the encoder. The handshake signal rfi goes high to indicate the encoder is ready to receive a new set of data when ibstart is re-asserted during encoding. IPUG40_03.6, August 2010 14 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Functional Description Figure 2-6. Timing of an RS (7,3) Double Pipelined Encoder with ibstart Re-asserted clk rstn ibstart enable byp din dout D00 D01 D02 D10 X D00 D01 D11 D02 D12 C00 X X X D10 D11 D12 status rfi outvalid Figure 2-7 explains the timing of an RS (7,3) double pipelined encoder with variable block size and variable check symbols. The figure also shows the timing of the optional output ports outvalid, obstart, obend, rfi, rfib and ibend. IPUG40_03.6, August 2010 15 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Functional Description Figure 2-7. Timing of an RS (7,3) Encoder with Variable Block Size and Variable Check Symbols clk rstn enable byp ibstart blocksize 7 7 7 numchks 4 4 4 din D00 D01 dout D02 D00 D01 D02 C00 D10 D11 D12 C01 C02 C03 D10 D11 D12 C10 D20 D21 C11 C12 status outvalid obstart obend rfi rfib ibend IPUG40_03.6, August 2010 16 Dynamic Block Reed-Solomon Encoder User's Guide Chapter 3: Parameter Settings The IPexpressTM tool is used to create IP and architectural modules in the Diamond and ispLEVER software. Refer to "IP Core Generation" on page 24 for a description on how to generate the IP. The Dynamic Block Reed-Solomon Encoder IP core GUI allows the user to create a custom configuration or to select one of the standard configurations: OC-192, CCSDS, DVB, ATSC, IEEE 802.16-2004 WirelessMANSCa/OFDM and IEEE 802.16-2004 WirelessMAN-SC. Table 3-1 provides the list of user configurable parameters for the Reed-Solomon Encoder IP core. Table 3-1. User Configurable Parameters Parameter Range Default Custom, OC-192, CCSDS, DVB, ATSC, IEEE 802.162004 SCa, IEEE 802.16-2004 SC OC-192 Yes,/No Yes 3 - 12 bits 8 bits 5 - 8191 285 gstart 0 - 65535 0 rootspace 1 - 65535 1 {Constant, Variable} if "Variable check symbols" is not checked. {Variable} if "Variable check symbols" is checked. Constant Core Type Core type Connect reset port to GSR RS Parameters wsymb fpoly Block Size Type Block size type n 3 - 4095 255 k 1 - 4093 239 Variable check symbols Yes,/No No Max. number of check symbols 3 - 128 Even number of check symbols Yes,/No Number of check symbols 2 - 256 Puncture check symbols Yes,/No Check Symbols 32 No 16 No Implementation Parameters Registered input Yes,/No Use mult. opt. algorithm Yes,/No Yes Yes Optional Output Ports rfi Yes,/No No outvalid Yes,/No No rfib Yes,/No No ibend Yes,/No No obstart Yes,/No No obend Yes,/No No IPUG40_03.6, August 2010 17 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Parameter Settings Reed-Solomon Encoder Configuration GUI Figure 3-1 shows the contents of the Reed-Solomon Encoder IP core Configuration GUI. Figure 3-1. Reed-Solomon Encoder IP core Configuration GUI Core Configuration This parameter selects between custom and pre-defined standard configurations. The Parameter Settings of the Standard Configurations table in the Dynamic Block Reed-Solomon Encoder User's Guide defines the fixed parameter values for different standard configurations. RS Parameters wsymb This parameter specifies the symbol width. fpoly This parameter specifies the decimal value of the field polynomial. Table 2-1 on page 12 defines the default field polynomial parameter values for different symbol widths. gstart This parameter specifies the offset value of the generator polynomial. The starting value for the first root of the generator polynomial is calculated as rootspace * gstart. rootspace This parameter specifies root spacing of the generator polynomial. The value of rootspace must satisfy the following equation: GCD(rootspace, 2wsymb-1) = 1. GCD is Greatest Common Divisor. IPUG40_03.6, August 2010 18 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Parameter Settings Check Symbols Variable Check Symbols Specifies whether the number of check symbols is variable through the input port. Number of Check Symbols This parameter specifies the maximum value for number of check symbols provided through the input port numchks. This parameter selection is available when Variable check symbols is checked. Even Number of Check Symbols If this is checked, only even values should be provided on the input port numchks. If an odd value is given, it is internally set to the next lower even value. If this parameter is checked the core area is smaller and performance is better. This parameter selection is available when Variable check symbols is checked. Pucture Check Symbols This paramete enables the puncturing of check symbols, whereby only the first few check symbols are transmitted. The number of transmitted check symbols value is provided through the input port numchks. This parameter selection is available when Block size type is selected as "Variable" and Variable check symbols is not checked. Block Size Type Specifies whether block size is provided as a constant value or varied through the input port. If Block size type is selected as "Variable", the block size is read from the input port blocksize. Block Size(n) This parameter specifies the total number of symbols in the codeword. This parameter can be defined only when block size is constant. Information Symbols(k) This parameter specifies the number of information symbols in the codeword. This parameter can be defined only when block size is constant Implementation Parameters Registered Input This parameter specifies whether the inputs are registered. Having registered inputs improves the performance of the core, but the latency will increase by one. Use Mult. Opt. Algorithm This parameter enables Galois field multiplication optimization algorithm to be used before synthesis. If this option is not checked, the optimization is left to the synthesis tool. In most cases, using an optimization algorithm results in improved performance and reduced area. Optional Output Ports rfi Determines whether the output port rfi (ready for input) is present. outvalid Determines whether the output port outvalid (output valid) is present. rfib Determines whether the output port rfib (ready for input block or first data in the codeword) is present. ibend Determines whether the output port ibend (input block end or last information symbol in the codeword) is present. obstart Determines whether the output port obstart (output block start) is present. IPUG40_03.6, August 2010 19 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Parameter Settings obend Determines whether the output port obend (output block end) is present. Summary The Summary entry in Figure 3-1 shows the output latency of the IP core based on the specified parameters. Output Latency for the Reed-Solomon Encoder IP core is defined as the number of clock cycles between the sampling of the first input data and the availability of the first data at the output port. It is three clock cycles when the inputs are registered and two clock cycles otherwise. IPUG40_03.6, August 2010 20 Dynamic Block Reed-Solomon Encoder User's Guide Chapter 4: IP Core Generation This chapter provides information on licensing the Dynamic Block Reed-Solomon Encoder IP core, generating the core using the Diamond or ispLEVER software IPexpress tool, running functional simulation, and including the core in a top-level design. The Lattice Dynamic Block Reed-Solomon Encoder IP core can be used in LatticeECP3, LatticeECP2/M, LatticeECP, LatticeSC/M, LatticeXP, and LatticeXP2 device families. Licensing the IP Core An IP license is required to enable full, unrestricted use of the Dynamic Block Reed-Solomon Encoder IP core in a complete, top-level design. An IP license that specifies the IP core and device family is required to enable full use of the core in Lattice devices. Instructions on how to obtain licenses for Lattice IP cores are given at: http://www.latticesemi.com/products/intellectualproperty/aboutip/isplevercoreonlinepurchas.cfm Users may download and generate the IP core and fully evaluate the core through functional simulation and implementation (synthesis, map, place and route) without an IP license. The Dynamic Block Reed-Solomon Encoder IP core also supports Lattice's IP hardware evaluation capability, which makes it possible to create versions of the IP core that operate in hardware for a limited time (approximately four hours) without requiring an IP license (see "Instantiating the Core" on page 25 for further details). However, a license is required to enable timing simulation, to open the design in the Diamond or ispLEVER EPIC tool, and to generate bitstreams that do not include the hardware evaluation timeout limitation. Getting Started The Dynamic Block Reed-Solomon Encoder IP core is available for download from the Lattice IP Server using the IPexpress tool. The IP files are automatically installed using ispUPDATE technology in any customer-specified directory. After the IP core has been installed, the IP core will be available in the IPexpress GUI dialog box shown in Figure 4-1. The IPexpress tool GUI dialog box for the Dynamic Block Reed-Solomon Encoder IP is shown in Figure 4-1. To generate a specific IP core configuration the user specifies: * Project Path - Path to the directory where the generated IP files will be loaded. * File Name - "username" designation given to the generated IP core and corresponding folders and files. * (Diamond) Module Output - Verilog or VHDL. * (ispLEVER) Design Entry Type - Verilog HDL or VHDL. * Device Family - Device family to which IP is to be targeted (e.g. LatticeSCM, Lattice ECP2M, LatticeECP3, etc.). Only families that support the particular IP core are listed. * Part Name - Specific targeted part within the selected device family. IPUG40_03.6, August 2010 21 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor IP Core Generation Figure 4-1. IPexpress Dialog Box (Diamond Version) Note that if the IPexpress tool is called from within an existing project, Project Path, Module Output (Design Entry in ispLEVER), Device Family and Part Name default to the specified project parameters. Refer to the IPexpress tool online help for further information. To create a custom configuration, the user clicks the Customize button in the IPexpress tool dialog box to display the Dynamic Block Reed-Solomon Encoder IP core Configuration GUI, as shown in Figure 4-2. From this dialog box, the user can select the IP parameter options specific to their application. Refer to "Parameter Settings" on page 17 for more information on the parameter settings. IPUG40_03.6, August 2010 22 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor IP Core Generation Figure 4-2. Configuration Dialog Box (Diamond Version) IPexpress-Created Files and Top Level Directory Structure When the user clicks the Generate button in the IP Configuration dialog box, the IP core and supporting files are generated in the specified "Project Path" directory. The directory structure of the generated files is shown in Figure 4-3. IPUG40_03.6, August 2010 23 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor IP Core Generation Figure 4-3. Lattice Dynamic Block Reed-Solomon Encoder IP core Directory Structure Table 4-1 provides a list of key files created by the IPexpress tool and how they are used. The IPexpress tool creates several files that are used throughout the design cycle. The names of most of the created files are customized to the user's module name specified in the IPexpress tool. Table 4-1. File List File Description _inst.v This file provides an instance template for the IP. _bb.v This file provides the synthesis black box for the user's synthesis. .ngo The ngo files provide the synthesized IP core used by Diamond or ispLEVER. This file needs to be pointed to by the Build step by using the search path property. .lpc This file contains the IPexpress tool options used to recreate or modify the core in the IPexpress tool. .ipx The IPX file holds references to all of the elements of an IP or Module after it is generated from the IPexpress tool (Diamond version only). The file is used to bring in the appropriate files during the design implementation and analysis. It is also used to re-load parameter settings into the IP/Module generation GUI when an IP/Module is being re-generated. _top.[v,vhd] This file provides a module which instantiates the RS Encoder core. This file can be easily modified for the user's instance of the RS Encoder core. This file is located in the rsenc_eval//src/rtl/top/ directory. _generate.tcl This file is created when GUI "Generate" button is pushed and generation is invoked. This file may be run from command line. _generate.log This is the IPexpress scripts log file. _gen.log This is the IPexpress IP generation log file. IPUG40_03.6, August 2010 24 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor IP Core Generation Instantiating the Core The \ and subtending directories provide files supporting Dynamic Block Reed-Solomon Encoder IP core evaluation. The \ directory shown in Figure 4-3 contains files and folders with content that is constant for all con-figurations of the Dynamic Block Reed-Solomon Encoder. The \ subfolder (\resnc_core0 in this example) contains files and folders with content specific to the username configuration. The \rsenc_eval directory is created by IPexpress the first time the core is generated and updated each time the core is regenerated. A \ directory is created by IPexpress each time the core is generated and regenerated each time the core with the same file name is regenerated. A separate \ directory is generated for cores with different names, e.g. rsenc_core0, rsenc_core1, etc. Running Functional Simulation Simulation support for the Dynamic Block Reed-Solomon Encoder IP core is provided for Aldec Active-HDL (Verilog and VHDL) simulator, Mentor Graphics ModelSim simulator. The functional simulation includes a configurationspecific behavioral model of the Dynamic Block Reed-Solomon Encoder IP core. The test bench sources stimulus to the core, and monitors output from the core. The generated IP core package includes the configuration-specific behavior model (_beh.v) for func-tional simulation in the "Project Path" root directory. The simulation scripts supporting ModelSim evaluation simulation is provided in \\rsenc_eval\\sim\modelsim\scripts. The simulation script supporting Aldec evaluation simulation is provided in \\rsenc_eval\\sim\aldec\scripts. Both Modelsim and Aldec simulation is supported via test bench files provided in \\rsenc_eval\testbench. Models required for simulation are provided in the corresponding \models folder. Users may run the Aldec evaluation simulation by doing the following: 1. Open Active-HDL. 2. Under the Tools tab, select Execute Macro. 3. Browse to folder \\rsenc_eval\\sim\aldec\scripts and execute one of the "do" scripts shown. Users may run the Modelsim evaluation simulation by doing the following: 1. Open ModelSim. 2. Under the File tab, select Change Directory and choose the folder \rsenc_eval\\sim\modelsim\scripts. 3. 3. Under the Tools tab, select Execute Macro and execute the ModelSim "do" script shown. Note: When the simulation completes, a pop-up window will appear asking "Are you sure you want to finish?" Answer No to analyze the results (answering Yes closes ModelSim). Synthesizing and Implementing the Core in a Top-Level Design Synthesis support for the Dynamic Block Reed-Solomon Encoder IP core is provided for Mentor Graphics Precision or Synopsys Synplify. The Dynamic Block Reed-Solomon Encoder IP core itself is synthesized and is provided in NGO format when the core is generated in IPexpress. Users may synthesize the core in their own top-level design by instantiating the core in their top-level as described previously and then synthesizing the entire design with either Synplify or Precision RTL Synthesis. The following text describes the evaluation implementation flow for Windows platforms. The flow for Linux and UNIX platforms is described in the Readme file included with the IP core. The top-level files _top.v are provided in \\rsenc_eval\\src\rtl\top. Push-button implementation of the reference design is supported via Diamond or ispLEVER project files, .syn, located in the following directory: \\rsenc_eval\\impl\(synplify or precision). IPUG40_03.6, August 2010 25 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor IP Core Generation To use this project file in Diamond: 1. Choose File > Open > Project. 2. Browse to \\rsenc_eval\\impl\synplify (or precision) in the Open Project dialog box. 3. Select and open .ldf. At this point, all of the files needed to support top-level synthesis and implementation will be imported to the project. 4. Select the Process tab in the left-hand GUI window. 5. Implement the complete design via the standard Diamond GUI flow. To use this project file in ispLEVER: 1. Choose File > Open Project. 2. Browse to \\rsenc_eval\\impl\synplify (or precision) in the Open Project dialog box. 3. Select and open .syn. At this point, all of the files needed to support top-level synthesis and implementation will be imported to the project. 4. Select the device top-level entry in the left-hand GUI window. 5. Implement the complete design via the standard ispLEVER GUI flow. Hardware Evaluation The Dynamic Block Reed-Solomon Encoder IP core supports Lattice's IP hardware evaluation capability, which makes it possible to create versions of the IP core that operate in hardware for a limited period of time (approximately four hours) without requiring the purchase of an IP license. It may also be used to evaluate the core in hardware in user-defined designs. Enabling Hardware Evaluation in Diamond: Choose Project > Active Strategy > Translate Design Settings. The hardware evaluation capability may be enabled/disabled in the Strategy dialog box. It is enabled by default. Enabling Hardware Evaluation in ispLEVER: In the Processes for Current Source pane, right-click the Build Database process and choose Properties from the dropdown menu. The hardware evaluation capability may be enabled/disabled in the Properties dialog box. It is enabled by default. Updating/Regenerating the IP Core By regenerating an IP core with the IPexpress tool, you can modify any of its settings including device type, design entry method, and any of the options specific to the IP core. Regenerating can be done to modify an existing IP core or to create a new but similar one. Regenerating an IP Core in Diamond To regenerate an IP core in Diamond: 1. In IPexpress, click the Regenerate button. 2. In the Regenerate view of IPexpress, choose the IPX source file of the module or IP you wish to regenerate. IPUG40_03.6, August 2010 26 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor IP Core Generation 3. IPexpress shows the current settings for the module or IP in the Source box. Make your new settings in the Target box. 4. If you want to generate a new set of files in a new location, set the new location in the IPX Target File box. The base of the file name will be the base of all the new file names. The IPX Target File must end with an .ipx extension. 5. Click Regenerate. The module's dialog box opens showing the current option settings. 6. In the dialog box, choose the desired options. To get information about the options, click Help. Also, check the About tab in IPexpress for links to technical notes and user guides. IP may come with additional information. As the options change, the schematic diagram of the module changes to show the I/O and the device resources the module will need. 7. To import the module into your project, if it's not already there, select Import IPX to Diamond Project (not available in stand-alone mode). 8. Click Generate. 9. Check the Generate Log tab to check for warnings and error messages. 10.Click Close. The IPexpress package file (.ipx) supported by Diamond holds references to all of the elements of the generated IP core required to support simulation, synthesis and implementation. The IP core may be included in a user's design by importing the .ipx file to the associated Diamond project. To change the option settings of a module or IP that is already in a design project, double-click the module's .ipx file in the File List view. This opens IPexpress and the module's dialog box showing the current option settings. Then go to step 6 above. Regenerating an IP Core in ispLEVER To regenerate an IP core in ispLEVER: 1. In the IPexpress tool, choose Tools > Regenerate IP/Module. 2. In the Select a Parameter File dialog box, choose the Lattice Parameter Configuration (.lpc) file of the IP core you wish to regenerate, and click Open. 3. The Select Target Core Version, Design Entry, and Device dialog box shows the current settings for the IP core in the Source Value box. Make your new settings in the Target Value box. 4. If you want to generate a new set of files in a new location, set the location in the LPC Target File box. The base of the .lpc file name will be the base of all the new file names. The LPC Target File must end with an .lpc extension. 5. Click Next. The IP core's dialog box opens showing the current option settings. 6. In the dialog box, choose desired options. To get information about the options, click Help. Also, check the About tab in the IPexpress tool for links to technical notes and user guides. The IP core might come with additional information. As the options change, the schematic diagram of the IP core changes to show the I/O and the device resources the IP core will need. 7. Click Generate. 8. Click the Generate Log tab to check for warnings and error messages. IPUG40_03.6, August 2010 27 Dynamic Block Reed-Solomon Encoder User's Guide Chapter 5: Support Resources This chapter contains information about Lattice Technical Support, additional references, and document revision history. Lattice Technical Support There are a number of ways to receive technical support. Online Forums The first place to look is Lattice Forums (http://www.latticesemi.com/support/forums.cfm). Lattice Forums contain a wealth of knowledge and are actively monitored by Lattice Applications Engineers. Telephone Support Hotline Receive direct technical support for all Lattice products by calling Lattice Applications from 5:30 a.m. to 6 p.m. Pacific Time. * For USA & Canada: 1-800-LATTICE (528-8423) * For other locations: +1 503 268 8001 In Asia, call Lattice Applications from 8:30 a.m. to 5:30 p.m. Beijing Time (CST), +0800 UTC. Chinese and English language only. * For Asia: +86 21 52989090 E-mail Support * techsupport@latticesemi.com * techsupport-asia@latticesemi.com Local Support Contact your nearest Lattice Sales Office. Internet www.latticesemi.com References * Neal Glover and Trent Dudley, "Practical error correction design for engineers", Cirrus Logic, Colorado, 1991 * IEEE Standard for Local and metropolitan area networks, Part 16: Air Interface for Fixed Broadband Wireless Access Systems, October 2004 (IEEE Std 802.16-2004)[ * Advanced Television Systems Committee, Inc., www.atsc.org * Digital Video Broadcasting Project, www.dvb.org * The Consultative Committee for Space Data Systems (CCSDS), www.ccsds.org LatticeECP/EC * HB1000, LatticeECP/EC Family Handbook LatticeECP2M * HB1003, LatticeECP2M Family Handbook IPUG40_03.6, August 2010 28 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Support Resources LatticeECP3 * HB1009, LatticeECP3 Family Handbook LatticeSC/M * DS1004, LatticeSC/M Family Data Sheet LatticeXP * HB1001, LatticeXP Family Handbook LatticeXP2 * DS1009, Lattice XP2 Datasheet Related Information For more information regarding core usage and design verification, refer to the Reed-Solomon Decoder IP Core User's Guide. Revision History Date -- Version Change Summary -- 3.0 Previous Lattice releases. 03.1 4.0 Core version 4.0: Full support of IPexpress flow, including LatticeECP/EC, LatticeECP2, LatticeSC, and LatticeXP December 2006 03.2 4.1 Updated appendices and added support for the LatticeECP2M family. May 2007 03.3 4.2 Added support for LatticeXP2 FPGA family. August 2006 Updated LatticeECP/EC appendix. Updated LatticeSC appendix. May 2009 03.4 4.3 Added support for LatticeECP3 FPGA family. Updated Global Reset. Updated all appendices. July 2010 03.5 4.3 Divided document into chapters. Added table of contents. Added Quick Facts tables in Chapter 1, "Introduction." Added new content in Chapter 4, "IP Core Generation." August, 2010 03.6 IPUG40_03.6, August 2010 4.4 Added support for Diamond software throughout. 29 Dynamic Block Reed-Solomon Encoder User's Guide Appendix A: Resource Utilization This appendix gives resource utilization information for Lattice FPGAs using the Dynamic Block Reed-Solomon Encoder IP core. IPexpress is the Lattice IP configuration utility, and is included as a standard feature of the Diamond and ispLEVER design tools. Details regarding the usage of IPexpress can be found in the IPexpress and Diamond or ispLEVER help system. For more information on the Diamond or ispLEVER design tools, visit the Lattice web site at: www.latticesemi.com/software. LatticeECP and LatticeEC FPGAs The utilization data shown in Table A-1 is derived from the parameter settings listed in Table A-2. Table A-1. Performance and Resource Utilization1 Slices LUTs Registers sysMEMTM EBRs I/Os fMAX (MHz) OC-192 132 260 207 0 24 179 CCSDS 214 426 338 0 24 178 DVB 140 273 210 0 24 174 IPexpress User-Configurable Mode ATSC 161 320 245 0 24 169 IEEE 802.16-2004 WirelessMAN SCa 168 324 255 0 37 176 IEEE 802.16-2004 WirelessMAN SC 1222 2438 450 0 38 71 1. Performance and utilization data are generated using an LFEC/P20E-5F672C device with Lattice Diamond 1.0 and Synplify Pro D2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP/EC family. Ordering Part Number The Ordering Part Number (OPN) for all configurations of the Dynamic Block Reed-Solomon Encoder core targeting LatticeEC/ECP devices is RSENC-DBLK-E2-U4. Table A-2. Parameter Settings of the Evaluation Packages Configuration Description 1 (default) OC-192 2 3 CCSDS DVB 4 ATSC 5 6 IEEE 802.16- IEEE 802.162004 SCa 2004 SC Rs Parameters Wsymb 8 8 8 8 8 8 285 391 285 285 285 285 Gstart 0 112 0 0 0 0 Rootspace 1 11 1 1 1 1 N/A N/A N/A N/A N/A Yes Fpoly Check Symbols Variable check symbols Number of check symbols N/A N/A N/A N/A 16 N/A Max. number of check symbols N/A N/A N/A N/A N/A 32 Even number of check symbols N/A N/A N/A N/A N/A Yes Puncture check symbols N/A N/A N/A N/A Yes N/A Constant Constant Constant Constant Variable Variable 255 255 204 207 255 255 Block Size Type Block size type Block size (n) IPUG40_03.6, August 2010 30 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Resource Utilization Table A-2. Parameter Settings of the Evaluation Packages (Continued) Configuration 1 (default) 2 3 4 5 6 239 223 188 187 N/A N/A Registered input Yes Yes Yes Yes Yes Yes Use mult.opt.algorithm Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Information symbols (k) Implementation Parameters Optional Output Ports rfi outvalid No No No No No No rfib Yes Yes Yes Yes Yes Yes Ibend No No No No No No obstart No No No No No No obend No No No No No No Summary Latency 3 clock cycles 3 clock cycles 3 clock cycles 3 clock cycles 3 clock cycles 3 clock cycles LatticeECP2 and LatticeECP2S FPGAs The utilization data shown in Table A-3 is derived from the parameter settings listed in Table A-2 on page 30. Table A-3. Performance and Resource Utilization1 Slices LUTs Registers sysMEM EBRs I/Os fMAX (MHz) OC-192 133 262 201 0 24 320 CCSDS 204 404 330 0 24 250 DVB 137 269 201 0 24 276 ATSC 159 315 233 0 24 282 IEEE 802.16-2004 WirelessMAN SCa 173 336 246 0 37 280 IEEE 802.16-2004 WirelessMAN SC 1287 2565 442 0 38 112 IPexpress User-Configurable Mode 1. Performance and utilization data are generated using an LFE2-50E/SE-7F484C device with Lattice Diamond 1.0 and Synplify Pro D2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP2S family. Ordering Part Number The Ordering Part Number (OPN) for all configurations of the Dynamic Block Reed-Solomon Encoder core targeting LatticeECP2/S devices is RSENC-DBLK-P2-U4. IPUG40_03.6, August 2010 31 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Resource Utilization LatticeECP2M and LatticeECP2MS FPGAs The utilization data shown in Table A-4 is derived from the parameter settings listed in Table A-2 on page 30. Table A-4. Performance and Resource Utilization1 Slices LUTs Registers sysMEM EBRs I/Os fMAX (MHz) OC-192 133 262 201 0 24 257 CCSDS 204 404 330 0 24 247 IPexpress User-Configurable Mode DVB 137 269 201 0 24 286 ATSC 159 315 233 0 24 266 IEEE 802.16-2004 WirelessMAN SCa 173 336 246 0 37 295 IEEE 802.16-2004 WirelessMAN SC 1287 2565 442 0 38 128 1. Performance and utilization data are generated using an LFE2M35E/SE-7F484C device with Lattice Diamond 1.0 and Synplify Pro D2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP2M and LatticeECP2MS families. Ordering Part Number The Ordering Part Number (OPN) for all configurations of the Dynamic Block Reed-Solomon Encoder core targeting LatticeECP2M/S devices is RSENC-DBLK-PM-U4. LatticeECP3 FPGAs The utilization data shown in Table A-5 is derived from the parameter settings listed in Table A-2 on page 30. Table A-5. Performance and Resource Utilization1 Slices LUTs Registers sysMEM EBRs I/Os fMAX (MHz) OC-192 129 251 201 0 24 400 CCSDS 203 398 330 0 24 400 IPexpress User-Configurable Mode DVB 129 254 201 0 24 400 ATSC 150 293 233 0 24 400 IEEE 802.16-2004 WirelessMAN SCa 172 332 246 0 37 400 IEEE 802.16-2004 WirelessMAN SC 1276 2533 506 0 38 202 1. Performance and utilization data are generated using an LFE3-95E-8FN484CES device with Lattice Diamond 1.0 and Synplify Pro D2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP3 family. Ordering Part Number The Ordering Part Number (OPN) for all configurations of the Dynamic Block Reed-Solomon Encoder core targeting LatticeECP3 devices is RSENC-DBLK-P3-U4. IPUG40_03.6, August 2010 32 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Resource Utilization LatticeXP FPGAs The utilization data shown in Table A-6 is derived from the parameter settings listed in Table A-2 on page 30. Table A-6. Performance and Resource Utilization1 Slices LUTs Registers sysMEM EBRs I/Os fMAX (MHz) OC-192 132 260 207 0 24 185 CCSDS 214 426 338 0 24 175 IPexpress User-Configurable Mode DVB 140 273 210 0 24 183 ATSC 161 320 245 0 24 164 IEEE 802.16-2004 WirelessMAN SCa 168 324 255 0 37 178 IEEE 802.16-2004 WirelessMAN SC 1222 2438 450 0 38 68 1. Performance and utilization data are generated using an LFXP20E-5F256C device with Lattice Diamond 1.0 and Synplify Pro D-2009.12L1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeXP family. Ordering Part Number The Ordering Part Number (OPN) for all configurations of the Dynamic Block Reed-Solomon Encoder core targeting LatticeXP devices is RSENC-DBLK-XP-U4. LatticeXP2 FPGAs The utilization data shown in Table A-7 is derived from the parameter settings listed in Table A-2 on page 30. Table A-7. Performance and Resource Utilization1 Slices LUTs Registers sysMEM EBRs I/Os fMAX (MHz) OC-192 133 262 201 0 24 291 CCSDS 204 404 330 0 24 264 IPexpress User-Configurable Mode DVB 137 269 201 0 24 282 ATSC 159 315 233 0 24 278 IEEE 802.16-2004 WirelessMAN SCa 173 336 246 0 37 262 IEEE 802.16-2004 WirelessMAN SC 1287 2565 442 0 38 92 1. Performance and utilization data are generated using an LFXP2-17E-7FT256C device with Lattice Diamond 1.0 and Synplify Pro D2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeXP2 family. Ordering Part Number The Ordering Part Number (OPN) for all configurations of the Dynamic Block Reed-Solomon Encoder core targeting LatticeXP2 devices is RSENC-DBLK-X2-U4. IPUG40_03.6, August 2010 33 Dynamic Block Reed-Solomon Encoder User's Guide Lattice Semiconductor Resource Utilization LatticeSC and LatticeSCM FPGAs The utilization data shown in Table A-8 is derived from the parameter settings listed in Table A-2 on page 30. Table A-8. Performance and Resource Utilization1 Slices LUTs Registers sysMEM EBRs I/Os fMAX (MHz) OC-192 129 251 201 0 24 400 CCSDS 203 398 330 0 24 400 IPexpress User-Configurable Mode DVB 129 254 201 0 24 400 ATSC 150 293 233 0 24 400 IEEE 802.16-2004 WirelessMAN SCa 172 332 246 0 37 400 IEEE 802.16-2004 WirelessMAN SC 1276 2533 506 0 38 202 1. Performance and utilization data are generated using an LFSC/M3GA25E-7F900C device with Lattice Diamond 1.0 and Synplify Pro D2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeSCM family. Ordering Part Number The Ordering Part Number (OPN) for all configurations of the Dynamic Block Reed-Solomon Encoder core targeting LatticeSC/M devices is RSENC-DBLK-SC-U4. IPUG40_03.6, August 2010 34 Dynamic Block Reed-Solomon Encoder User's Guide Mouser Electronics Authorized Distributor Click to View Pricing, Inventory, Delivery & Lifecycle Information: Lattice: RSENC-DBLK-X2-U4 RSENC-DBLK-X2-UT4 RSENC-DBLK-PM-U4 RSENC-DBLK-E3-U4 RSENC-DBLK-E3-UT4