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

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

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

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
    下载

相关推荐