基于FPGA数字移相信号发生器设计
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
基于FPGA 数字移相信号发生器设计
付莉,潘明
(桂林电子科技大学 计算机与控制学院 广西 桂林 541004)
摘 要:根据直接数字合成器的基本原理,给出了基于FPGA 的直接数字合成器的设计与实现,利用FPGA 有效地扩展了输出波形的频率范围,实现了数字移相信号发生器。该信号发生器主要采用了直接数字合成器、直接存储器存取、数字移相和数字调幅等技术,对传统的模拟移相不能实现任意波形的移相的缺点方便进行了改进和优化。
关键词:直接数字合成器;FPGA;频率范围;移相信号发生器
中图分类号:TP332.3 文献标识码:B
Design of Digital Phase Shift Signal Generator Based on FPGA
Fu Li,Pan Ming
(School of Computer Science and Control, Guilin University of Electronic Technology, Guilin 541004 , China)
Abstract: According to the basic principles of Direct Digital Synthesizer, this article put forward Design and Implementation of the Direct Digital Synthesizer based on FPGA, and extend the output waveform of the frequency range with FPGA effectively. The signal generator used mainly technologies of direct digital synthesizer, a direct memory access, digital phase-shifting and digital AM. It improve and optimise the traditional analog phase-shifting arbitrary waveforms which can not be realized the shortcomings of the phase-shifting facilitate.
Key word:Direct Digital Synthesizer; Frequency range; Digital Phase Shift Signal Generator
0 引言
DDS 即Direct Digital Synthesizer,中文名称是直接数字合成器,是一种新型的频率合成技术,具有较高的频率分辨率,可以实现快速的频率切换,并且在改变时能够保持相位连续,很容易实现频率、相位和幅度的数控调制。在现代电子系统及设备的频率源设计中,尤其是在通信领域,其应用越来越广泛。
由于传统的模拟移相(如:阻容移相,变压器移相等) 有许多不足,而且,传统的模拟移相不能实现任意波形的移相,这主要是因为传统的模拟移相由移相电路的幅相特性所决定,对于方波、三角波、锯齿波等非正弦信号各次谐波的相移、幅值衰减不一致,从而导致输出波形发生畸变。随着现代电子技术的发展,特别是可编程技术的发展而兴起的数字移相技术却很好的解决了这一问题。本文采用模块化的方法和VHDL (VHSIC Hardware Description Language)语言,介绍了一种基于现场可编程门阵列(Field Programmable Gate Array, 简称FPGA )技术用VHDL 语言实现的数字移相信号发生器,并给出了仿真综合结果。
1直接数字合成器原理
DDS是利用相位累加原理直接合成所需波形的一种频率合成技术[1],典型的DDS模型由相位累加器、移相加法器、波形存储器ROM查找表 (LUT )、D/A转换器 (DAC )以及低通滤波器(LPF )构成,相位累加器、移相加法器、波形存储器ROM查找表(LUT)DDS结构中的数字部分。基本原理图如图1所示[2]。
其基本工作原理是:相位累加器在参考时钟f osc 的控制下以步长2n 做累加,输出的N 位二进制码中的高L 位与K 位相位控制字相加后,取其高L 位作为波形存储器ROM LUT 的地址,ROM LUT寻址输出的D 位幅度码s(t)经D/A转换器变成阶梯状波形s(t),再经过低通滤波器平滑后就可得到合成的信号波形输出。
其中的频率控制字位宽和相位控制字位宽K, 可以根据需要而选择对应相位累加器和移相加法器输入的中间某几位。输出的合成信号波形的形状取决于ROM LUT中存储的波形幅度码,因此采用DDS 技术可以产生任意信号波形。
K 为频率控制字;N 为相位累加器位数。当输入时钟为f clk 时,输出信号的频率为
f clk
2N
f 当K=1时,得到DDS 的最小分辨率为∆f =clk 。 2N f out =k ×
http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
图1. DDS基本结构图
其中,DDS 中的波形存储器模块用 Altera 的Cyclone 系列中的RAM 实现,取N =8,D =8,波形数据运用高级语言c 编制,相应数据保存于FPGA 的RAM 当中。在设计D/A转换电路中,该单元选用GW48EDA 系统ADDA 板上的10位D/A5651输出波形,随时将FPGA 送来的波形数据转换成相应模拟量输出。 2直接数字合成器的系统设计
一个完整的FPGA 设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真和下板调试等主要步骤[2]。
其中电路设计与输入是根据设计的方法将所设计的功能描述给EDA 软件。常用的设计输入方法由硬件描述语言(HDL )和原理图设计输入方法。原理图设计输入法在早期应用得比较广泛。这种方法的优点是直观、便于理解、元件库资源丰富,但在大型设计中,这种方法不利于模块建设与重用。FPGA 的大规模、高集成度、高可靠性、高速、可反复配置、功能强大的智能开发工具等众多优点,使其逐步成为复杂数字硬件电路设计的理想首选。
根据原理框图,在Quartus II中分别建立DDS 的顶层文件 DDS_VHDL.vhd和底层模块文件,底层模块包括32位加法模块ADDER32B.vhd 、10位加法模块ADDER10B.vhd 、32位寄存器模块REG32B.vhd 、RO M 查找表模块data_rom.vhd、10位正弦波初始化数据模块sin_rom.mif。其中图1中相位累加器和移相加法器的数据位宽N 、L 分别取32位和10位, 频率控制字位宽M 取8位 (与相位累加器另一输入端的位27~位20对应),相位控制字位宽 K 取8位 (与移相加法器另一输入端的位9~位2对应)。
相位累加器由加法器与寄存器级联构成。累加器将加法器在上一个时钟作用后所产生的相位数据反馈到加法器的输入端;使加法器在下一个时钟作用下继续与频率控制字(K)进行相加,实现相位累加,当相位累加器累加结果等于或大于2的n 位时就会产生一次溢出,回到初始状态,完成一个周期性的波形输出。本设计累加器用VHDL 语言编程。
根据前面建立的32位加法模块ADDER32B.vhd 、32位寄存器模块REG32B.vhd ,利用Quartus II菜单命令 [File]︱[Create/Update],分别将其转换为模块符号文件(*.bsf) 。在建立的顶层文件DDS_BLOCK.bdf中,分别调用上述模块符号和LPM_ROM,手动连接。
在Quartus II中,建立原理图文件DDS .bdf ,有四个主要器件[3]:32位相位累加器ADDER32、32位寄存器REG32B 、波形数据ROM —data_rom、锁相环PLL20M 。其中放置了一个周期为1024个点的正弦信号波形数据,精度10位,所以输出10位DAC[9 ..0]与实验系统的高速DAC 相接。锁相环PLL20M 的输入是20MHz ,输出是75MHz ,FWORD 是频率控制输入,为了实验方便,选择输入8位,加法器的32位的其他位挂接在固定电平上。输出DAC_CLK作为外部DAC 工作时钟。分别调用了Quartus II中的LPM_ROM等LBI 模块。其中,锁相环PLL20M 和data_rom都可以利用Block symbol file编程,然后仿真,编译。将ADDER32B 和REG32生成的图形组合成DDS 原理图。整体仿真、编译,绘制波形图。
根据DDS 原理,合成信号的频率就是由频率控制字控制的[3],模拟信号经AD 转换后,变成数字信号D 。转换速度和数字信号D 的字长(转换位数)由AD 转换器件决定。当模拟信号经过AD 转换后,就会输出与信号幅度对应的数字信号,该信号与载波控制字相加,就可以获得一个与AD 转换值对应的频率控制字,从而获得一个受模拟信号控制的变化的频率,即完成调频的过程。
3数字移相信号发生器设计
3.1 基本DDS 仿真及调试
利用DDS 原理,设计DDS 电路图,如图2
所示。
图2. DDS.vhd顶层原理图
在data_rom设计中用到了定制初始化数据文件,用C++对其进行编程,在DOS 命令下执行命令:\>sin_rom.exe>sin.mif,还要加上.mif 文件的头部说明即可。
头部说明:
width=10;
depth=1024;
address_radix=dec;
data_radix=dec;
content begin
……end;
为了更视图化观察、分析波形,选择用逻辑分析仪进行波形仿真。其逻辑分析图形如下:
图3.DDS.stp 逻辑分析仪图像
3.2 正交信号发生器仿真及调试
在DDS 发生器基础上,将其修改成一个频率可数控的正交信号发生器,即使得电路输出两路信号,且相互正交。在结构图中,将一个data_rom改写成两个,同时用C++进行编程,编写一个周期为1024个点的余弦信号波形数据,同样转换成(*.mif)文件[4]。然后进行仿真、编译、调试,原理图、仿真波形图及逻辑分析图如下:
可见,通过设定相位累加器位数、频率控制字和系统时钟,就可以实现产生任一频率的信号输出,改变ROM 表中的存储不同的波形数据,利用DDS 方法可以实现输出不同的波形信号。
3.3 数字移相信号发生器的设计
在相位中可以进行无相位和有相位控制。此设计的是有相位的图形仿真,利用EDA 技术和FPGA 实现直接数字合成器的设计。相位累加器是DDS 的核心,累加器在工程实践上一般采用数字全加器和数字寄存器的组和来完成相位累加过程。
在基本DDS 基础上加以修改设计了移相信号发生器,它是基于DDS 模型的设计[5]。它在上述的设计
的基础上又增加了相位控制字的输入,电路模型图如图:
图4. 数字移相信号发生器电路模型图
FWORD 是8位频率控制字,控制输出信号的频;PWORD 是8位相移控制字,控制输出信号的相移
量;ADDER32和ADDER10B 分别是为32位和10位加法器;sin_rom是存放正弦波数据的ROM ,10位数据线,10位地址线,其中的数据文件是sin_rom.mif,可以用是VC++生成;REG32B 和REG10B 分别是32位和10位寄存器;POU T 和FOUT 分别为10位输出,可以分别与高速D/A相连接,它们分别输出参考
信号和相移正弦信号。仿真调试后,同样在逻辑分析仪中观察波形变化。如图所示:
图5. 数字移相信号发生器逻辑分析仿真图
同时,也可以通过(*.vhd)文件编写程序,同样实现其功能。
3.4 幅度控制电路实现
在实现数字移相信号发生器后,又对程序进行设计,增加幅度控制电路,使输出的波形不仅在频率控制字和相移控制字变化时变化,而且在所需要求的情况下增大输出幅度的变化。
结构设计中,用二选四选择器74139进行片选信号,当选择“00”、“01”时进行相移控制,当选择“10”时,选择增加幅度的控制。“11”时接入高电平,通过这种方式来片选实验中所需的要求。可以在输出部分增加一个二选一MUX21选择器,对输出信号进行选择性输出。
3.5 扫频功能实现
为了达到波形发生器的扫频功能,必须再次将相移动发生器进行修改,最终实现DDS 数字移相信号发生器的扫频功能,扫速可数控,点频扫频可控性。原理图设计增加了一个波形数据—FWORD_ROM,同样用C++编写程序,可见图转换成(*.mif)文件。最后在SignalTap II Logic Analyzer中测试输出波形。 4 结束语
本文通过对DDS 结构的设计方案,利用它的优点和缺点,设计了移相信号发生器,根据实际需要,在FPGA 方法下进行系统的仿真,调试,实现了多种波形发生器、幅度控制和扫频功能,从波形仿真图中可以看出仿真效果较好,可以满足各类实验及应用的需要。使它在现代电子系统及设备的频率源设计中,尤其是在通信领域,应用越来越广泛。
参考文献:
[1] 黄旺华,李振坤,刘怡俊,黄静怡. 基于FPGA 流水线RISC 微处理器的设计[J]. 微计算机信息. 2008, 14
[2] 潘松,黄继业. EDA技术与VHDL[M]. 清华大学出版社. 2007, 01.
[3] 彭建亮,朱凡. 基于单片机和CPLD 的数字式移相信号发生器的设计[J]. 仪器仪表用户. 2005, 03
[4] 谢 亮.基于FPGA 的DDS 实现的几种方式[J] . 科技广场. 2006, 08.
[5] 邓延安.基于FPGA 的数字合成信号发生器[D]. 合肥工业大学,2007.
作者简介:付莉(1985-)女,吉林人,汉族,硕士研究生,研究方向:汽车电子技术、嵌入式系统设计;潘明(1957-),男,广西人,汉族,副教授,硕士导师,研究方向:汽车电子技术、嵌入式系统设计。
Biography: Fu Li, Female (1985- ), Born in Jilin province, the Han nationality, Master, Main research field: Automotive Electronic Technology、Embedded Systems Design; PAN Ming, Male (1957- ), Born in Guangxi province, the Han nationality, associate professor, master’ tutor, Main research field: Automotive Electronic Technology 、Embedded Systems Design.
注:所投栏目:★控制系统
稿件ID 号:[***********]
本单位图书馆已经订阅本刊