使用DSP_builder设计的DDS.doc

上传人:99****p 文档编号:1681988 上传时间:2019-03-11 格式:DOC 页数:4 大小:24.50KB
下载 相关 举报
使用DSP_builder设计的DDS.doc_第1页
第1页 / 共4页
使用DSP_builder设计的DDS.doc_第2页
第2页 / 共4页
使用DSP_builder设计的DDS.doc_第3页
第3页 / 共4页
使用DSP_builder设计的DDS.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、使用 DSP_builder 设计的 DDS摘 要:随着电子设计和通信测试的飞速发展,一些具有特定频率、特殊规律的信号在设计和测试过程中不可或缺,而市场上出售的信号发生器往往由于各种因素不能满足设计要求,使用 FPGA 器件设计的信号发生器可以胜任不同要求的任意信号发生器。 Altera DSP_builder 是一款基于 Matlab 的系统级设计工具,依赖于Matlab/Simulink 进行图形化系统设计和功能仿真,其最大特点在于可以通过 signalCompiler 直接将设计生成的模型文件(.mdl)转换成硬件描述语言 VHDL,进而在 QuartusII 等软件上做更复杂精确地仿真

2、,并生成.sof 文件下载到芯片上使用。开发过程不涉及任何编程,图形化设计界面一目了然,是一种方便快捷的设计方式。 关键词:FPGA;DSP_builder;DDS;SignalCompile 1 DDS 设计 1.1 基本原理 直接数字频率合成(Direct Digital Frequency Synthesis ,简称DDS)是以采样定理为基本原理,根据相位间隔对正弦信号进行取样、量化、编码,然后储存在 EEPROM 中构成一个正弦查询表,通过查表法产生波形。本设计基于 DDS 的基本原理,在时钟脉冲 fc 的控制下,对输入频率控制字 K 进行累加,当累加满量时产生溢出。相位累加器的输出对

3、应于该合成周期信号的相位,并且这个相位是在 02 范围内周期性的变化。相位累加器位数为 N,对应于 2 的相位, 最大输出为 2N-1,累加一次就输出一个相应的相位码,将这个相位码作为查找表地址,通过查表得到正弦信号的幅度输出,然后经高速 D/A 转换成模拟量并通过低通滤波器滤除不需要的取样分量,输出频谱纯净的正弦波信号。 1.2 系统设计 1.2.1 系统总体设计 下图为在 Matlab/DSP_builder11.0 平台建立 DDS 的 Simulink 模型:系统模型图 系统的三个输入分别任频率控制字输入 Freqword、相位控制字Phaseword、信号输入控制模块 input。I

4、nput 通过乘法器 product 模块控制信号输出,相位累加器模块由 deiay 模块、Parallel Adder Subtractor 模块和 Phaseword1 模块组成,相位调制模块由 Parallel Adder Subtractor1 模块和 Bus Conversion 组成,其中加法器使用Pipeline,内部包含寄存器,最后由 DDSout 输出波形。 把输出的 8 位数字信号接入高速 DA 转换模块,就可以用示波器观察输出波形。 1.2.2 正弦查找表模块设计 正弦查找表有多种设计方式,本设计采用调用 Altera DSP_builder元件库中的 LUT 模块实现,

5、取相位调制高 6 位作为查找表地址。正弦查找表部分还可以调用 ROM 模块实现,在使用 ROM 模块时,需要先编写查找表.mif 或.hex 文件,然后在 ROM 设置中指定文件位置即可。 以下是 Matlab 生成正弦查找表的代码: width=8; %数据宽度 8 位; depth=2width; N=0:1:depth-1; s=sin(pi*N/depth) ; %计算 0pi/2 的 Sin 值; fidc=fopen(dds1.mif,wt) ; %以“wt“的形式打开,n 为换行 % 写入 dds.mif % fprintf(fidc,width=%d;n,width) ; fp

6、rintf(fidc,depth=%d;n,depth) ; fprintf(fidc,address_radix=uns;n) ; fprintf(fidc,data_radix = uns;n) ; fprintf(fidc,content beginn) ; for(x=1:depth) ; fprintf(fidc,%d:%d;n,x-1, round( (depth/2-1)*sin(pi*(x-1)/(depth/2) ) + depth/2) ) ; end fprintf(fidc,end;) ; fclose(fidc) ; 2 系统仿真 设置相位控制字 0,频率控制字 90

7、00000,信号输入控制 125,用Matlab Sinulink 对电路进行系统级功能仿真,观察到系统输出波形如下:3 硬件实现 双击原理图中的 SignalCompiler 工具,在弹出对话框中设置参数,点击 Compile,DSP_builder 将自动调用 QuartusII 进行编译。过程中会自动创建 QuartusII 工程并综合适配,生成 QuartusII 能识别的 VHDL 源程序。在 QuartusII 中打开工程,编译通过,分配管脚。生成的.sof 文件可下载到 FPGA 芯片,将输出的数字信号接入高速 DA 转换模块就可以观察到输出波形。 4 结束语 在本设计中,由于设计信号发生器的全部基本组件模块都已经存在,我们仅仅需要逐一连接并设置好参数即可,简单直观的实现了一个较为复杂的电子系统。在更为复杂的设计中,还可以通过 SubsystemBuilder调用编写好的 VHDL 源程序。SignalCompile 工具直接把设计的.mdl 文件转换为 VHDL 语言,从而使设计过程不涉及编程,操作更简单,过程更直观,更容易查找修正设计中的错误。使用 DSP_builder 的设计极大简化开发过程,缩短设计周期,提高开发效率,值得我们在开发过程中加以利用。 作者简介 王志强(1991-) ,男,湖北省宜昌市,职称:学生,学历:本科,研究方向:电子信息工程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。