How to deal with math functions like tan,atan in matlab code while converting them to verilog using hdlcoder?

2 views (last 30 days)
I need to convert matlab code to verilog. I tried using hdlcoder,but in my code I have math functions like tan,atan,log etc. which are causing errors during Hdl conversion.It says "The MATLAB design contains constructs that are unsupported for HDL code generation."
Also they are giving errors during fixed point conversion. I tried setting "Keep original types" but still the above error is coming.
Waiting for any help.
Thanks, Susmitha.

Accepted Answer

Walter Roberson
Walter Roberson on 5 Jul 2016
  3 Comments
Susmitha  S
Susmitha S on 6 Jul 2016
I am new to matlab.
The reference you gave me for cordic algorithm shows an example of sin , cosine functional blocks and I am able to run the particular code and generate Verilog code.
But I am clueless on how to create my own functional block and add it to the remaining matlab code. For example: If I need to implement a functional block for: a1*tan(b1*n); how should I proceed?
(a1, b1 , n are parameters I am passing to a function where the tan,atan functions are present) Please help.
Thanks, Susmitha

Sign in to comment.

More Answers (1)

Tim McBrayer
Tim McBrayer on 5 Jul 2016
An alternative approach is to use a lookup-table based function substitution. This works better for sin or cos than it does for tan, due to the limited range of the function input and output. Nonetheless, dependent upon your system requirements and input ranges to these functions you can get quite good results at your desired precision using lookup tables as well.

Products

Community Treasure Hunt

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

Start Hunting!