是要一个正弦波表,你在FPGA里面生成一个正弦波表,有工具的,输入DA转换器位宽 他会知道出来一个正弦波表文件,你在quartus的rom生成包含这个文件,好像是mif文件。
那后就是读这个ROM,读出来的数据送到DA转换器上。DA转换器输出端并联个小电容。要不然是示波器放大看的不死纯粹的正弦波,而是阶梯的正弦波了
控制FPGA/CPLD 读完这个ROM表的数据,就是输出一个正弦波周期了。
读出的速度快慢就是周期了。,比如你5s读完这个ROM表 ,正弦波周期就是5s,频率就是0.2HZ了 ,1秒读完就是1Hz了。0.01秒读完,就是100Hz了。。。
比如你的正弦波表里面是有4096个数据的,你0.01秒读完这4096个数据,算算这个读表的频率是多少 ,每个数据是0.00000244140625秒,折合频率是409600
就是409.6K的频率去读这个ROM表。其他的一样。
你明白了吧?
一般是用DDS做的,频率可以连续可调的。
FPGA一般是分频时钟的,多是整数分频的, 连续新不好。
比如用40.96M的时钟不分读ROM表,输出频率是10K
2分频输出当然是5K