LATTICE FPGA-IPUG-02043-1.6 FIR Filter IP Core User Guide

September 4, 2024
LATTICE

FPGA-IPUG-02043-1.6 FIR Filter IP Core

Product Information:

Specifications:

The FIR Filter IP Core is designed for use with LatticeXP2,
LatticeECP3, and LatticeECP5 FPGA devices. It offers configurations
for different channels and taps, along with varying multipliers
based on the device type.

Product Usage Instructions:

1. Introduction:

The FIR Filter IP Core is a powerful tool for filtering signals
in FPGA applications. It provides Finite Impulse Response filtering
capabilities to enhance signal processing tasks.

2. Quick Facts:

LatticeXP2 Devices:

  • 1 Channel 64 Taps, 16 Multipliers

  • 1 Channel 24 Taps, 6 Multipliers

  • 1 Channel 48 Taps, 12 Multipliers

  • Minimal Device Needed: LFXP2-5E

  • Resource Utilization: LUTs – 211, sysMEM – 4, EBRs – 250,
    Registers – 1

  • Design Tool Support: Lattice Diamond 3.10, Synplify Pro
    F-2012.09L-SP1, Modelsim SE 10.2c, Active-HDL 8.2 Lattice
    Edition

LatticeECP3 Devices:

  • 4 Channels 64 Taps, 1 Multiplier

  • 1 Channel 32 Taps, 32 Multipliers

  • 1 Channel 32 Taps, 8 Multipliers

  • Minimal Device Needed: LFE3-35EA

  • Resource Utilization: LUTs – 866, sysMEM – 32, EBRs – 2041,
    Registers – 64

  • Design Tool Support: Lattice Diamond 3.10, Synplify Pro
    F-2012.09L-SP1, Modelsim SE 10.2c, Active-HDL 8.2 Lattice
    Edition

LatticeECP5 Devices:

  • 4 Channels 64 Taps, 1 Multiplier

  • 1 Channel 32 Taps, 32 Multipliers

  • 1 Channel 32 Taps, 8 Multipliers

  • Minimal Device Needed: LFE5UM-85FEA

  • Resource Utilization: LUTs – 248, sysMEM – 202, EBRs – 201,
    Registers – 2

  • Design Tool Support: Lattice Diamond 3.10

FAQ:

Q: What is the purpose of the FIR Filter IP Core?

A: The FIR Filter IP Core is designed to provide Finite Impulse
Response filtering capabilities for signal processing tasks in FPGA
applications.

Q: Which FPGA families are supported by the FIR Filter IP

Core?

A: The FIR Filter IP Core supports LatticeXP2, LatticeECP3, and
LatticeECP5 FPGA families.

Q: What design tools are compatible with the FIR Filter IP

Core?

A: The FIR Filter IP Core can be used with design tools such as
Lattice Diamond, Synplify Pro, Modelsim SE, and Active-HDL Lattice
Edition.

Q: What are the resource utilization requirements for the FIR

Filter IP Core on LatticeECP5 devices?

A: On LatticeECP5 devices, the resource utilization includes
LUTs – 248, sysMEM – 202, EBRs – 201, and Registers – 2.

FIR Filter IP Core
User Guide
FPGA-IPUG-02043-1.6
June 2021
Downloaded from Arrow.com.

FIR Filter IP Core User Guide

Contents
Acronyms in This Document ……………………………………………………………………………………………………………………………….5

  1. Introduction ………………………………………………………………………………………………………………………………………………6 2. Quick Facts………………………………………………………………………………………………………………………………………………..7 3. Features ……………………………………………………………………………………………………………………………………………………9 4. Functional Description………………………………………………………………………………………………………………………………10
    4.1. Interface Diagram…………………………………………………………………………………………………………………………….10 4.2. FIR Filter Architecture ………………………………………………………………………………………………………………………10
    4.2.1. Direct-form Implementation………………………………………………………………………………………………………….10 4.2.2. Symmetric Implementation …………………………………………………………………………………………………………..11 4.2.3. Polyphase Interpolation FIR Filter…………………………………………………………………………………………………..11 4.2.4. Polyphase Decimation FIR Filter …………………………………………………………………………………………………….12 4.2.5. Multi-channel FIR Filters ……………………………………………………………………………………………………………….12 4.3. Implementation Details…………………………………………………………………………………………………………………….12 4.4. Configuring the FIR Filter Core …………………………………………………………………………………………………………..13 4.4.1. Architecture Options…………………………………………………………………………………………………………………….13
    4.4.1.1. Coefficients Specification ………………………………………………………………………………………………………13 4.4.1.2. Multiplier Multiplexing Factor ……………………………………………………………………………………………….14 4.4.2. I/O Specification Options ………………………………………………………………………………………………………………15 4.4.2.1. Rounding …………………………………………………………………………………………………………………………….15 4.4.3. Implementation Options……………………………………………………………………………………………………………….15 4.4.3.1. Memory Type ………………………………………………………………………………………………………………………15 4.5. Signal Descriptions …………………………………………………………………………………………………………………………..16 4.6. Interfacing with the FIR Filter IP Core …………………………………………………………………………………………………17 4.6.1. Data interface ……………………………………………………………………………………………………………………………..17 4.6.2. Multiple Channels ………………………………………………………………………………………………………………………..17 4.6.3. Variable Interpolation/Decimation Factor……………………………………………………………………………………….17 4.6.4. Reloadable Coefficients ………………………………………………………………………………………………………………..17 4.7. Timing Specifications………………………………………………………………………………………………………………………..18 4.7.1. Timing Specifications Applicable to All Devices ………………………………………………………………………………..18 4.7.2. Timing Specifications Applicable to LatticeXP2, LatticeECP3 and LatticeECP5 Implementations …………….19 4.7.3. Timing Specifications Applicable to LatticeECP3 and LatticeECP5 Implementations ……………………………..20 5. Parameter Settings …………………………………………………………………………………………………………………………………..21 5.1. Architecture Tab………………………………………………………………………………………………………………………………22 5.2. I/O Specification Tab ………………………………………………………………………………………………………………………..24 5.3. Implementation Tab…………………………………………………………………………………………………………………………26 6. IP Core Generation and Evaluation……………………………………………………………………………………………………………..27 6.1. Licensing the IP Core ………………………………………………………………………………………………………………………..27 6.2. Getting Started ………………………………………………………………………………………………………………………………..27 6.3. IPexpress-Created Files and Top Level Directory Structure ……………………………………………………………………31 6.4. Instantiating the Core……………………………………………………………………………………………………………………….32 6.5. Running Functional Simulation ………………………………………………………………………………………………………….32 6.6. Synthesizing and Implementing the Core in a Top-Level Design …………………………………………………………….32 6.7. Hardware Evaluation ………………………………………………………………………………………………………………………..33 6.7.1. Enabling Hardware Evaluation in Diamond………………………………………………………………………………………33 6.8. Updating/Regeneratingthe IP Core…………………………………………………………………………………………………….33 6.8.1. Regenerating an IP Core in Diamond ………………………………………………………………………………………………33 6.9. Regenerating an IP Core in Clarity Designer Tool………………………………………………………………………………….34 6.10. Recreating an IP Core in Clarity Designer Tool ……………………………………………………………………………………..34 References ……………………………………………………………………………………………………………………………………………………..35 Technical Support Assistance ……………………………………………………………………………………………………………………………36 Appendix A. Resource Utilization ………………………………………………………………………………………………………………………37 LatticeECP3 Devices ……………………………………………………………………………………………………………………………………..37

© 2008-2021 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.

2 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
LatticeXP2 Devices……………………………………………………………………………………………………………………………………….37 ECP5 Devices……………………………………………………………………………………………………………………………………………….37 Revision History ………………………………………………………………………………………………………………………………………………38

© 2008-2021 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.

FPGA-IPUG-02043-1.6

3

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
Figures
Figure 4.1. Top-Level Interface for the FIR Filter IP Core……………………………………………………………………………………….10 Figure 4.2. Direct-form FIR Filter ……………………………………………………………………………………………………………………….11 Figure 4.3. Symmetric Coefficients FIR Filter Implementation ……………………………………………………………………………….11 Figure 4.4. Polyphase Interpolator …………………………………………………………………………………………………………………….11 Figure 4.5. Polyphase Decimator ……………………………………………………………………………………………………………………….12 Figure 4.6. Functional Block Diagram …………………………………………………………………………………………………………………12 Figure 4.7. Tap and Coefficient Memory Management for a Sample FIR Filter ………………………………………………………..13 Figure 4.8. Single Channel, Single Rate FIR Filter with Continuous Inputs ……………………………………………………………….18 Figure 4.9. Single Channel, Single Rate FIR Filter with Gaps in Input ………………………………………………………………………18 Figure 4.10. Factorset Signals ……………………………………………………………………………………………………………………………18 Figure 4.11. Coefficient Reloading……………………………………………………………………………………………………………………..18 Figure 4.12. Multi- Channel Single Rate FIR Filter (3 Channels) ………………………………………………………………………………19 Figure 4.13. Multi-Channel (3 Channels) Interpolator (Factor of 3) ………………………………………………………………………..19 Figure 4.14. Multi-Channel (3 Channels) Decimator (Factor of 3) …………………………………………………………………………..19 Figure 4.15. Multi- Channel Single Rate FIR Filter (3 Channels) ………………………………………………………………………………20 Figure 4.16. Multi-Channel (3 Channels) Interpolator (Factor of 3) ………………………………………………………………………..20 Figure 4.17. Multi-Channel (3 Channels) Decimator (Factor of 3) …………………………………………………………………………..20 Figure 5.1. Architecture Tab of the FIR Filter IP Core Interface ………………………………………………………………………………22 Figure 5.2. I/O Specification Tab of the FIR Filter IP Core Interface ………………………………………………………………………..24 Figure 5.3. Implementation Tab of the FIR Filter IP Core Interface …………………………………………………………………………26 Figure 6.1. IPexpress Dialog Box ………………………………………………………………………………………………………………………..27 Figure 6.2. Configuration Dialog Box ………………………………………………………………………………………………………………….28 Figure 6.3. Clarity Designer Tool Dialog Box ………………………………………………………………………………………………………..28 Figure 6.4. Clarity Designer Catalog Tab ……………………………………………………………………………………………………………..29 Figure 6.5. Fir Filter Dialog Box ………………………………………………………………………………………………………………………….29 Figure 6.6. IP Configuration Interface…………………………………………………………………………………………………………………30 Figure 6.7. FIR Filter IP Core Generated Directory Structure………………………………………………………………………………….31
Tables
Table 2.1. FIR Filter IP Core for LatticeXP2 Devices Quick Facts ……………………………………………………………………………….7 Table 2.2. FIR Filter IP Core for LatticeECP3 Devices Quick Facts ……………………………………………………………………………..7 Table 2.3. FIR Filter IP Core for LatticeECP5 Devices Quick Facts ……………………………………………………………………………..8 Table 4.1. Maximum Multiplier Multiplexing Factor for Different Configurations…………………………………………………..15 Table 4.2. Top-Level Port Definitions………………………………………………………………………………………………………………….16 Table 5.1. Parameter Specifications for the FIR Filter IP Core ………………………………………………………………………………..21 Table 5.2. Architecture Tab……………………………………………………………………………………………………………………………….23 Table 5.3. I/O Specification Tab …………………………………………………………………………………………………………………………25 Table 5.4. Implementation Tab………………………………………………………………………………………………………………………….26 Table 6.1. File List ……………………………………………………………………………………………………………………………………………31 Table A.1. Performance and Resource Utilization (LatticeECP3) …………………………………………………………………………..37 Table A.2. Performance and Resource Utilization (LatticeXP2) …………………………………………………………………………….37 Table A.3. Performance and Resource Utilization (LFE5U) …………………………………………………………………………………..37

© 2008-2021 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.

4 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

Acronyms in This Document

A list of acronyms used in this document.

Acronym

Definition

FIR

Finite Impulse Response

FPGA

Field-Programmable Gate Array

LED

light-emitting diode

MLE

Machine Learning Engine

SDHC

Secure Digital High Capacity

SDXC

Secure Digital eXtended Capacity

SPI

Serial Peripheral Interface

VIP

Video Interface Platform

USB

Universal Serial Bus

NN

Neuro Network

FIR Filter IP Core User Guide

© 2008-2021 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.

FPGA-IPUG-02043-1.6

5

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
1. Introduction
The Lattice FIR (Finite Impulse Response) Filter IP core is a widely configurable, multi-channel FIR filter, implemented using high performance sysDSPTM blocks available in Lattice devices. In addition to single rate filters, the IP core also supports a range of polyphase decimation and interpolation filters. The utilization versus throughput trade-off can be controlled by specifying the multiplier multiplexing factor used for implementing the filter. The FIR Filter IP core supports as high as 256 channels, with each having up to 2048 taps. The input data, coefficient and output data widths are configurable over a wide range. The IP core uses full internal precision while allowing variable output precision with several choices for saturation and rounding. The coefficients of the filter can be specified at generation time and/or reloadable during run-time through input ports. The FIR Filter IP core can also be generated using the Lattice FIR Filter Simulink® Model. For information on the Simulink flow, refer to the FPGA Design with ispLEVER tutorial.

© 2008-2021 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.

6 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide

2. Quick Facts

Table 2.1 through Table 2.3 provide quick facts about the FIR Filter IP core for LatticeXP2TM, LatticeECP3TM, and LatticeECP5TM devices.

Table 2.1. FIR Filter IP Core for LatticeXP2 Devices Quick Facts

FIR IP Configuration

1 Channels 64 Taps
16 Multipliers

1 Channel 24 Taps 6 Multipliers

1 Channel 48 Taps 12 Multipliers

Core Requirements Resource Utilization
Design Tool Support

FPGA Families Supported Minimal Device Needed Targeted Device LUTs sysMEM EBRs Registers DSP Slice Lattice Implementation Synthesis Simulation

LFXP2-5E
211 4
250 1

LatticeXP2 LFXP2-40E LFXP2-40E-7F672C
241 4
272 1
Lattice Diamond 3.10 Synplify Pro F-2012.09L-SP1
Modelsim SE 10.2c Active-HDL 8.2 Lattice Edition

LFXP2-8E
246 4
281 1

Table 2.2. FIR Filter IP Core for LatticeECP3 Devices Quick Facts

Core Requirements Resource Utilization
Design Tool Support

FPGA Families Supported Minimal Device Needed Targeted Device LUTs sysMEM EBRs Registers MULT18X18 Lattice Implementation Synthesis Simulation

4 Channels 64 Taps
1 Multiplier
866 32 2041 64

FIR IP Configuration
1 Channel 32 Taps 32 Multipliers
LatticeECP3 LFE3-35EA LFE3-150EA-6FN672C
212 2
199 4
Lattice Diamond 3.10 Synplify Pro F-2012.09L-SP1
Modelsim SE 10.2c Active-HDL 8.2 Lattice Edition

1 Channel 32 Taps 8 Multipliers
200 4
303 6

© 2008-2021 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.

FPGA-IPUG-02043-1.6

7

Downloaded from Arrow.com.

FIR Filter IP Core User Guide

Table 2.3. FIR Filter IP Core for LatticeECP5 Devices Quick Facts

FIR IP Configuration

4 Channels 64 Taps
1 Multiplier

1 Channel 32 Taps 32 Multipliers

1 Channel 32 Taps 8 Multipliers

Core Requirements Resource Utilization
Design Tool Support

FPGA Families Supported Minimal Device Needed Targeted Device LUTs sysMEM EBRs Registers DSP Slice Lattice Implementation Synthesis Simulation

ECP5

LFE5UM-85FEA

LFE5UM-85FEA

LFE5UM-85FEA

LFE5U-85F-6BG756C

248

202

201

2

2

4

222

199

303

6

6

9

Lattice Diamond 3.10

Synplify Pro F-2012.09L-SP1

Aldec Active-HDL 10.3 Lattice Edition

ModelSim SE 10.2c

© 2008-2021 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.

8 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
3. Features
· Variable number of taps up to 2048 · Input and coefficients widths of 4 to 32 bits · Multi-channel support for up to 256 channels · Decimation and Interpolation ratios from 2 to 256 · Support for half-band filter · Configurable parallelism from fully parallel to serial · Signed or unsigned data and coefficients · Coefficients symmetry and negative symmetry optimization · Re-loadable coefficients support · Full precision arithmetic · Selectable output width and precision · Selectable overflow: wrap-around or saturation · Selectable rounding: truncation, round towards zero, round away from zero, round to nearest and convergent
rounding · Width and precision specified using fixed point notations · Handshake signals to facilitate smooth interfacing

© 2008-2021 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.

FPGA-IPUG-02043-1.6

9

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
4. Functional Description
This chapter provides a functional description of the FIR Filter IP core.
4.1. Interface Diagram
The top-level interface diagram for the FIR Filter IP core is shown in Figure 4.1.

Figure 4.1. Top-Level Interface for the FIR Filter IP Core
4.2. FIR Filter Architecture
FIR filter operation on data samples can be described as a sum-of-products operation. For an N-tap FIR filter, the current input sample and (N-1) previous input samples are multiplied by N filter coefficients and the resulting N products are added to give one output sample as shown below.
(1)
In the above equation, hn , n=0,1,…, N-1 is the impulse response; xn, n=0,1,…, is the input; and yn, n=0,1,…, is the
output. The number of delay elements (N-1) represents the order of the filter. The number of input data samples (current and previous) used in the calculation of one output sample represents the number of filter taps (N).
4.2.1. Direct-form Implementation
In the direct-form implementation shown in Figure 4.2, the input samples will be shifted into a shift register queue and each shift register is connected to a multiplier. The products from the multipliers are summed to get the FIR filter’s output sample.

© 2008-2021 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.

10 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
Figure 4.2. Direct-form FIR Filter
4.2.2. Symmetric Implementation
The impulse response for most FIR filters is symmetric. This symmetry can generally be exploited to reduce the arithmetic requirements and produce area- efficient filter realizations. It is possible to use only one half of the multipliers for symmetric coefficients compared to that used for a similar filter with non-symmetric coefficients. An implementation for symmetric coefficients is shown in Figure 4.3.

Figure 4.3. Symmetric Coefficients FIR Filter Implementation
4.2.3. Polyphase Interpolation FIR Filter
The polyphase interpolation filter option implements the computationally efficient 1-to-P interpolation filter shown below, where P is an integer greater than 1. Figure 4.4 shows a polyphase interpolator, where each branch is referred to as a polyphase.

Figure 4.4. Polyphase Interpolator

© 2008-2021 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.

FPGA-IPUG-02043-1.6

11

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
In this structure, the input data will be loaded into each polyphase at the same time and the output data of each polyphase will be unloaded as an output sample of the FIR. The number of polyphases is equal to the interpolation factor. The coefficients are assigned to all polyphases evenly.
4.2.4. Polyphase Decimation FIR Filter
The polyphase decimation filter option implements the computationally efficient P-to-1 decimation filter shown in Figure 4.5, where P is an integer greater than 1.

Figure 4.5. Polyphase Decimator
In this structure, the input sample is loaded sequentially into each of the polyphases with only one polyphase fed at a time. When all the polyphases are loaded with a sample, the result from the polyphases are summed and unloaded as the FIR filter’s output. In this scheme, P input samples generate one output sample, where P is the decimation factor.
4.2.5. Multi-channel FIR Filters
It is very common to see FIR filters used in multi-channel processing scenarios. The maximum possible throughput of a FIR filter implementation is often much higher than the throughput required for a single channel being processed. For such applications, it is desirable to use the same resources in a time multiplexed way to realize multi- channel FIR filters. Except in fully parallel implementations, where enough multipliers are used to perform all the necessary computations in one clock cycle, the FIR filter uses independent tap and coefficient memories to feed each multiplier. Hence, multi-channel implementations result in lower memory usage compared to multiple instantiations of FIR filters. For cases, where all the channels use the same coefficient set, using a multi-channel FIR filter has the clear advantage of requiring smaller coefficient memories.

4.3. Implementation Details
Figure 4.6 shows the functional block diagram of the FIR Filter IP core.

coeffin coeffwe coeffset

Coefficient Memory

din

Input Registers

Tap Memory

Symmetry Adder

Multiplier Array

Adder Tree

Output Processing

dout

inpvalid ibstart ifactor dfactor
factorset

Control Logic
Figure 4.6. Functional Block Diagram

outvalid obstart rfi

© 2008-2021 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.

12 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
The data and coefficients are stored in different memories shown as tap memory and coefficients memory in the above diagram. The symmetry adder is used if the coefficients are symmetric. The multiplier array contains one or more multipliers depending on the user specification. The adder tree performs the sum of products. Depending on the configuration, the adder tree, or a part of it, is implemented inside DSP blocks. The output processing block performs the output width reduction and precision control. This block contains logic to support different types of rounding and overflow. The block labeled Control Logic manages the scheduling of data and arithmetic operations based on the type of filter (interpolation, decimation or multi-channel) and multiplier multiplexing.
The tap and coefficient memories are managed differently for different configurations of the FIR filter. Figure 4.7 shows the memory assignments for a 16-tap, 3-channel, symmetric FIR filter with two multipliers.

Figure 4.7. Tap and Coefficient Memory Management for a Sample FIR Filter
In the diagram, there are two tap memories and a coefficient memory for each multiplier. The depth of each memory is ceil(taps/2/multiplier) *channel, which is 12 in this example, where the operator ceil(x) returns the next higher integer, if the argument x is fractional.

4.4. Configuring the FIR Filter Core
4.4.1. Architecture Options
The options for number of channels, number of taps, and filter type are independent and directly specified in the Architecture tab of the IP core interface (see Parameter Settings for details). If a polyphase decimator or interpolator is required, the decimation or interpolation factor can be directly specified in the interface. The decimation or interpolation factor can also be specified through input ports during operation by selecting the corresponding Variable option. If the Variable decimation (or Variable interpolation) factor option is selected, the decimation (or interpolation) factor can be varied from two to Decimation factor (or Interpolation factor) through the input port.
4.4.1.1. Coefficients Specification The coefficients of the filter are specified using a coefficients file. The coefficients file is a text file with one coefficient per line. If the coefficients are symmetric, the check box Symmetric Coefficients must be checked so the IP core uses symmetry adders to reduce the number of multipliers used. If the Symmetric Coefficients box is checked, only onehalf of the coefficients are read from the coefficient file. For an n-tap symmetric coefficients filter, the number of

© 2008-2021 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.

FPGA-IPUG-02043-1.6

13

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
coefficients read from the coefficients file is equal to ceil(n/2). For multi- channel filters, the coefficients for channel 0 are specified first, followed by those for channel 1, and so on. For multi-channel filters, there is an option to specify whether the coefficients are different for each channel or the same (common) for all the channels. If the coefficients are common, only one set of coefficients needs to be specified in the coefficients file. The coefficient values in the file can be in any radix (decimal, hexadecimal or binary) selected by the user. A unary negative operator is used only if the coefficients are specified in decimal radix. For hexadecimal and binary radices, the numbers must be represented in twos complement form. An example coefficients file in decimal format for an 11tap, 16-bit coefficients set is given below. In this example, the coefficients binary point is 0. -556 -706 -857 -419 1424 5309 11275 18547 25649 30848 32758 An example coefficients file in floating point format for the above case when the Coefficients binary point position is 8, is given below. The coefficients will be quantized to conform to the 16.8 fractional data in which 16 is the full width of coefficients, and 8 is the width of fractional part. -2.1719 -2.7578 -3.3477 -1.6367 5.5625 20.7383 44.043 72.45 100.0191 120.5 127.96 If the check box Reloadable Coefficients is checked, the coefficients can be reloaded to the FIR filter during the operation of the core. With this option, the desired coefficients must be loaded before the operation of the filter. The coefficients must be loaded in a specific order that is determined by the program supplied with the IP core. The IP core can also optionally do the reordering internally, albeit using more resources. If this option is desired, the check box Reorder Coefficients Inside can be checked. With this option, the coefficients can be loaded in the normal sequential order to the core.
4.4.1.2. Multiplier Multiplexing Factor The throughput and the resource utilization can be controlled by assigning a proper value to the Multiplier Multiplexing Factor parameter. Full parallel operation (one output data per clock cycle) can be achieved by setting the Multiplier Multiplexing Factor to

  1. If the Multiplier Multiplexing Factor is set to the maximum value displayed in the interface, full series operation is supported and it takes up to n clocks to compute one output data sample, where n is the number of taps for a non-symmetric FIR filter and half the number of taps for a symmetric FIR filter. The maximum value of the Multiplier Multiplexing Factor for different configurations of an n-tap FIR filter is given in Table 4.1.

© 2008-2021 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.

14 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide

Table 4.1. Maximum Multiplier Multiplexing Factor for Different Configurations*

FIR Type Non-symmetric Symmetric Half-band

Single Rate n Ceil(n/2) floor((n+1)/4)+1

Interpolator with Factor=i Ceil(n/i) Ceil(n/2i) floor((n+1)/4)

*Note: The operator floor (x) returns the next lower integer, if x is a fractional value.

Decimator with Factor Ceil(n/d) Ceil(n/2d) floor((n+1)/8)+1

4.4.2. I/O Specification Options
The controls in the I/O Specifications interface tab are used to define the various widths and precision methods in the data path. The width and binary point positions of the input data and coefficients can be defined independently. From the input data width, coefficient width and the number of taps, the full precision output width and true location of the output binary point automatically get fixed. The full precision output is converted to user specified output width by dropping some least significant (LS) and some most significant (MS) bits and by performing the specified rounding and overflow processing. The output is specified by the output width and the output binary point position parameter.
4.4.2.1. Rounding
The following five options are supported for rounding: · None ­ Discards all bits to the right of the output least significant bit and leaves the output uncorrected. · Rounding up ­ Rounds to nearest more positive number. · Rounding away from zero ­ Rounds away from zero if the fractional part is exactly one-half. · Rounding towards zero ­ Rounds towards zero if the fractional part is exactly one-half. · Convergent rounding ­ Rounds to the nearest even value if the fractional part is exactly one-half.

4.4.3. Implementation Options
4.4.3.1. Memory Type
The FIR Filter IP core uses memories for storing delay tap data, coefficients and for some configurations, input or output data. The number of memory units used depends on several parameters including data width, number of taps, filter type, number of channels and coefficient symmetry. In most cases, each multiplier requires one data memory unit and one coefficient memory unit. Interpolation or decimation filters may additionally use input or output buffers. The memory type interface option can be used to specify whether EBR or distributed memory is used for data, coefficient, input and output storage. The option called Auto leaves that choice to the IP generator tool, which uses EBR if the memory is deeper than 128 locations and distributed memory otherwise.

© 2008-2021 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.

FPGA-IPUG-02043-1.6

15

Downloaded from Arrow.com.

FIR Filter IP Core User Guide

4.5. Signal Descriptions
A description of the Input/Output (I/O) ports for the FIR Filter IP core is provided in Table 4.2.

Table 4.2. Top-Level Port Definitions

Port

Bits

General I/O

clk

1

rstn

1

din

Input data width

inpvalid

1

dout outvalid
rfi

Output width 1
1

When Reloadable coefficients is selected

coeffin

Notes 1*

coeffwe

1

I/O

Description

I

System clock for data and control inputs and outputs.

I

System wide asynchronous active-low reset signal.

I

Input data.

I

Input valid signal. The input data is read-in only when

inpvalid is high.

O

Output data.

O

Output data qualifier. Output data dout is valid only when

this signal is high.

O

Ready for input. This output, when high, indicates that the IP

core is ready to receive the next input data. A valid data may

be applied at din only if rfi was high during the previous clock

cycle.

I

Coefficients input. The coefficients have to be loaded

through this port in a specific order. Refer to the section

Interfacing with the FIR Filter IP core for details.

I

When asserted, the value on bus coeffin will be written into

coefficient memories.

coeffset

1

I

This input is used to signal the filter to use the recently

loaded coefficient set. This signal must be pulsed high for

one clock cycle after the loading the entire coefficient set

using coeffin and coeffwe.

When Number of channels is greater than 1

ibstart

1

I

Input block start. For multi-channel configurations, this input

identifies channel 0 of the input.

obstart

1

O

Output block start. For multi-channel configurations, this

output identifies channel 0.

When Variable interpolation factor or Variable decimation factor is checked

ifactor

ceil(Log2(Interpolation

I

Interpolation factor value

factor+1))

dfactor

ceil(Log2(Decimation factor+1))

I

Decimation factor value

factorset

1

I

Sets the interpolation factor or the decimation factor.

Optional I/Os

ce

1

I

Clock Enable. While this signal is de-asserted, the core will

ignore all other synchronous inputs and maintain its current

state

sr

1

I

Synchronous Reset. When asserted for at least one clock

cycle, all the registers in the IP core are initialized to reset

state.

Notes: 1. Width for signed type and symmetric interpolation is Coefficients width +1. 2. Width for unsigned and symmetric interpolation is Coefficients width +2. 3. Width for all other cases is Coefficients width.

© 2008-2021 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.

16 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide

4.6. Interfacing with the FIR Filter IP Core
4.6.1. Data interface
Data is fed into the core through din and out from the core through dout.

4.6.2. Multiple Channels
For multi-channel implementations, two ports, ibstart and obstart, are available in the IP core to synchronize the channel numbers. The input ibstart is used to identify channel 0 data applied at the inputs. The output obstart goes high simultaneously with channel 0 output data.

4.6.3. Variable Interpolation/Decimation Factor
When the interpolation (or decimation) factor is variable, the ports ifactor (or dfactor) and factorset are added to the IP core. The interpolation (or decimation) factor applied on the port ifactor (or dfactor) is set when the strobe signal factorset is high. When the interpolation (or decimation) factor changes, the output rfi goes low for a few cycles. When it becomes high again, the filter performs as an interpolating (or decimating) filter corresponding to the new factor value.

4.6.4. Reloadable Coefficients
When Reloadable Coefficients is selected, the two added ports, coeffin and coeffwe, are used to reload the coefficients. All the coefficients need to be loaded in one batch, while keeping the signal coeffwe high during the entire duration of loading. After all the coefficients are loaded, the input signal coeffset must be pulsed high for one clock cycle for the new coefficients to take effect.
There are two ways in which coefficients can be applied for reloading the coefficients memory, as specified by the Reorder Coefficients Inside parameter.
When Reorder Coefficients Inside is not selected, the coefficients have to be applied in a particular sequence for reloading the coefficients memory. The raw coefficients, as specified in the coefficients file, can be converted to the reloadable sequence by using the coefficients generation program coeff_gen.exe (for Windows) available under the gui folder in the IP installation directory (for example, under the C:LatticeCorefir_core_v6.0gui folder). The names of the coefficient generation program for UNIX and Linux are coeff_gen_s and coeff_gen_l respectively. For Windows, the program is invoked as follows:
coeff_gen.exe .lpc
Note: If in lpc file, the value of parameter varcoeff= is Yes, please change it to No before generating ROM files manually.
This command converts the coefficients in the input file, as referred by the coefffile= parameter in the lpc file, to the loadable coefficients sequence file called coeff.mem. Note that the output file may contain more coefficients than there originally were due to inserted zero coefficients. All the coefficients in the output file, including the zeros, have to be applied sequentially through the coeffin port. To obtain the sequence of application of coefficients, edit the input coefficients file with sequential numbers (e.g. 1,2) and the IP will run the file automatically. In the reloadable coefficients mode, the core will not be ready for operation (the rfi output will not be high) until the coefficients are loaded and coeffset is asserted high.
When the parameter Reorder Coefficients Inside is selected, the coefficients will be reordered inside the IP core without requiring manual reordering described previously. With this option, reordering logic is added to the IP core and the user can apply the coefficients in the normal sequence.
In this mode, if the parameter Symmetric Coefficients is selected, only half of the coefficients provided will be used. For example, if the raw coefficient input sequence is: 1 2 3 4 5 6 5 4 3 2 1, the coefficients that will be used will be 1 2 3 4 5 6.
Similarly, if Half Band is selected, all of the input coefficients in the even locations, except the last one, will be discarded. For example, if the raw coefficient input sequence is: 1 0 2 0 3 0 4 0 5 6 5 0 4 0 3 0 2 0 1, the coefficients that will be used will be 1 2 3 4 5 6.
Note: If the parameter varcoeff= in the lpc file is set to Yes, change it to No before generating the new coefficients file.

© 2008-2021 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.

FPGA-IPUG-02043-1.6

17

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
4.7. Timing Specifications
Timing diagrams for the FIR Filter IP core are given in Figure 4.8 through Figure 4.17. Note that there are different timing specifications for certain FIR filter applications using Lattice XP2/ECP3/ECP5 devices. Figure 4.8 through Figure 4.11 apply to all FIR applications.
4.7.1. Timing Specifications Applicable to All Devices
Figure 4.8. Single Channel, Single Rate FIR Filter with Continuous Inputs

Figure 4.9. Single Channel, Single Rate FIR Filter with Gaps in Input Figure 4.10. Factorset Signals
Figure 4.11. Coefficient Reloading

© 2008-2021 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.

18 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
4.7.2. Timing Specifications Applicable to LatticeXP2, LatticeECP3 and LatticeECP5 Implementations
In addition to the previous figures, Figure 4.12 through Figure 4.14 apply in using both LatticeXP2, LatticeECP3, and LatticeECP5 devices: negative symmetry, half band, factor variable interpolation and decimation, and applications using 36×36 multipliers.
Figure 4.12. Multi-Channel Single Rate FIR Filter (3 Channels)

Figure 4.13. Multi-Channel (3 Channels) Interpolator (Factor of 3)

Figure 4.14. Multi-Channel (3 Channels) Decimator (Factor of 3)

© 2008-2021 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.

FPGA-IPUG-02043-1.6

19

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
4.7.3. Timing Specifications Applicable to LatticeECP3 and LatticeECP5 Implementations
As indicated previously, Figure 4.15 through Figure 4.17 apply to all LatticeECP3 and Lattice ECP5 devices other than those specifically listed in the previous section.

Figure 4.15. Multi-Channel Single Rate FIR Filter (3 Channels)

Figure 4.16. Multi-Channel (3 Channels) Interpolator (Factor of 3)

Figure 4.17. Multi-Channel (3 Channels) Decimator (Factor of 3)

© 2008-2021 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.

20 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide

5. Parameter Settings

The IPexpress and Clarity Designer tools are used to create IP and architectural modules in the Diamond software. You may refer to the IP Core Generation and Evaluation section on how to generate the IP.
Table 5.1 provides the list of user configurable parameters for the FIR Filter IP core. The parameter settings are specified using the FIR Filter IP core Configuration interface in IPexpress or Clarity Designer. The numerous FIR Filter IP core parameter options are partitioned across multiple interface tabs as described in this chapter.

Table 5.1. Parameter Specifications for the FIR Filter IP Core

Parameter

Range

Filter Specifications

Number of channels

1 to 256

Number of taps

1 to 2048

Filter type

{Single rate, Interpolator, Decimator}

Interpolation factor

2 to 256

Variable interpolation factor

{Yes, No}

Decimation factor

2 to 256

Variable decimation factor

{Yes, No}

Coefficients Specifications

Reloadable coefficients

{Yes, No}

Reorder coefficients inside

{Yes, No}

coefficients set

{Common, One per channel}

Symmetric coefficients

{Yes, No}

Negative symmetry

{Yes, No}

Half band

{Yes, No}

Coefficient radix

{Floating point, Decimal, Hex, Binary}

Coefficients file

Type or Browse

Advanced Options

Multiplier Multiplexing factor

Note 1, Note 2

Number of SysDSP blocks in a row

5 – Note 3

I/O Specifications

Input data type

{Signed, Unsigned}

Input data width

4 to 32

Input data binary point position

-2 to Input data width + 2

Coefficients type

{Signed, Unsigned}

Coefficients width

4 to 32

Coefficients binary point position

-2 to Coefficients width + 2

Output width

4 to Max Output Width

Output binary point position

(4+Input data binary point position + coefficient binary point position ­ Max output width) to (Output width + Input data binary
point position + Coefficient binary point position – 4)

Precision control

Overflow Rounding

{Saturation, Wrap-around}
{None, Round-up, Round away from zero, Round towards zero, Convergent rounding}

Default
4 64 Single rate 2 No 2 No
Yes No Common No No No Decimal –
Note 2 Note 3
Signed 16 0
Signed 16 0 38 0
Saturation None

Memory Type Data memory type Coefficient memory type Input buffer type

{EBR, Distributed, Auto}

EBR

{EBR, Distributed, Auto}

EBR

{EBR, Distributed, Auto}

EBR

© 2008-2021 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.

FPGA-IPUG-02043-1.6

21

Downloaded from Arrow.com.

FIR Filter IP Core User Guide

Parameter

Range

Default

Output buffer type

{EBR, Distributed, Auto}

EBR

Optimization

{Area, Speed}

{Area}

Optional Ports

ce

{Yes, No}

No

sr

{Yes, No}

No

Synthesis Options

Frequency constraint

1 ­ 400

300

Notes:

1. The Multiplier Multiplexing Factor is limited by the number of DSP blocks in a device (A) and the actual number of DSP blocks a

design needs (B). When A>B, the Multiplier Multiplexing Factor is set to 1; otherwise the value will be greater than 1.

2. See Multiplier Multiplexing Factor for details. 3. Maximum number of DSP blocks available in a row in the selected device.

The default values shown in the following pages are those used for the FIR Filter reference design. IP core options for each tab are discussed in further detail.

5.1. Architecture Tab
Figure 5.1 shows the contents of the Architecture tab.

Figure 5.1. Architecture Tab of the FIR Filter IP Core Interface

© 2008-2021 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.

22 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

Table 5.2. Architecture Tab Interface Item
Number of Channels Number of Taps Filter Type Interpolation Factor Variable Interpolation Factor Decimation Factor Variable Decimation Factor Reloadable Coefficients Reorder Coefficients Inside
Coefficients set Symmetric Coefficients
Negative Symmetry Half Band
Coefficient Radix

FIR Filter IP Core User Guide
Description
This option allows the user to specify the number of channels.
This option allows the user to specify the number of taps.
This option allows the user to specify whether the filter is single rate, interpolator, or decimator.
This option allows the user to specify the value of the fixed interpolation factor. When FIR type is interpolation, the value should be 2 to 256. Otherwise, it will be set to 1 automatically.
This option allows the user to specify whether the interpolation factor is fixed at the time of IP generation, or variable during run-time. If this is checked, the interpolation factor is set through the input port ifactor when factorset is high. This option allows the user to specify the value of the fixed decimation factor. When FIR type is decimation, the value should be 2 to 256. Otherwise, it will be set to 1 automatically.
This option allows the user to specify whether the decimation factor is fixed at the time of IP generation or variable during run-time. If this is checked, the decimation factor is set through the input port dfactor when factorset is high. This option allows the user to specify whether the coefficients are fixed or reloadable. If checked, the coefficients can be reloaded during core operation using the input port coeffin.
When coefficients are reloadable, they need to be entered in a particular order. The reordering can be done using the program supplied along with the IP core. However, the core also provides for optional hardware reordering at the expense of additional hardware resources. If this option is selected, the coefficients can be entered in the normal sequence to the core, and the core will internally reorder hem as required. This option is not available when Filter type is interpolator, and Symmetric coefficients is enabled.
This option allows the user to specify whether the same coefficient set is used for all channels, or an independent coefficient set is used for each channel.
This option allows the user to specify whether the coefficients are symmetric. If this is checked, only one half of the number of coefficients (if number of taps is odd, the half value is rounded to the next higher integer) is read from the initialization file.
If this is checked, the coefficients are considered to be negative symmetric. That is the second half of the coefficients are made equal to the negative of the corresponding first-half coefficients.
This option allows the user to specify whether a half band filter is realized. If this is checked, only one half of the number of coefficients (if the number of taps is odd, the half value is rounded to the next higher integer) is read from the initialization file.
This option allows the user to specify the radix for the coefficients in the coefficients file. For decimal radix, the negative values have a preceding unary minus sign. For hexadecimal (Hex) and binary radices, the negative values must be written in 2’s complement form using exactly as many digits as specified by the coefficients width parameter. The floating point coefficients are specified in the form <nn…n>.<dd…d>, where the digits ‘n’ denote the integer part and the digits ‘d’, the decimal part. The values of the floating point coefficients must be consistent with the Coefficients width and Coefficients binary point position parameters. For example, if <nn…n>.<dd…d> is 8.4 and Coefficients type is unsigned, the value of the coefficients should be between 0 and 11111111.1111 (255.9375).

© 2008-2021 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.

FPGA-IPUG-02043-1.6

23

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
Interface Item Coefficients File
Multiplier Multiplexing Factor
Number of sysDSP Blocks in a Row

Description
This option allows the user to specify the name and location of the coefficients file. If the coefficients file is not specified, the filter is initialized with a default coefficient set.
This option allows the user to specify the Multiplier Multiplexing Factor. This parameter should be set to 1 for full parallel applications and to the maximum value supported in the interface for full series applications.
This parameter allows the user to specify the maximum number of DSP multipliers to be use in a DSP row to achieve optimal performance. For example, if the targeted device has 20 multipliers in a DSP row and the design requires 22 multipliers, the user can select to use all 20 multipliers in one row and two multipliers in another row, or fewer than 20 multipliers in each row (e.g. 8), which may yield better performance. Multipliers spread across a maximum of three DSP rows may be used in a single FIR instance. This parameter is only valid on LatticeECP3 and ECP5 devices.

5.2. I/O Specification Tab
Figure 5.2 shows the contents of the I/O Specification tab.

Figure 5.2. I/O Specification Tab of the FIR Filter IP Core Interface

© 2008-2021 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.

24 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

Table 5.3. I/O Specification Tab Interface Item
Input Data Type Input Data Width Input Data Binary Point Position Coefficients Type Coefficients Width Coefficients Binary Point Position Output Width
Output Binary Points
Overflow
Rounding

FIR Filter IP Core User Guide
Description
This option allows the user to specify the input data type as signed or unsigned. This option allows the user to specify input data twwiod’tsh.complement number.
This option allows the user to specify the location of the binary point in the input data. This number specifies the bit position of the binary point from the LSB of the input data. If the number is zero, the point is right after LSB, if positive, it is to the left of LSB and if negative, it is to the right of LSB.
This option allows the user to specify the coefficients type as signed or unsigned. If the type is signed, the coefficient data is interpreted as a 2’s complement number. This option allows the user to specify the coefficients width. This option allows the user to specify the location of the binary point in the coefficients. This number specifies the bit position of the binary point from the LSB of the coefficients. If the number is zero, the point is right after LSB; if positive, it is to the left of LSB and if negative, it is to the right of LSB.
This option allows the user to specify the output data width. The maximum full precision output width is defined by Max Output Width = Input data width + Coefficients width +ceil (Log2(Number of taps/Interpolation factor)). The core’s output is usually a part of the full precision output equal to the Output width and extracted based on the different binary point position parameters. The format for the internal full precision output is displayed as static text next to the Output width control in the interface. The format is displayed as W.F, where W is the full precision output width and F is the location of the binary point from the LSB of the full precision output, counted to the left. For example, if W.F is 16.4, then the output value will be yyyyyyyyyyyy.yyyy in binary radix.For example, 110010010010.0101.
This option allows the user to specify the bit position of the binary point from the LSB of the actual core output. If the number is zero, the point is right after LSB, if positive, it is to the left of LSB and if negative, it is to the right of LSB. This number, together with the parameter Output width, determines how the actual core output is extracted from the true full precision output. The precision control parameters Overflow and Rounding are applied respectively when MSBs and LSBs are discarded from the true full precision output.
This option allows the user to specify what kind of overflow control is to be used. This parameter is available when- ever there is a need to drop some of the MSBs from the true output. If the selection is Saturation, the output value is clipped to the maximum, if positive or minimum, if negative, while discarding the MSBs. If the selection is Wrap- around, the MSBs are simply discarded without making any correction.
This option allows the user to specify the rounding method when there is a need to drop one or more LSBs from the true output.

© 2008-2021 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.

FPGA-IPUG-02043-1.6

25

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
5.3. Implementation Tab
Figure 5.3 shows the contents of the Implementation tab.

Figure 5.3. Implementation Tab of the FIR Filter IP Core Interface

Table 5.4. Implementation Tab Interface Item
Data Memory Type
Coefficient Memory Type
Input Buffer Type Output Buffer Type Synchronous Reset (sr) Clock Enable (ce)
Optimization Synthesis Options

Description
This option allows the user to specify select the type of memory that is used for storing the data. If the selection is EBR, Lattice Embedded Block RAM memories are used for storing the data. If the selection is Distributed, look- up-table based distributed memories are used for storing data. If “Auto” is selected, EBR memories are used for memory sizes deeper than 128 locations and distributed memories are used for all other memories. If the type is signed, the data is interpreted as a two’s complement number.
This option allows the user to specify the type of memory that is used for storing the coefficients. If the selection is EBR, EBR memories are used for storing the coefficients. If the selection is Distributed, distributed memories are used for storing coefficients. If Auto is selected, EBR memories are used for memory sizes deeper than 128 locations and distributed memories are used for all other memories.
This option allows the user to specify the memory type for the input buffer. This option allows the user to specify the memory type for the output buffer.
This option allows the user to specify if a synchronous reset port is needed in the IP. Synchronous reset signal resets all the registers in the FIR filter IP core.
This option allows the user to specify if a clock enable port is needed in the IP. Clock enable control can be used for power saving when the core is not being used. Use of clock enable port increases the resource utilization and may affect the performance due to the increased routing congestion.
This option specifies the optimization method. If Area is selected, the core is optimized for lower resource utilization. If Speed is selected, the core is optimized for higher performance, but with slightly higher resource utilization.
Lattice LSE or Synplify Pro

© 2008-2021 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.

26 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
6. IP Core Generation and Evaluation
This chapter provides information on how to generate the Lattice FIR Filter IP core using the ispLEVER software IPexpress tool included in the Diamond or ispLEVER software, and how to include the core in a top-level design.
6.1. Licensing the IP Core
An IP core- and device-specific license is required to enable full, unrestricted use of the FIR Filter IP core in a complete, top-level design. 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 FIR Filter IP core and fully evaluate the core through functional simulation and implementation (synthesis, map, place and route) without an IP license. The FIR Filter 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 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.
6.2. Getting Started
The FIR Filter IP core is available for download from Lattice’s IP server using the IPexpress or the Clarity Designer 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 Interface or the Clarity Designer tool. The IPexpress tool interface dialog box for the FIR Filter IP core is shown in Figure 6.1. To generate a specific IP core configuration, the user specifies: · Project Path ­ Path to the directory where the generated IP files will be located. · File Name ­ Username designation given to the generated IP core and corresponding folders and files. · (Diamond) Module Output ­ Verilog or VHDL. · Device Family ­ Device family to which IP is to be targeted (such as LatticeXP2, LatticeECP3, and others). Only
families that support the particular IP core are listed. · Part Name ­ Specific targeted part within the selected device family.

Figure 6.1. IPexpress Dialog Box

© 2008-2021 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.

FPGA-IPUG-02043-1.6

27

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
Note that if the IPexpress tool is called from within an existing project, Project Path, Module Output, 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 FIR Filter IP core Configuration interface, as shown in Figure 6.2. From this dialog box, the user can select the IP parameter options specific to their application. Refer to Parameter Settings for more information on the FIR Filer IP core parameter settings.

Figure 6.2. Configuration Dialog Box
The Clarity Designer tool interface dialog box for the FIR Filter IP core is shown in Figure 6.3. · Create new Clarity design ­ Choose to create a new Clarity Design project directory in which the FIR IP core will be
generated. · Design Location ­ Clarity Design project directory Path. · Design Name ­ Clarity Design project name. · HDL Output ­ Hardware Description Language Output Format (Verilog or VHDL). · Open Clarity design ­ Open an existing Clarity Design project. · Design File ­ Name of existing Clarity Design project file with .sbx extension.

Figure 6.3. Clarity Designer Tool Dialog Box

© 2008-2021 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.

28 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
The Clarity Designer Catalog tab is shown in Figure 6.4. To generate FIR IP core configuration, double-click the IP name in the Catalog tab.

Figure 6.4. Clarity Designer Catalog Tab
In the Fir Filter dialog box shown in Figure 6.5, specify the following: · Instance Name ­ The instance module name of FIR IP core.

Figure 6.5. Fir Filter Dialog Box
Note that if the Clarity Designer tool is called from within an existing project, Design Location, Device Family, and Part Name default to the specified project parameters. Refer to the Clarity Designer tool online help for further information. To create a custom configuration, click the Customize button in the Clarity Designer tool dialog box to display the FIR IP core Configuration interface, as shown in Figure 6.6. From this dialog box, the user can select the IP parameter options specific to their application. Refer to Parameter Settings for more information on the FIR parameter settings.

© 2008-2021 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.

FPGA-IPUG-02043-1.6

29

Downloaded from Arrow.com.

FIR Filter IP Core User Guide

Figure 6.6. IP Configuration Interface

© 2008-2021 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.

30 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide
6.3. IPexpress-Created Files and Top Level Directory Structure
When the user clicks the Generate button, 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 6.7.

Figure 6.7. FIR Filter IP Core Generated Directory Structure

The design flow for IP created with the IPexpress tool uses a post-synthesized module (NGO) for synthesis and a protected model for simulation. The post- synthesized module is customized and created during the IPexpress tool generation.
Table 6.1 provides a list of key files created by the IPexpress tool. The names of most of the created files are customized to the user’s module name specified in the IPexpress tool. The files shown in Table 6.1 are all of the files necessary to implement and verify the FIR Filter IP core in a top-level design.

Table 6.1. File List File

Description

_inst.v

This file provides an instance template for the IP.

.v

This file provides a wrapper for the FIR core for simulation.

_beh.v

This file provides a behavioral simulation model for the FIR core.

_bb.v

This file provides the synthesis black box for the user’s synthesis.

.ngo

The ngo files provide the synthesized IP core.

.lpc .ipx pmi_*.ngo *.rom

This file contains the IPexpress tool options used to recreate or modify the core in the IPex- press tool. IPexpress package file (Diamond only). This is a container that 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 this file to the associated Diamond project.
One or more files implementing synthesized memory modules used in the IP core.
This file provides filter coefficient memory initialization data.

© 2008-2021 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.

FPGA-IPUG-02043-1.6

31

Downloaded from Arrow.com.

FIR Filter IP Core User Guide

The following additional files providing IP core generation status information are also generated in the Project Path directory: · _generate.tcl ­ A TCL scripts which can regenerate the IP from command line. ·

_generate.log ­ Synthesis and map log file. · _gen.log ­ IPexpress IP generation log file. 6.4. Instantiating the Core The generated FIR Filter IP core package includes black-box (_bb.v) and instance (_inst.v) templates that can be used to instantiate the core in a top-level design. An example RTL top-level reference source file that can be used as an instantiation template for the IP core is provided in fir_evalsrcrtltop. You may also use this top-level reference as the starting template for the top-level for their complete design. By regenerating an IP core with the Clarity Designer tool, you can modify any of the options specific to an existing IP instance. By recreating an IP core with Clarity Designer tool, you can create (and modify if needed) a new IP instance with an existing LPC/IPX configuration file. 6.5. Running Functional Simulation Simulation support for the FIR Filter IP core is provided for Aldec Active-HDL (Verilog and VHDL) simulator, Mentor Graphics ModelSim simulator. The functional simulation includes a configuration-specific behavioral model of the FIR Filter 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 functional simulation in the Project Path root directory. The simulation scripts supporting ModelSim evaluation simulation is provided in fir_evalsimmodelsimscripts. The simulation script supporting Aldec evaluation simulation is provided in fir_evalsimaldecscripts. Both Modelsim and Aldec simulation is supported via test bench files provided in fir_evaltestbench. Models required for simulation are provided in the corresponding models folder. To run the Aldec evaluation simulation: 1. Open Active-HDL. 2. Under the Tools tab, select Execute Macro. 3. Browse to folder fir_evalsimaldecscripts and execute one of the do scripts shown. To run the Modelsim evaluation simulation: 1. Open ModelSim. 2. Under the File tab, select Change Directory and choose the folder fir_evalsimmodelsimscripts. 3. Under the Tools tab, select Execute Macro and execute the ModelSim do script shown. Note: When the simulation is complete, a pop-up window appears asking Are you sure you want to finish? Choose No to analyze the results. Choosing Yes closes ModelSim. 6.6. Synthesizing and Implementing the Core in a Top-Level Design The FIR Filter IP core itself is synthesized and provided in NGO format when the core is generated through IPexpress. You may combine the core in your own top-level design by instantiating the core in your top-level file as described in Instantiating the Core 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 file _top.v is provided in fir_evalsrcrtltop. Push-button implementation of the reference design is supported via the project file .ldf located in fir_evalimplsynplify. To use this project file in Diamond:

© 2008-2021 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.

32 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide

1. Choose File > Open > Project. 2. Browse to

fir_evalimplsynplify 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 interface window. 5. Implement the complete design through the standard Diamond interface flow. 6.7. Hardware Evaluation The FIR Filter 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. The hardware evaluation capability may be enabled/disabled in the Properties menu of the Build Database setup in Diamond Project Navigator. 6.7.1. Enabling Hardware Evaluation in Diamond To enable 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.

6.8. 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.

6.8.1. 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. 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 module dialog box, choose the desired options.
For more 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 needs.
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. Thengo to step 6 above.

© 2008-2021 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.

FPGA-IPUG-02043-1.6

33

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
6.9. Regenerating an IP Core in Clarity Designer Tool
To regenerate an IP core in Clarity Designer: 1. In the Clarity Designer Builder tab, right-click on the existing IP instance and choose Config. 2. In the module dialog box, choose the desired options.
For more information about the options, click Help. You may also click the About tab in the Clarity Designer window for links to technical notes and user guides. The 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 needs. 3. Click Configure.
6.10.Recreating an IP Core in Clarity Designer Tool
To recreate an IP core in Clarity Designer: 1. In Clarity Designer click the Catalog tab. 2. Click the Import IP tab (at the bottom of the view). 3. Click Browse. 4. In the Open IPX File dialog box, browse to the .ipx or .lpc file of the module. Use the .ipx if it is available. 5. Click Open. 6. Type in a name for Target Instance. Note that this instance name should not be the same as any of the existing 7. IP instances in the current Clarity Designer project. 8. Click Import. The module’s dialog box opens. 9. In the dialog box, choose desired options.
For more information about the options, click Help. You may also check the About tab in the Clarity Designer window for links to technical notes and user guides. The IP may come with additional information. As the options change, the schematic diagram of the module changes to show the ports and the device resources the module needs. 10. Click Configure.

© 2008-2021 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.

34 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

References
· LatticeXP2TM Family Data Sheet (DS1009) · LatticeECP3TM Family Data Sheet (DS1021) · ECP5TM and ECP5-5GTM Family Data Sheet (FPGA-DS-12012)

FIR Filter IP Core User Guide

© 2008-2021 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.

FPGA-IPUG-02043-1.6

35

Downloaded from Arrow.com.

FIR Filter IP Core User Guide
Technical Support Assistance
Submit a technical support case through www.latticesemi.com/techsupport.

© 2008-2021 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.

36 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

FIR Filter IP Core User Guide

Appendix A. Resource Utilization
This appendix provides resource utilization information for Lattice FPGAs using the FIR IP core. The IP configurations shown in this chapter were generated using the IPexpress software tool and Clarity Designer tool. IPexpress and Clarity Designer are the Lattice IP configuration utility, and are included as a standard feature of the Diamond design tool. Details regarding the usage of IPexpress and Clarity Designer can be found in the IPexpress, Clarity Designer and Diamond help systems. For more information on the Diamond design tool, visit the Lattice web site at: www.latticesemi.com/software.

LatticeECP3 Devices

Table A.1. Performance and Resource Utilization (LatticeECP3)*

IPexpress User-Configurable Mode 4 channels, 64 taps, multiplier multiplexing 64

Slices 134

LUTs 254

Registers 222

DSP Slices 4

sysMEM EBRs
2

fMAX (MHz) 227

1 channel, 32 taps, multiplier multiplexing 1

84

155

148

32

0

207

1 channel, 32 taps, multiplier multiplexing 4

260

238

482

10

8

153

*Note: Performance and utilization characteristics are generated targeting an LFE3-150EA-6FN672C device using Lattice Diamond 3.10.2 and Synplify Pro D-2013.09L beta software. Performance may vary when using this IP core in a different density, speed or grade within the LatticeECP3 family or in a different software version.

Ordering Part Number

The Ordering Part Number (OPN) for the FIR Filter IP Core targeting LatticeECP3 devices is FIR-COMP-E3-U4.

LatticeXP2 Devices

Table A.2. Performance and Resource Utilization (LatticeXP2)*

IPexpress User-Configurable Mode 4 channels, 64 taps, multiplier multiplexing 64

Slices 105

LUTs 204

Registers 165

18×18 Multipliers
1

sysMEM EBRs
1

fMAX (MHz) 197

1 channel, 32 taps, multiplier multiplexing 1

211

418

372

8

0

189

1 channel, 32 taps, multiplier multiplexing 4

159

272

304

2

8

207

*Note: Performance and utilization characteristics are generated targeting an LFXP2-40E-7F672C device using Lattice Diamond 3.10.2 and Synplify Pro D-2013.09L beta software. Performance may vary when using this IP core in a different density, speed or grade within the LatticeXP2 family or in a different software version.

Ordering Part Number

The Ordering Part Number (OPN) for the FIR Filter IP Core targeting LatticeXP2 devices is FIR-COMP-X2-U4.

ECP5 Devices

Table A.3. Performance and Resource Utilization (LFE5U)*

Clarity User-Configurable Mode 4 channels, 64 taps, multiplier multiplexing 64

Slices 129

LUTs 248

Registers

DSP Slices

sysMEM EBRs

222

4

2

fMAX (MHz)
211

1 channel, 32 taps, multiplier multiplexing 1

80

151

148

32

0

264

1 channel, 32 taps, multiplier multiplexing 4

260

239

482

10

8

177

*Note: Performance and utilization characteristics are generated targeting LFE5UM-85F-8MG756I using Lattice Diamond 3.10.2 and Synplify Pro F-2013.09L beta software. When using this IP core in a different density, speed, or grade within the ECP5 device family or in a different soft- ware version, performance may vary.

Ordering Part Number

The Ordering Part Number (OPN) for the FIR Filter IP Core targeting ECP5 devices is FIR- COMP-E5-U.

© 2008-2021 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.

FPGA-IPUG-02043-1.6

37

Downloaded from Arrow.com.

FIR Filter IP Core User Guide

Revision History
Revision 1.6, June 2021 Section Functional Description

Change Summary Updated content in Reloadable Coefficients section.

Revision 1.5, June 2018 Section All Introduction Quick Facts Features Functional Description
Parameter Settings
IP Core Generation and Evaluation
Appendix A. Resource Utilization Technical Support Assistance

Change Summary
· Changed document number from IPUG79 to FPGA-IPUG-02043.
· Updated content.
· General update to Quick Facts tables.
· Removed the line, “In ECP5, support high-speed. For low speed, support for half-band filter.”
· Updated Figure 4.1. Top-Level Interface for the FIR Filter IP Core. · Updated equation in FIR Filter Architecture. · Updated Figure 4.7 caption. · Updated Coefficients Specification section. · Updated Table 4.2 in Signal Descriptions section. · Updated Interfacing with the FIR Filter IP Core section. · Added Lattice ECP3 and ECP5 in Timing Specifications section.
· Updated Table 5.1. Parameter Specifications for the FIR Filter IP Core. · Updated Figure 5.1. Architecture Tab of the FIR Filter IP Core Interface. · Updated Table 5.2. Architecture Tab. · Updated Table 5.4. Implementation Tab. Added Synthesis Options description.
· Updated Figure 6.1. IPexpress Dialog Box. · Updated Figure 6.2. Configuration Dialog Box. · Updated Figure 6.3. Clarity Designer Tool Dialog Box. · Updated Figure 6.4. Clarity Designer Catalog Tab. · Updated Figure 6.5. Fir Filter Dialog Box. · Updated Figure 6.6. IP Configuration Interface. · Updated Figure 6.7. FIR Filter IP Core Generated Directory Structure.
· Updated Table A.1. Performance and Resource Utilization (LatticeECP3). · Updated Table A.2. Performance and Resource Utilization (LatticeXP2). · Updated Table A.3. Performance and Resource Utilization (LFE5U)*.
· General update.

Revision 1.4, May 2018 Section All

Change Summary
· Added support for ECP5 FPGA family. · Updated document with new corporate logo. · Updated Technical Support Information.

Revision 1.3, May 2011 Section All

Change Summary · Added support for multipliers in multiple DSP rows. · Changed interface timing for certain configurations in LatticeECP3 devices.

© 2008-2021 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.

38 Downloaded from Arrow.com.

FPGA-IPUG-02043-1.6

Revision 1.2, June 2010 Section All
Quick Facts IP Core Generation and Evaluation

Change Summary · Added support for Diamond software throughout. · Divided document into chapters. Added table of contents. · Added Quick Facts tables. · Added new content.

Revision 1.1, April 2009 Section All

Change Summary · Added support for LatticeECP3 FPGA family. · Updated appendices for ispLEVER 7.2 SP1.

Revision 1.0, September 2008 Section All

Change Summary Initial release.

FIR Filter IP Core User Guide

© 2008-2021 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.

FPGA-IPUG-02043-1.6

39

Downloaded from Arrow.com.

Downloaded from Arrow.com.

www.latticesemi.com

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals