DSP Builder for Intel® FPGAs (Advanced Blockset): Handbook

ID 683337
Date 9/30/2024
Public
Document Table of Contents

6.8.6. Primitive FIR with Forward Pressure

This DSP Builder design example uses Primitive library blocks to implement a FIR design with forward flow control. The design example shows how you can add a simple forward flow control scheme to a FIR design so that it can handle invalid source data correctly.

The top-level testbench includes Control and Signals blocks.

The FirChip subsystem includes the Device block and a lower-level Primitive FIR subsystem.

The primitive FIR subsystem includes ChannelIn, ChannelOut, Mux, SampleDelay, Const, Mult, Add, and SynthesisInfo blocks.

In this design example, the top level of the FPGA device (marked by the Device block) and the synthesizable primitive FIR subsystem (marked by the SynthesisInfo block) are at different hierarchy levels.

The model file is demo_forward_pressure.mdl.

The design example has a sequence of three FIR filters that stall when the valid signal is low, preventing invalid data polluting the datapath. The design example has a regular filter structure, but with a delay line implemented in single-cycle latches—effectively an enabled delay line.

You need not enable everything in the filter (multipliers, adders, and so on), just the blocks with state (the registers). Then observe the output valid signal, which DSP Builder pipelines with the logic, and observe the valid output data only.

You can also use vectors to implement the constant multipliers and adder tree, which also speeds up simulation.

You can improve the design example further by using the TappedDelayLine block.