戒烟第一天的感觉:小弟不知道如何把matlab变成VHDL编程,请诸位大牛帮个忙.知道的大牛请联系nguangyi@eyou.com谢谢!!

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 18:52:19
请求大牛帮忙,小弟在做LDPC编码,已经用MATLAB编程,但不知道如何把其变成VHDL编程,请诸位大牛帮个忙,以下为所编MATLAB源码.请发到nguangyi@eyou.com谢谢!!
function [x]=encode(H,s)
H=[1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0;
1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0;
0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0;
1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0;
0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0;
0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0;
0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0;
0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0;
0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1;
0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1;
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1;
0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0;
];
s=randint(1,5);
[n,m]=size(H);
G=H(1:n,[m]);
g=3;
A=H(1:(n-g),1:(m-n));
B=H(1:(n-g),(m-n+1):(m-n+g));
C=H((n-g+1):n,1:(m-n));
D=H((n-g+1):n,(m-n+1):(m-n+g));
E=H((n-g+1):n,(m-n+g+1):m);
T=H(1:(n-g),(m-n+g+1):m);
p=inv(-E*inv(T)*B+D)*(-E*inv(T)*A*s'+C*s');
p1=round(p);
p2=mod(p1,2);
p2=p2';
q=inv(T)*(A*s'+B*p2');
q1=round(q);
q2=mod(q1,2);
q2=q2';
x=[s,p2,q2];

http://www.ddvip.net/
http://www.swpi.edu.cn/template/sectempone.aspx?subsid=102
http://www.waterpub.com.cn/SoftDown/SoftView.asp?SoftID=2389
http://www.china-pub.com/computers/common/info.asp?id=17989

你去这个地方( http://www.hirain.com )看看,他们有生成VHDL代码的东西,而且是一个MTATLAB工具箱什么的,棉线目前好象支持XILINCS的芯片!

这两中语言我都会,但是没有听过将它们相互转换的.
因为两中语言没有什么相同的地方,MATLAB只要用在工程计算和计算方法设计上,VHDL是硬件描述语言,作用领域不同嘛!!

如果真的要所的话一定要的VHDL中重新写一个,而且你看VHDL中并没有这么多的数学函数,像你使用的INV,ROUND,和转置...这些都要自己做个包,重新实现.看来从我的角度看,目前你的问题主要是在VHDL语言编写程序上,而不是想它们直接的转化!!