NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

关于用FPGA做波形发生器

我想用 FPGA 9113 做一个波形发生器,频率范围0.5-100HZ.

在用 Sine Wave Generator (FPGA Module) 函数时,发现

该函数的频率定义是

phase increment = [(frequency / FPGA clock rate) * 232]

由于 phase increment  是整数,实际波形的频率与设定值有误差,当TOP LEVEL clock为40MHz。

我认为如果修改 TOP LEVEL clock为20MHz等 低于 40MHz时,频率误差将会减小。

在Sine Wave Generator 属性中 可以不使用TOP LEVEL clock ,随意设置FPGA clock rate值,但是在该函数的帮助文件中,提到“If the FPGA clock rate parameter does not match the top-level clock rate, the Code Generation Errors window returns an error when you compile. Use the Top-Level Clock FPGA Target Properties page to change the top-level clock rate”  所以 修改 TOP LEVEL clock 是最好的办法。

可是9113FPGA的属性页面中,提示不支持小于40MHz(我新建的5MHz时钟是灰色的,选不中)的频率。

请问有没有别的办法?谢谢

 

0 项奖励
1 条消息(共 3 条)
3,683 次查看

今天试了一下  Sine Wave Generator (FPGA Module) 函数 ,只能用 40MHz的 top level colock。

函数对话框显示,100Hz以内的最大频率误差在0.0046Hz以内,请问有没有更好的方法,使得生成正弦信号频率精度更高(误差0.002Hz以内)

我的设备是9012实时控制器+9113FPGA+9263AO

谢谢

0 项奖励
2 条消息(共 3 条)
3,642 次查看
你的公式里为什么有个×232?
0 项奖励
3 条消息(共 3 条)
3,589 次查看