vhdl 设计正弦波发生器

设计正弦波发生器,用VHDL语言描述,用QuartusII工具编译和综合,

基本功能:
(1 )模拟输出:由于FPGA上无D/A转换模块,因此设计中必须包含PWM发生模块,PWM输出后经过RC低通波电路转换为电压幅值正比于占空比的模拟电压。滤波电路需自行设计。
(2)可以通过按键设定波形的频率,频率可以显示在数码管上。
(3)按钮开关输入须消抖处理。

是要一个正弦波表,你在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
请采纳答案,支持我一下。
温馨提示:答案为网友推荐,仅供参考
相似回答