我想用FPGA+模拟量输出I/O的硬件配置,输出一个定频正弦波。计划采用的硬件是NI cRIO-9014+cRIO-9113+cRIO-9263。通过例子程序“Sine Generator (FPGA).vi”的学习,查看帮助文件对“Sine Wave Generator Express VI”的描述,发现其中一个参数phase increment控制正弦频率的,
具体描述如下: phase increment= [(frequency / FPGA clock rate) * 232] [ ] = rounded to the nearest integer .........................................(1)
我理解即: frequency =(phase increment×FPGA clock rate)/ 232 .........................................(2)
我做了一个VI,对生成频率的误差进行计算,发现计算出来的频率与预期频率最大误差为0.0046Hz。
(根据公式(1)分别计算从0.5Hz到100Hz,步长0.01Hz时的phase increment值,再将得到的phase increment值代入公式(2),
得到实际频率,两者之差即,我理解为系统生成频率的误差,是由于round产生的)。
很明显,决定频率误差大小的参数为FPGA clock rate。系统默认为40MHz,计算时将该值设为4MHz,最大频率误差为0.00046Hz。
我试着修改 top-level FPGA clocks,例如2.5MHz等,均未成功。
需要说明的是我在没有硬件的前提下进行的修改设置。想请教一下我对labview系统的生成波形频率误差的理解对不对?如何能够降低该误差?不知道该FPGA硬件top-level FPGA clocks能否设置成2.5MHz?我要求波形频率在0.5-100Hz之间。