APP下载

基于FPGA的任意函数发生器设计与实现

2017-04-26王善斌曹帮琴

科技创新与应用 2017年9期

王善斌+++曹帮琴

摘 要:本设计采用ALTERA公司的EP4CE15F17C8利用DDS技术实现了基于FPGA的任意函数发生器。不仅拓展了函数发生器的功能,并且能产生高分辨率更复杂且高稳定度的波形,方便快捷,大大提高了開发效率。

关键词:函数发生器;DDS;FPGA

传统的函数信号发生器是以模拟电子技术为基础设计实现的,它不但电路构成复杂、体积较大、精度和稳定度都很差,而且仅能产生简单的几种波形,难以产生复杂的信号波形。基于FPGA的任意函数发生器将信号波形数据存放到FPGA片内高速ROM中,经过对其地址有序的改变,使得存储器中数值送往高速DAC中,产生相应的信号波形。只要改变FPGA内部ROM的查表数据就可以完成任意波形的输出。

1 系统的总体结构

系统的设计部分分为两大部分进行:硬件设计主要包括高速数模转化电路、7阶滤波、幅度放大电路,以及键盘控制电路和液晶接口电路。软件部分主要包括基于Verilog HDL语言控制键盘液晶,并将键盘输入的数据进行处理后得到频率控制字,再经由相位累加器,信号波形ROM存储表,幅值变换等模块生成正弦波、方波、三角波以及锯齿波等信号波形。系统框图如图1所示。

本系统通过软硬件结合实现了动态的人机对话,硬件上实现了以下功能:(1)0Hz~50MHz的波形信号;(2)0~20V的电压范围;(3)正弦波、方波、锯齿波和三角波的波形输出。

软件实现以下功能:(1)键盘扫描处理,对4位键盘扫描,分析出按键值,进行数据处理并根据键值驱动液晶显示,分析判断输出波形;(2)对键盘输入信号分析处理后进行波形和频率调整,产生正弦波、锯齿波、方波和三角波,经过DAC和LPF输出。

2 系统软件设计流程与仿真综合

系统整体设计流程图,如图2所示。

Quartus软件提供方便的系统和各模块的RTL级框图查看,该系统系统整体模块如图3所示,从顶层看上去系统主要包括:键盘模块(波形选择和频率控制)、频率控制模块、DDS实现模块等模块。

3 DDS模块设计

DDS模块是该系统最为关键的模块,该模块主要包括相位累加器模块和各个波形的ROM存储,该系统在系统时钟的控制下,在相位累加器中完成信号相位的累加输出,得到相应地址信息,进而查询ROM表中对应波形幅值信息,在经过DAC芯片AD9708完成模数信号的转化,得到相应信号的输出。本系统设计,采用的是32位字长的相位累加器,目的是为了的得到低步进值高稳定度的波形输出,由于硬件资源的限制,ROM的地址长度为9bit,所以相位累加器得到的32bit的地址信息不能直接作为查询地址使用,而是应该截断处理。本系统截取32bit信息的高9位即23~32位作为地址信息完成后续的查表工作。本系统设计采用的是地址长度为9bit,数据长度为8bit的ROM存储器,为得到四种(正弦波、三角波、方波和锯齿波)波形信号,设计四个相应的ROM存储空间分别对该不同波形幅值存储。该模块的RTL级框图信息,如图4所示。

经过实验验证得到了高分辨率高稳定度相位可控的信号,在示波器上显示如图5所示。

参考文献

[1]曹郑蛟,滕召胜,李华忠.基于FPGA的DDS信号发生器设计[J].计算机测量与控制,2011(12).

[2]周登荣.任意波形发生器的电路设计与实现[D].电子科技大学,2007.