• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于DDS和PLL组合的波形发生器Verilog代码Quartus DE1-SoC板子

06/20 14:31
685
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2401041111032D.doc

共1个文件

名称:基于DDS和PLL组合的波形发生器Verilog代码Quartus? DE1-SoC板子

软件:Quartus

语言:Verilog

代码功能:基于DDS和PLL组合的波形发生器:利用DDS和PLL(锁相环,调IP核)实现输出频率在一定范围内连续可调的信号发生器

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在DE1-SoC板子验证,DE1-SoC板子如下,其他开发板可以修改管脚适配:

DE1-SoC板子.jpg

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

整体仿真图

PLL模块

频率控制模块

正弦波ROM

相位累加器模块

部分代码展示:

module?DDS(
input?clk,//时钟50M
input?rst_n,//复位
input?key0,//频率增加
input?key1,//频率减小
output?dac_clk,//DA时钟
output?[7:0]?sin_wave//输出波形
);
wire?clk_10M;
wire?[9:0]??address;
wire?[9:0]?q;//输出波形
assign?dac_clk=clk_10M;
wire?[9:0]?freq_data;//频率控制字10bit
//PLL_ip?50M->10M
pll_ippll_ip_inst?(
.inclk0?(?clk?),//输入50M
.c0?(?clk_10M?)//输出10M
);
//频率控制模块
Freq_ctrl?i_Freq_ctrl(
.?clk(clk_10M),
.?rst_n(rst_n),//复位
.?key0(key0),//频率增加
.?key1(key1),//频率减小
.?freq_data(freq_data)//频率控制字9bit
);
//sin存储Rom表
sin_ROM?i_sin_ROM?(
.address(address),//查找表地址
.clock(clk_10M),//时钟
.q(q)//输出波形
);
//相位累加器
Freq_sum?i_Freq_sum(
.?clk(clk_10M),
.?rst_n(rst_n),
.?freq_data(freq_data),//频率控制字32bit
.?freq_out(address)//累加器输出
);
assign?sin_wave=q[9:2];//输出最终波形
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=488

  • 2-2401041111032D.doc
    下载

相关推荐