APP下载

基于Xilinx FPGA的(组合)波形发生器的实现

2016-05-14周钧陈林辉

中国科技纵横 2016年6期

周钧 陈林辉

【摘 要】本设计是将现场可编程逻辑器件FPGA 与DDS 技术相结合,以Xilinx的FPGA Basys3开发板为平台,Vivado集成开发软件为环境,利用Verilog HDL语言设计出的组合波形发生器。将各波形的幅值转化为相位并将其数字化后的数据存储在ROM内,按照设定频率,以相应频率控制字Fre_control为步进,对相位进行累加,将累加相位值作为地址,通过该地址读取存放在存储器内的波形数据,经数模转换等外围电路得到所需波形。

【关键词】FPGA 组合波形发生器 Vivado

随着可编程逻辑元器件的越发普及,FPGA在教学、生产等方面的用途日益增加。全球最老牌的PLD公司之一的赛灵思公司在2012年发布了Vivado集成开发环境加之近年Basys3开发设计板的问世,使得Verilog硬件描述语言越发受到开发者的青睐,也使得数字信号处理等变得越发高速和高效。本作品可以产生正弦波,方波,三角波等基本波形及其组合波形,通过添加波形数据,可实现任意波形。且本作品波形质量好,精度高,指标可媲美市场上出售的发生器。

1 总体的结构

图1所示为作品的总体结构图,具体表现为:将FPGA综合而成的数字量输出给外围电路,通过DA转换和低通滤波,使得数字信号变为平滑的模拟信号,后经由前级差分放大电路和幅度调节电路,产生标准的输出信号。

2 系统的构成

在Vivado上利用Verilog语言变成实现下面的数字电路(图2)。其中系统时钟f为100MHz,通过锁相环PLL倍频后提供给系统的时钟fs为200MHz,相位累加器N为28位,这样步进值step就是 ,为了使一个周期的采样点数不少于8个,我们人为设定频率控制字Fre_control为25位。设K为频率控制字的值,则输出频率fo= 。图中的wave是三位变量,那么就有=8种波形,如需添加波形,wave的位数也需要相应增加。

我们的ROM查找表的深度为4096个点,宽度为12位,满足采样精度和DA转换精度,图3所示为我们其中一种波形(正弦波)的仿真波形。

3 组合波形及其他波形的实现

组合波形的实现主要是由基本波形叠加而来,两两叠加波形就是将三种基本波形幅值除以二后进行数字累加,三种波形的叠加则除以三,这样得到的组合波形和原来的三种基本波形是同频同幅的。

另外要想实现其他波形,我们只需将波形对应的4096个点添加进ROM,在Vavido中添加选择该波形的程序,然后综合、实现、生成bit文件再下载就可以实现了。

4 步进值的设计

步进值的设计是本作品的核心和亮点。我们巧妙利用Basys 3开发板上的5个按键:将其中之一作为复位按键,两个作为加和减的控制键,另外两个一个能够使步进值以十倍的速率递增,另一个以十倍的速率递减。最小步进值是0.75,然后就是7.5,75,这样可以使频率的调节更加方便和快捷。

5 结语

该组合波形发生器基于Xilinx的Basys 3开发板,性能稳定。具有波形可调,幅值可调,频率可调,步进值可调以及添加任意波形的功能。另外,我们还增加了扫频的功能。该作品是一款功能多样化,结构简单,设计方便,精度准确,价格低廉的作品。

参考文献:

[1]陈学英.李颖.FPGA应用实验教程.北京:国防工业出版社,2013.

[2]何宾.Xilinx FPGA权威设计指南.北京:电子工业出版社,2015.

[3]夏宇闻.Verilog数字系统设计教程.北京:北京航空航天大学出版社,2013.