名称:DDS正弦波发生器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
DDS正弦波发生器
设计要求
1.了解DDS的工作原理;
2.使用 MATLAB生成mif文件;
3.掌握 ROM IP核的配置方法,知道IP核里每个参数的作用;
4.Quartus编写 verilog代码, modelsim仿真实现频率可调、相位可调正弦波的输出。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
IP核设置
Mif文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
上图显示的为频率调整时波形
上图显示的为相位调整时波形
相位累加器模块(频率调整)
相位调整
Sin波ROM模块
部分代码展示:
module?DDS( input?clk,//时钟 input?[9:0]?freq_data,//频率控制字10bit input?[9:0]?phase_data,//相位控制字10bit output?[9:0]?sin_wave//输出波形 ); wire?[9:0]??address; wire?[9:0]?freq_out; wire?[9:0]?q;//输出波形 //sin存储Rom表 sin_ROM?i_sin_ROM?( .address(address),//查找表地址 .clock(clk),//时钟 .q(q)//输出波形 ); //相位累加器 Freq_sum?i_Freq_sum( .?clk(clk), .?freq_data(freq_data),//频率控制字32bit .?freq_out(freq_out)//累加器输出 ); //初相位调整 phase_crtl?i_phase_crtl( .?clk(clk), .?freq_out(freq_out),//相位累加器输出 .?phase_data(phase_data),////相位控制字10bit .?address(address)////查找表地址 ); assign?sin_wave=q;//输出最终波形 endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1265
阅读全文
385