found unsupported dynamic matrix type at output port 0

4 次查看(过去 30 天)
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?.

采纳的回答

Tim McBrayer
Tim McBrayer 2016-3-29
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 个评论
Amruta  Radder
Amruta Radder 2016-3-30
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.

请先登录,再进行评论。

更多回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by