matlab生成vhdl程序,使用HDL Workflow Advisor将matlab代码转换为vhdl

我制作了一个Matlab程序,用于检测2个圆形是否相互交叉并输出交点的坐标。现在,我试图将代码转换为vhdl来实现FPGA。

我的代码中HDL Workflow Advisor中仍然存在错误的函数之一是:

function theta = angle2Points(p1,p2)

%ANGLE2POINTS Compute horizontal angle between 2 points

%

% ALPHA = angle2Points(P1, P2),

% Pi are either [1*2] arrays, or [N*2] arrays, in this case ALPHA is a

% [N*1] array. The angle computed is the horizontal angle of the line

% (P1 P2)

% Result is always given in radians, between 0 and 2*pi.

%

% See Also:

% points2d, angles2d, angle3points, normalizeAngle, vectorAngle

%

%

% ---------

dp = zeros(1,2);

% angle of line (P2 P1), between 0 and 2*pi.

dp = p2 - (size(p2, 1) * p1)

theta = mod(atan2(dp(:,2), dp(:,1)) + 2*pi, 2*pi)错误:

变量'p1'。变量大小的数据不受支持。

变量'p2'。变量大小的数据不受支持。

变量'theta'。变量大小的数据不受支持。

用一个小测试文件来模拟传入的数据:

% P = [x,y]

P1 = [0,3];

P2 = [5,10];

f=angle2Points(P1,P2);

P1 = [0,3];

P2 = [5,3];

f2=angle2Points(P1,P2在Workflow Advisor中,我收到:不支持Variable-Size数据 - 第1行出错。

我明白这是因为像C这样的静态类型语言必须能够在编译时确定变量属性,而在Matlab中它是动态发生的。

我想就如何正确地重写代码以使其准备好hdl这个简单的功能提供一些帮助。

提前致谢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值