一种FPGA正弦信号发生器的设计
- 格式:pdf
- 大小:1.80 MB
- 文档页数:4
} 编译成程序后 ,在 DOS命令下执行 : Romgen > Rom _data. m it文件 ,定制 lmp 2rom. 然后将组成正弦波信号 发生器的顶层文件 、底层文件与相关的库文件的硬件描述语言 ,分别输入到 M axp lusⅡ的编辑软件的输入框 内. 分别保存或另存这些 VHDL 文件 ,到准备好的本工程文件夹中相应的模块文件夹中. 将这些文件设置为 当前工程的条件下 ,然后对每个模块进行编译与仿真. 最后将底层文件夹中的内容分别复制到顶层文件夹 中. 输入顶层文件到编辑面板并保存到顶层文件夹中 ,将其设置为当前工程 ,并编译仿真 ,锁定管脚到目标器 件中与外围的 DAC0832,按钮等. 下载后就组成了正弦波信号发生器 ,然后用示波器观察波形. 图 2是顶层文 件的时序仿真图.
n
- 1 ×100%.
按上式计算 ,当取样点数为 n = 1 024点时 ,失真度约为 0. 260% ,在最高输出频率取样点数为 16点 ,量
化级数为 256时 ,失真度约为 5. 676% ,可以满足系统要求.
1. 2. 4 相位 /幅度变换
用时钟频率 fc 依次读取各个采样点 ,这些不同的量化数据作为 ROM 的地址 ,读出相应的 ROM 中的值 ,
第 2期
林 章 , 等 : 一种 FPGA 正弦信号发生器的设计
51
4. 1 结果分析
从表中可以看出 , 键入不同的频率字可以得到不同的频率的正弦波波形 , 频率分辨率 Δfm in
=
fc 2N
=
12 ×103 212
= 2.
92
kH z,频率步进约为
3
kHz,与理论值相符. 上限频率由于受到输出取样点数为
参考时钟 ,从而频率分辨率为 Δfm in
= 2N
fc
·分频比
[
3
]
.
1. 2. 3 DDS的失真度 THD DDS的失真度除受 D /A 转换器本身的噪声影响外与离散点数 n和 D /A 字长有着密切关系 ,设 q为均匀
量化间隔 ,则其近似数学关系为
π2
1 2
THD =
1 + q2 6
n
π sin
随着电子信息技术的发展 ,正弦信号广泛用于航空测控 、通信系统 、电子对抗 、电子测量 、科研等. 一个良 好的正弦信号源 ,要求其输出的基准正弦波信号幅值 、频率高度稳定 ,波形失真小 ,带负载能力强 ,频率幅值 可调 [1 ]. 直接数字频率合成技术 (简称 DDS)从相位概念出发 ,以奈奎斯特时域采样定理为基础 ,在时域中进 行频率合成. 它在相对带宽 、频率转换时间 、相位连续性 、正交输出 、高分辨率以及集成化等一系列性能指标 方面已远远超过了传统频率合成技术. 此外 , DDS易于单片集成 ,体积小 ,价格低 ,功耗小等特点. 而本系统正 是运用 DDS的这些特点并通过 VHDL 语言把各模块转换为硬件语言下载到 FPG中来实现正弦波的生成. 1 DD S系统 1. 1 系统基本原理
幅度 /Vp - p
0. 00 7. 120 7. 120 7. 120 7. 120 7. 120 7. 120 7. 120 7. 120 7. 120 7. 120 7. 120 7. 040 6. 960 6. 960 6. 880
频率字
1F 2F 3F 4F 5F 6F 7F 8F 9F AF BF CF DF EF FF
成程序后 ,在 DO S命令行下执行 . [ 2 ] (345)
3 仿真验证 图 2为时序仿真图 ,利用 FPGA Comp iler II进行设计综合时 ,先建立项目工程文件夹 ,模块文件夹. 之后
在 C语言编辑栏中输入
# include < xtdio. h. >
50
闽江学院学报
第 29卷
# inckude”math. h” m ain ( )
f/ kHz
89. 3 138. 8 186. 5 231. 4 284. 0 320. 5 367. 6 446. 4 480. 7 500. 0 568. 1 609. 7 641. 0 714. 2 757. 5
幅度 /Vp - p
5. 92 4. 96 4. 24 3. 68 3. 36 2. 88 2. 68 2. 24 2. 08 1. 92 1. 62 1. 60 1. 48 1. 34 1. 28
频率字
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
f/ kHz
0. 00 2. 94 5. 95 8. 62 11. 62 14. 28 17. 24 20. 83 23. 81 26. 59 29. 76 32. 05 35. 71 38. 06 41. 66 44. 64
≈ fou t (m ax)
2 5
fc [ 3 ] , 若
fc 采用
50 MHz,则最高输出频率约为
20 MHz.
1. 2. 2 DD S的频率分辨率 Δfm in 由于要求输出的信号频率范围较大 ,因此在 50 MHz时钟引入 FPGA 之后 ,可加入一个分频器 ,根据输出
信号的频率和精度要求 ,选择不同的分频次数将 50 MHz时钟频率降低 ,再作相位累加器和波形产生电路的
第22090卷8年第4月2期
闽江学院学报
JOURNAL OF M INJ IANG UN IVERSITY
Vol. 29 No. 2 Ap r. 2008
一种 FPGA正弦信号发生器的设计
林 章 , 杨盛国 , 王玉兰
(福建师范大学福清分校电子与信息工程系 , 福建 福清 350300)
摘要 : 介绍了基于编程逻辑器件 FPGA和直接数字频率合成 (DDS)技术构成的正弦波形发生器. 其主要模块有频
图 1为 DDS系统的基本原理框图 ,由地址发生加法器 、寄存器 、波形存储器 , D /A 转换和低通滤波器构 成 [ 2 ] (342) . 其核心是相位累加器 ,由一个 N 位字长的加法器和 N 位累加寄存器级联而成 , 加法器可对频率控 制字的二进制码进行累加运算 ,累加寄存器是典型的反馈电路 , 产生的累加结果的高 M 位作为 ROM 查找表 的取样地址值 ,而此波形存储器对应的是一张函数波形存储查询表 ,储存了一个周期的正弦波的一系列离散
收稿日期 : 2007 - 03 - 13 作者简介 : 林 章 (1967 - ) , 女 , 福建闽清人 ,福建师范大学福清分校电子与信息工程系高级实验师.
杨盛国 (1946 - ) , 男 , 湖北武汉人 , 福建师范大学福清分校电子与信息工程系高级工程师. 王玉兰 (1983 - ) , 女 , 福建莆田人 , 福建师范大学福清分校电子与信息工程系.
第 2期
林 章 , 等 : 一种 FPGA 正弦信号发生器的设计
49
的幅度编码值. 该幅度编码经 D /A 转换后得到对应的阶梯波 ,然后经 滤波器平滑后即可转换成所需要的 模拟正弦波形 ; 同时相位累加器在 基准时钟的作用下 ,进行线性相位 累加 ,当相位累加器加满量时就会 产生一次溢出 ,这样就完成了一个 周期 ,这个周期也就是 DDS信号的 一个频率周期. 1. 2 系统参数选择 1. 2. 1 DD S的输出频率 fout和带宽
率控制 、相位控制 、数模转换及正弦波生成等. 各模块均通过 VHDL语言编程在 FPGA上实现 ,经软件仿真和硬件测
试验证达到了设计要求.
关键词 : FPGA; 直接数字频率合成 ; VHDL; 仿真验证
中图分类号 : TP216
文献标识码 : A 文章编号 : 1009 - 7821 (2008) 02 - 0048 - 04
图 4 频率字为 FF时的波形 Fig. 4 W ave at frequency word FF
412 误差分析 由于 DDS产生的正弦波是以数字信号的形式存储在 ROM 中 ,通过地址累加 ,查找 ROM 输出正弦信号 ,
基于对数模的恢复 ,所以输出的模拟信号中必然会有杂散噪声. 其来源于 : 1)频率舍位引起的误差 :即在 FP2 GA中由于累加器的位数大于 ROM 的寻上位数 ,使得累加器输出寻址 ROM ,必定丢失位数 ,就会不可避免产 生频率截断误差 ; 2) D /A 器件转换的非理想特性引起的误差 :即差分 、积分的非线性 , D /A 转换过程的尖峰 电流转换速率受限产生的误差 [4 ] ; 3)镜像分量误差 :由于 DDS实际上是一个采样系统 ,因此采样频率对信号 频率的影响也是遵循 Nyquist定律 ,在相应的位置会出现镜像信号 ,产生镜像分量 [5 ]. 5 结语
图 2 时序仿真图 Fig. 2 Tim ing simulation
4 测试验证 不加分频器 ,取相位累加器 N = 12,参考时钟频率为 fc = 12 MHz,键入频率字 , 用示波器观察输出波形 ,
并将部分结果记入表 1中.
表 1 频率字与输出波形频率 、幅度对应表 Tab. 1 Frequency word and its corresponding frequency and amp litude of output wave
也就是正弦波的幅度 ,然后经过 DAC重构正弦波.
2 软件设计
系统采用硬件描述语言 VHDL 源程序按模块化方式进行设计. 分成一个 DDS顶层文件 , 32位加法器 、32
位寄存器 、8位加法器 、8位寄存器 、数模转换电路底层文件和 8位正弦波形数据文件 ,其中正弦波形数据文