在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5658|回复: 13

[求助] 简单的matlab代码转换,不胜感激!!!

[复制链接]
发表于 2015-9-7 05:21:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位大神,我是FPGA新手。导师最近给我分配任务让我把以下很简单的matlab代码用verilog语言在quartus里描述出来,可是我真的是没有丝毫头绪,不知道如何下手,心里非常着急。。。请各位大神帮忙转成verilog语言,这样我就有了一个实例,之后就可以按照这个实例学习研究了,多谢!!!不胜感激!!!

clear Phmag;
clear Pang;
delT=1/(60*48);
sample=0:47;
f=60;
Ref1=sin(2*pi*f*delT*sample);
Ref2=cos(2*pi*f*delT*sample);
A=[Vmachine Imachine Vinfbus Iinfbus Pmachine];
data1=A(:,1);
for count=1:length(data1)-length(sample)
    Sumrealx=0;
    Sumrealy=0;
    for count1=1:length(sample)
    Sumrealx=Sumrealx+data1(count+count1-1)*Ref1(count1);
    Sumrealy=Sumrealy+data1(count+count1-1)*Ref2(count1);
    end
    Sumrealx=Sumrealx*2/length(sample);
    Sumrealy=Sumrealy*2/length(sample);
    Phmag(count)=sqrt(Sumrealx*Sumrealx+Sumrealy*Sumrealy);
    Pang(count)=atan2(Sumrealy,Sumrealx)*180/pi;
end
发表于 2015-9-7 09:37:41 | 显示全部楼层
回复 1# Lucky22


   你还是先把这个matlab代码的功能搞清楚再慢慢去转成verilog吧
发表于 2015-9-7 19:53:05 | 显示全部楼层
回复 1# Lucky22


   这里有几个难点。1. 用到了sin/cos/atan/sqrt运算,这一点在fpga里面是很难的,你可以去查看altera的手册,有没有现成的IP。
2. 既然有这些运算,那么想必是有带符号运算,而且有乘除运算。这些都是需要认真考虑的,乘法器和除法器的IP altera里面是有的。
3. 楼上的观点是正确的,你一定要弄清楚这段matlab的功能。别看matlab写起来就几行,你认为简单。你这段翻译成altera的verilog描述,代码量可能不小啊。因为我也不确定你这段在做什么,所以无法估计具体的工作量。
发表于 2015-9-7 22:31:05 | 显示全部楼层
本帖最后由 liuguangxi 于 2015-9-7 22:33 编辑

回复 1# Lucky22

单纯从matlab代码来看,sin/cos以及幅值、相角都可以使用CORDIC算法来实现。
剩下的就是加法,乘法运算。
不过变量定点化参数这块还是需要在完全理解算法的基础上进行全面仿真才能确定。
应该没有想象的那么复杂。
发表于 2015-9-7 23:36:28 | 显示全部楼层
see see
 楼主| 发表于 2015-9-8 02:14:02 | 显示全部楼层
回复 2# harry_hust

谢谢!这段代码是对读入的一组数据的傅立叶变换。但就是不知道怎样转化成Verilog...Thanks~
 楼主| 发表于 2015-9-8 02:19:27 | 显示全部楼层
回复 3# acgoal


   谢谢!这段代码是对读入的一组数据的傅立叶变换。我看了Quartus里面有IP Catalog, 里面有sin, cos, sqrt, 之類的,不知道是不是你说的IP core?還有一個問題,verilog裡面乘除法不能直接用乘除號表示吗?非常感谢!!
 楼主| 发表于 2015-9-8 02:26:00 | 显示全部楼层
回复 4# liuguangxi


   谢谢!你是說不用IP core, 只用cordic算法就可以解決這裡的問題是嗎?還有,Verilog乘法的話可以直接用乘號進行運算嗎?感謝!!
 楼主| 发表于 2015-9-8 02:27:16 | 显示全部楼层
回复 5# 999


   非常感謝你的回复,如果有任何想法一定要指導我喲!謝謝!
发表于 2015-9-8 07:28:19 | 显示全部楼层
回复 7# Lucky22


   能找到对应的ipcore就基本上能满足要求了,乘除法也建议最好用ipcore吧。verilog是支持,可未必能很好的通过综合和优化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-6 05:10 , Processed in 0.027094 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表