使用 Matlab HDL Coder 生成 VHDL 代码
VHDL Code Generation using Matlab HDL Coder
对不起如果我说了一些话silly.Please请原谅我:
我正在尝试将 Matlab 代码(下面给出)转换为 VHDL 代码,使用 HDL coder.It 包含一个名为 sum.But 的函数,当我尝试转换代码时出现错误:
code generation only supports SumModes 'SpecifyPrecision' and
'KeepLSB' for 'SUM' when the size of the inputs can vary at run-time.
但问题是我从未使用过函数 before.Can 任何人请帮助我 it.How 应该更改我的代码以将其转换为 VHDL.It 会非常好!
function y = fcn(n,y1,y2)
n=10;
x1c=zeros(2*n-1,1);
for i=1:2*n-1
if(i>n)
j1=1;
k1=2*n-i;
j2=i-n+1;
k2=n;
else
j1=n-i+1;
k1=n;
j2=1;
k2=i;
end
x1c(i)=sum((y1(j1:k1)).*y2(j2:k2));
end
x1c=flipud(x1c).';
y=x1c;
这是 y1 和 y2 的互相关。 y1 和 y2 是两个相同长度的向量,n 是 y1 的长度。我真的卡住了,请帮忙!
提前致谢!
@Haider:看看
n=10;
y1 = 1:n;
y2 = n:-1:1;
x1c=zeros(1,2*n-1);
for i=1:2*n-1
y1_temp = zeros(1,2*n-1);
y2_temp = zeros(1,2*n-1);
if(i>n)
j1=1;
k1=2*n-i;
j2=i-n+1;
k2=n;
else
j1=n-i+1;
k1=n;
j2=1;
k2=i;
end
y1_temp(j1:k1) = y1(j1:k1);
y2_temp(j1:k1) = y2(j2:k2);
x1c(i)=sum(y1_temp.*y2_temp);
end
我用Matlab的xcorr函数对比了一下,好像是向量反转了。这是否解决了错误?
对不起如果我说了一些话silly.Please请原谅我: 我正在尝试将 Matlab 代码(下面给出)转换为 VHDL 代码,使用 HDL coder.It 包含一个名为 sum.But 的函数,当我尝试转换代码时出现错误:
code generation only supports SumModes 'SpecifyPrecision' and 'KeepLSB' for 'SUM' when the size of the inputs can vary at run-time.
但问题是我从未使用过函数 before.Can 任何人请帮助我 it.How 应该更改我的代码以将其转换为 VHDL.It 会非常好!
function y = fcn(n,y1,y2)
n=10;
x1c=zeros(2*n-1,1);
for i=1:2*n-1
if(i>n)
j1=1;
k1=2*n-i;
j2=i-n+1;
k2=n;
else
j1=n-i+1;
k1=n;
j2=1;
k2=i;
end
x1c(i)=sum((y1(j1:k1)).*y2(j2:k2));
end
x1c=flipud(x1c).';
y=x1c;
这是 y1 和 y2 的互相关。 y1 和 y2 是两个相同长度的向量,n 是 y1 的长度。我真的卡住了,请帮忙! 提前致谢!
@Haider:看看
n=10;
y1 = 1:n;
y2 = n:-1:1;
x1c=zeros(1,2*n-1);
for i=1:2*n-1
y1_temp = zeros(1,2*n-1);
y2_temp = zeros(1,2*n-1);
if(i>n)
j1=1;
k1=2*n-i;
j2=i-n+1;
k2=n;
else
j1=n-i+1;
k1=n;
j2=1;
k2=i;
end
y1_temp(j1:k1) = y1(j1:k1);
y2_temp(j1:k1) = y2(j2:k2);
x1c(i)=sum(y1_temp.*y2_temp);
end
我用Matlab的xcorr函数对比了一下,好像是向量反转了。这是否解决了错误?