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?.
0 个评论
采纳的回答
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 个评论
Walter Roberson
2016-3-30
Use Fixed Point Designer and configure the rounding mode to "Simplest"; see http://www.mathworks.com/help/dsp/ug/concepts-and-terminology.html
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!