基于FPGA LPM多功能信号发生器设计
2011-03-26徐运武周泽湘
徐运武,周泽湘
(广东松山职业技术学院广东韶关512126)
信号发生器又称为波形发生器,是一种常用的信号源,广泛应用于电子电路、通信、控制和教学实验等领域。它是科研及工程实践中最重要的仪器之一,以往多用硬件组成,系统结构比较复杂,可维护性和可操作性不佳。随着计算机技术的发展,信号发生器的设计制作越来越多的是用计算机技术,种类繁多,价格、性能差异很大。用FPGA或CPLD来实现,它的优点是可以进行功能仿真,而且FPGA和CPLD的片内资源丰富,设计的流程简单。用FPGA所构成的系统来产生波形信号,这个系统既能和主机系统相连,用相应的上层软件展示波形信号,又方便程序的编写,而且还有A/D0809接口可以产生模拟信号的输出和外面的示波器相连[1]。
1 正弦信号发生器的LPM定制[2]
正弦信号发生器由计数器或地址发生器(6位)、正弦信号数据ROM(6位地址线,8位数据线,含有64个8位数据,一个周期)、原理图顶层设计和8位D/A(实验中用DAC0832代替)。
其框图如图1所示。其中信号产生模块将产生所需的各种信号,这些信号的产生可以有多种方式,如用计数器直接产生信号输出,或者用计数器产生存储器的地址,在存储器中存放信号输出的数据。信号发生器的控制模块可以用数据选择器实现,用8选1数据选择器实现对5种信号的选择。最后将波形数据送入D/A转换器,将数字信号转换为模拟信号输出。用示波器测试D/A转换器的输出,可以观测到5种信号的输出。
图1 信号发生器结构框图Fig.1 Structure diagram of signal generator
1.1 定制初始化数据文件
QuartusII能接受的LPM_ROM模块中的初始化数据文件的格式有两种:.mif格式文件和.hex格式文件。实际应用中只要使用其中一种格式的文件即可。下面采用.mif格式文件,调出产生ROM数据文件大小的选择窗。根据64点8位正弦数据的情况,可选ROM的数据数Number为64,数据宽Word size取8位。单击OK按钮,将出现图2所示的空的.mif数据表格,表格中的数据格式可通过鼠标右键单击窗口边缘的地址数据弹出的窗口选择。
将波形数据填入mif文件表中也可以使用QuartusII以外的编辑器设计MIF文件,其格式如下:
图2 .mif数据表格Fig.2 Data form of.mif
把上述程序编译成程序后,可在DOS命令行下执行命令:
1.2 定制LPM元件
打开Mega Wizard Plug_In Manager初始对话框,选择Create a new custom…项。单击Next按钮后,选择Storage项下的LPM_ROM,再选择ACEX1K器件和VHDL语言方式;最后输入ROM文件存放的路径和文件名:F:\sing_gnt\data_rom(定制的ROM元件文件名),单击Next按钮,选择ROM控制线、地址线和数据线。这里选择地址线位宽和ROM中数据数分别为6和64;选择地址锁存控制信号inclock。
对于地址信号发生器的设计。方法一:用VHDL语言设计6位计数器,产生其元件符号;方法二:仍采用LPM定制的方法。
1.3 完成顶层设计
按图3画出顶层原理图,然后进行编译,波形仿真如图4所示。
图3 简易正弦信号发生器顶层电路设计Fig.3 Top circuit design of the simple sine signal generator
图4 当前工程仿真波形输出Fig.4 Output of the current engineering simulation waveform
对当前设计通过执行Quartus II的命令Create∠Update/Create Symbol Files for Current File,可以为设计电路建立一个元件符号,以便被顶层设计多功能信号发生器所调用[3]。
2 其他信号部分原程序[4]
3 顶层电路的设计
将上述6个模块生成符号,供顶层电路调用。这些模块分别是:递减锯齿波信号产生模块signall、递增锯齿波信号产生模块signal2、三角波信号产生模块signal3、阶梯波信号产生模块signal4、方波信号产生模块signal5和数据选择器mux51。顶层电路的连接如图5所示。
4 D/A转换器的连接
选择一个D/A转换器,将数据选择器的输出与D/A转换器的输入端连接。D/A转换器的可选范围很宽,这里以常用的DAC0832为例。DAC0832的连接电路如图6所示[5]。
图5 信号发生器顶层电路Fig.5 Top circuit of the signal generator
图6 DAC0832的连接电路Fig.6 Connection circuit of DAC0832
5 实现与测试
信号发生器顶层电路的仿真波形如图7所示,这里只就输入选择信号等于5时的情况进行仿真,此时输出波形是方波,输出的数字信号为周期性的全0或全1。
图7 信号发生器顶层电路的仿真波形Fig.7 Simulation waveform of the signal generator top circuit
信号发生器的底层电路模块也可以分别进行仿真,例如对阶梯波信号产生模块signal4进行仿真,仿真波形如图8所示,输出的数字信号为阶梯状变化。
图8 阶梯波信号产生模块signal4的仿真波形Fig.8 Simulation waveform of module 4 produced by the ladder wave
6 结束语
硬件电路设计主要是设计相关模块的设计思想的可视化,是相关模块的电路图的汇总和其相关仿真波形的集锦,该部分条理清晰,思路明确,从中我们可以清晰地看到该设计方案的具体模块和整个设计的原理结构实图;程序设计这一部分主要阐述该设计的设计方法与设计思想,进一步从软件设计上揭示设计构思,主要包含了整个设计所用到的模块的硬件描述语言的设计,本文设计思路清晰,
通过QuartusII软件进行波形仿真成功,特别是正弦信号发生器的LPM定制对于编程不是特别强的人员提供另一种途径来实现,加深理解EDA的层次设计思想,很好的把握住了教学的改革方向,更好的锻炼了学生理论联系实践的能力。
[1]王诚,吴继华,蔡海宁.Altera FPGA/CPLD设计(高级篇)[M].北京:人民邮电出版社,2005.
[2]赵曙光.可编程逻辑器件原理、开发与应用[M].第2版.西安:西安电子科技大学出版社,2006.
[3]候伯亨,顾新,刘凯.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1999.
[4]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2002.
[5]刑建平,曾凡泰.VHDL程序设计[M].第2版.北京:清华大学出版社,2005.
[6]Altera.Altera device package information[EB/OL].(2006-09)http://www.doc88.com/p-5420149423.html.
[7]潘松,黄继业.EDA技术实用教程—VHDL版[M].第4版.北京:科学出版社,2010.
[8]焦素敏.EDA应用技术[M].北京:清华大学出版社,2005.