Cascade Filter in HDL Coder

2 views (last 30 days)
shauk on 19 Jul 2017
Answered: shauk on 20 Jul 2017
I am trying to make an interpolation filter of 256 Up sampling. But this is too big for the HDL coder to generate the code. To solve that problem i used one interpolation filter with 32 up sample and other one with 8 up sample. Then i cascaded the two filters to get the desired 256 up sampling. Now the problem starts with Restricted Fmax when i try to generate the HDL code for this model. When i generate HDL code for 32 up sample and 8 up sample separately without cascading them together both of them have a Fmax around 50 MHz. But when i cascade them and generate the HDL code for the model the Fmax comes down to 35 MHz. Whats is the reason behind this? Is there any optimization i can apply to increase the Fmax. I know clock optimization will increase the area, but that's now an concern right now.

Answers (2)

Bharath Venkataraman
Bharath Venkataraman on 19 Jul 2017
If you doing this with Filter Design HDL Coder, please look at the pipeline options for multiplier pipelining, as well as the option of "Add Pipeline Registers". That should increase your fmax.

shauk on 20 Jul 2017
I am using the interpolation filter block from simulink hdl coder library. I have matlab 2014b. I use a serial partition for my filter, and then add pipelines using the HDL block properties option. Any suggestions on how to properly pipeline to get increased Fmax


Find more on Optimization in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!