found unsupported dynamic matrix type at output port 0

6 views (last 30 days)
Hi, I am working on Laplace transfer function i.e y=sum(sin(t_rad).*exp(-s*t_rad).*0.1); where i need to convert the function into HDL code.
Error i am getting is " found unsupported dynamic matrix type at output port 0" & output y is 1*N matrix. What is the solution to avoid this error?.

Accepted Answer

Tim McBrayer
Tim McBrayer on 29 Mar 2016
HDL Coder does not support dynamic matrices at any point. The matrix in question may not be your final output, but some intermediate temporary value inside your complicated expression.
I would try converting your code to a much simpler form with explicitly typed and sized variables for each operation. This may expose or even eliminate the dynamic matrix.
You can convert:
y=sum(sin(t_rad).*exp(-s*t_rad).*0.1)
to this style:
t1 = -s * t_rad;
t2 = exp(t1);
t3 = t2 .* 0.1;
and so on. If you are in the fixed point domain already, you can apply explicit types and sizing at each step.
  4 Comments
Amruta  Radder
Amruta Radder on 30 Mar 2016
Yes, I have tried all options for rounding mode by selecting floor and zeros but still i am struck with same error i.e. Found unsupported division expression for HDL code generation; Signed input data type is not supported for division with Floor RoundMode. For expression a2=cos(imag(a1))+1j.*sin(imag(a1)); i am getting the above error. According to my knowledge i feel that i have to use cordicsin and cordiccos function instead of cos and sin because output is in complex form. Is it the right way of using? if so suggest me how to use cordicsin function.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!