How to write an optimized FIR filter
By Robert Oshana, Texas Instruments

April 23, 2007, dspdesignline.com
This article shows how to write optimized FIR filter code for a DSP, using the Texas Instruments C55x architecture as an example.
April 23, 2007, dspdesignline.com
This article shows how to write optimized FIR filter code for a DSP, using the Texas Instruments C55x architecture as an example.
Today's DSP architectures are made specifically to maximize throughput of DSP algorithms, such as a DSP filter. Some of the features of a DSP include:
- On-chip memory – Internal memory allows the DSP fast access to algorithm data such as input values, coefficients and intermediate values.
- Special MAC instruction – For performing a multiply and accumulate, the crux of a digital filter, in one cycle.
- Separate program and data buses – Allows the DSP to fetch code without affecting the performance of the calculations.
- Multiple read buses – For fetching all the data to feed the MAC instruction in one cycle.
- Separate Write Buses – For writing the results of the MAC instruction. Parallel architecture – DSPs have multiple instruction units so that more than one instruction can be executed per cycle.
- Pipelined architecture – DSPs execute instructions in stages so more than one instruction can be executed at a time. For example, while one instruction is doing a multiply another instruction can be fetching data with other resources on the DSP chip.
- Circular buffers – To make pointer addressing easier when cycling through coefficients and maintaining past inputs.
- Zero overhead looping – Special hardware to take care of counters and branching in loops.
- Bit-reversed addressing – For calculating FFTs.
To read the full article, click here
Related Semiconductor IP
- HBM4 PHY IP
- Ultra-Low-Power LPDDR3/LPDDR2/DDR3L Combo Subsystem
- MIPI D-PHY and FPD-Link (LVDS) Combinational Transmitter for TSMC 22nm ULP
- HBM4 Controller IP
- IPSEC AES-256-GCM (Standalone IPsec)
Related Articles
- How to manage changing IP in an evolving SoC design
- Systolic FIR Filter Based FPGA
- Selecting an embedded MCU: How to avoid evaluation trap?
- How to achieve 1 trillion floating-point operations-per-second in an FPGA
Latest Articles
- ElfCore: A 28nm Neural Processor Enabling Dynamic Structured Sparse Training and Online Self-Supervised Learning with Activity-Dependent Weight Update
- A 14ns-Latency 9Gb/s 0.44mm² 62pJ/b Short-Blocklength LDPC Decoder ASIC in 22FDX
- Pipeline Stage Resolved Timing Characterization of FPGA and ASIC Implementations of a RISC V Processor
- Lyra: A Hardware-Accelerated RISC-V Verification Framework with Generative Model-Based Processor Fuzzing
- Leveraging FPGAs for Homomorphic Matrix-Vector Multiplication in Oblivious Message Retrieval