基于DDS的基本信号发生器_第1页
基于DDS的基本信号发生器_第2页
基于DDS的基本信号发生器_第3页
基于DDS的基本信号发生器_第4页
基于DDS的基本信号发生器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、设计目标:1、 利用FPGA完成DDS波形产生的核心电路;2、 输出信号波形:正弦、方波、三角波波;3、 输出波形的频率48828.15Hz4882815Hz;4、 完成波形的仿真测试;二、设计思路采用直接数字合成器(DDS),可用硬件或软件实现。即用累加器按频率要求对相应的相位增量进行累加,再以累加相位值作为地址码,取存放于ROM中的波形数据,经D/A转换,滤波即得到所需波形。以EDA技术为基础,用FPGA实现DDS模型的设计。电路的规模大小和总线宽度可以由设计者根据自己的需要而设定可将波形数据存入FPGA的ROM中。同时外部控制逻辑单元也可在FPGA中实现。方法简单,易于程控,便于集成

2、。用该方法设计产生的信号频率范围广,频率稳定度高,精度高,频率转换速度快。在本设计中,用FPGA完成DDS核心电路模块设计,以quartus II软件为开发环境,使用Verilog HDL硬件描述语言完成硬件电路的设计,采用分块设计的思想,整个DDS模块框图如下:底层模块控制模块正弦信号数据模块方波型号数据模块三角波信号数据模块波形选择模块图 1 系统框图系统RTL电路图如下:图 2 DDS模块RTL视图各模块功能及设计思路:1、控制模块控制模块是从外部接收,实现DDS系统的控制功能,接收外部时钟信号、复位信号、10位频率控制字信号、10相位控制字信号,两位的波形选择字信号。控制模块通过这些信

3、号控制下层模块各种功能的实现。顶层模块中以一个10位的累加器产生地址,实现对对底层模块正弦、方波、三角ROM模块的的访问。2、正弦信号模块功能该模块式调用FPGA内部的M4K存储器,以宏模块定制一个ROM存储块,存储正弦信号数据。其中,通过MATLAB软件编程产生,产生的数据生成以个后缀为.Hex的文件,用来初始化ROM模块。正弦信号模块接收来自控制模块的地址信号,访问内部的ROM模块,并将正弦信号波形数据输出到波形选择模块。3、方波信号模块该模块式调用FPGA内部的M4K存储器,以宏模块定制一个ROM存储块,存储方波信号数据。其中,通过MATLAB软件编程产生,产生的数据生成以个后缀为.He

4、x的文件,用来初始化ROM模块。方波信号模块接收来自控制模块的地址信号,访问内部的ROM模块,并将方波信号波形数据输出到波形选择模块。4、三角波信号模块该模块式调用FPGA内部的M4K存储器,以宏模块定制一个ROM存储块,存储三角信号数据。其中,通过MATLAB软件编程产生,产生的数据生成以个后缀为.Hex的文件,用来初始化ROM模块。三角信号模块接收来自控制模块的地址信号,访问内部的ROM模块,并将三角信号波形数据输出到波形选择模块。5、波形选择模块波形选择模块主要多路选择器构成,在接收到来自控制模块的复位信号,波形控制字和正弦、方波、三角模块传来的数据时,通过多路选择器的控制,输出我们想要

5、的波形。6、顶层模块顶层模块将个顶层模块封装好,做成DDS的基本函数信号发生 器。三、源代码清单:顶层模块/*顶层模块*模块功能:按设计要求输入10位频率控制字,10位的相位控制字,2位的波形控制字输出10位并行的波形幅度*/module DDS(rst,clk,con_f,con_p,sec_w,out_addr,wave_data);input rst, /复位信号 clk, /时钟信号con_f, /频率控制字输入端口con_p, /相位控制字输入端口sec_w; /波形选择输入端口 output wave_data; / 波形数据输出output out_addr; /测试管脚,观测地

6、址变化wire 9:0 con_f;wire 9:0 con_p;wire 1:0 sec_w;wire 9:0 out_addr;wire 9:0 link_addr; wire 9:0 link_sin;wire 9:0 link_tri;wire 9:0 link_squ;wire 9:0 wave_data;assign out_addr=link_addr;control U1 ( .clk(clk), .rst(rst),.con_f(con_f),.con_p(con_p),.addr(link_addr);sin U2( .clk(clk), .addr(link_addr),

7、.sin_data(link_sin) );triangular U3( .clk(clk), .addr(link_addr), .tri_data(link_tri) );square U4 ( .clk(clk),.addr(link_addr),.squ_data(link_squ) );sec_wave U5 ( .clk(clk), .sec_w(sec_w), .wsin(link_sin), .wtri(link_tri), .wsqu(link_squ), .wave_data(wave_data) );Endmodule控制模块/*control.vstart*按设计要求,

8、输入10位的频率控制字,10位的相位控制字,并输出10位二进制的信号幅值数据以累加器产生产生ROM访问地址,频率控制字、相位控制字和累加器输出数据之和形成最终10位地址数据,用来访问ROM*/module control(clk,rst,con_f,con_p,addr);input clk;input rst; /复位信号input con_f; /频率控制字输入端口input con_p; /相位控制字输入端口output addr; /ROM访问地址输出端口wire 9:0 con_f;wire 9:0 con_p;reg 9:0 addr;reg 9:0 frebuf; /频率控制字数

9、据缓存reg 9:0 phebuf; /相位控制字数据缓存reg 9:0 count; /累加器数据存储always(posedge clk) /将频率控制字,相位控制字存进缓存器中 begin if(rst) begin frebuf=0; phebuf=0; end else begin frebuf=con_f; phebuf=con_p;end end/-通过累加器产生ROM访问地址,并实现频率,相位的控制-always(posedge clk) begin if(rst) begin count=0; addr=0; endelse begin count=count+frebuf;

10、 addr=count+phebuf; end endendmodule正弦波形数据模块:module sin(clk,addr,sin_data);input wireclk;input wire9:0 addr;output wire9:0 sin_data;sin_datab2v_inst(.clock(clk),.address(addr),.q(sin_data);endmodule方波波形数据模块:module square(clk,addr,squ_data);input wireclk;input wire9:0 addr;output wire9:0 squ_data;squ

11、_datab2v_inst(.clock(clk),.address(addr),.q(squ_data);Endmodule三角波波形数据模块:module triangular(clk,addr,tri_data);input wireclk;input wire9:0 addr;output wire9:0 tri_data;tri_datab2v_inst(.clock(clk),.address(addr),.q(tri_data);endmodule波形选择模块:/*波形选择模块*按照波形控制字,对波形输出进行选择,输出正弦波,方波和三角*/module sec_wave(clk,

12、rst,sec_w,wsin,wtri,wsqu,wave_data);input clk, /时钟信号 rst, /复位信号sec_w, /波形选择输入端口 wsin, /正弦波幅度数据 wtri, /三角波幅度数据wsqu; /方波波幅度数据output wave_data; /波形幅值数据输出端口wire 1:0 sec_w;wire 9:0 wsin;wire 9:0 wtri;wire 9:0 wsqu;wire 9:0 wave_data;reg 9:0 secbuf; /波形数据缓存assign wave_data=secbuf; /将波形数据送到输出端口/-通过三选一多选择路器实现波形的选择-always(posedge clk) begin if(rst) beg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论