simple IIR filter design

Hi, I am using this simple transfer function H(z)= 1/(z^2 + 0.1z+ 0.01), transforming to bilinear. Now I want to generate the VHDL code for this compensator. Not targeting to any FPGA board. but for simple transistor level synthesis like cadence etc. Can I do this using MATLAB. Regards, shayder

1 Commento

Stephen23
Stephen23 il 28 Mag 2015
Here is the text of the original question, just in case Safiya decides to delete the text of this question too (like this one):
Hi, I am using this simple transfer function H(z)= 1/(z^2 + 0.1z+ 0.01), transforming to bilinear. Now I want to generate the VHDL code for this compensator. Not targeting to any FPGA board. but for simple transistor level synthesis like cadence etc. Can I do this using MATLAB. Regards, shayder

Accedi per commentare.

 Risposta accettata

Tim McBrayer
Tim McBrayer il 5 Mag 2015

1 voto

You might want to take a look at either HDL Coder or Filter Design HDL Coder to see if either of these products will meet your needs. Both generate cycle-accurate, bit true VHDL or Verilog that is ready for simulation and synthesis.

3 Commenti

Safiya
Safiya il 6 Mag 2015
thanks for your answer ! how can I store Coefficients in real implementation. Do we need separate memory or HDL coder will do it for using adders or other logics. and the generated VHDL code is must be targeted to FPGA or it can be synthesized to cadence layout etc.
HDL Coder and related tools can generate complete descriptions suitable for chip layout programs, and do not need to be targeted to FPGA.
If you want to use floating point then you are going to need a floating point library and it is going to take up a lot of space on your chip.
The recommendation is to avoid floating point and to instead to use the Fixed Point Designer.
Tim McBrayer
Tim McBrayer il 6 Mag 2015
HDL Coder supports many different styles of modeling. The design of your filter is up to you and your requirements.
With HDL Coder, if you need storage for your coefficients--for instance, if you want to change them over time--you can store them in a register implemented with a unit delay. If you want a RAM to store the coefficients, you can do that as well using a HDL RAM block. If you just want a set of fixed coefficients you can specify them with Constant blocks, or as the parameter of a Gain block. If you want to supply the coefficients as external inputs to your filter you can do that as well.
The generated HDL is target-independent unless specifically requested not to be. It can be used for simulation, synthesis (for either FPGA or ASIC), or any other purpose that you would use hand-written HDL for.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by