基于FPGA的多功能波形发生器的设计

(整期优先)网络出版时间:2010-03-13
/ 2

基于FPGA的多功能波形发生器的设计

黄小翰

黄小翰(茂名职业技术学院,茂名525000)

摘要:主要研究了采用FPGA和VHDL语言,运用自顶向下设计思想设计多功能数字波形发生器的问题。数字波形发生器基于FPGA设计,VHDL编程实现,集成在1片Altera公司的EPF10K10LC84-3芯片上,其输出的8位数据通过D/A转换并经滤波电路后即得所需波形。频率可从100~1000Hz等步进调节,最小步进100Hz。系统频率范围宽,频率和幅度精度高。

关键词:FPGA;VHDL;EDA;波形发生器

中图分类号:TN70文献标识码:A文章编号:1006-4311(2010)09-0232-02

0引言

电子设计的必由之路是数字化,这已成为共识。在数字化的道路上,我国的电子技术经历了一系列重大的变革。从应用小规模集成电路构成电路系统,到广泛地应用微控制器或单片机(MCU),在电子系统设计上发生了具有里程碑意义的飞跃。电子产品正在以前所未有的速度进行着革新,主要表现在大规模可编程逻辑器件的广泛应用。在可编程芯片CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)上实现电子系统的设计,必将成为今后电子系统设计的一个发展方向。所以电子设计技术发展到今天,又将面临另一次更大意义的突破,即CPLD/FPGA在EDA(电子设计自动化)基础上的广泛应用。本设计将采用基于VHDL的EDA设计来实现波形发生器的各种功能。

1EDA简介

1.1EDA技术的涵义EDA是电子设计自动化(ElectronicDesignAutomation)的缩写。它是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。EDA技术可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。

1.2EDA的工程设计流程电子设计的全过程分为物理级、电路级和系统级三个设计层次,涉及的电子系统从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子系统。EDA技术采用系统级的设计方法,其设计流程如图1所示。

①源程序的编辑:利用文本编辑器或图形编辑器,将设计用文本方式或图形方式表达出来。常用的源程序输入方式有原理图输入、HDL文本输入和状态图输入。②逻辑综合和优化:逻辑综合的功能是将软件描述与给定硬件结构联系起来,也就是HDL、原理图或状态图的描述,针对给定硬件结构组件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。③目标器件的布线/适配:适配器的功能是将逻辑综合后产生的网表文件配置到指定的目标器件中,并产生最终的下载文件。④目标器件的编程/下载:如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,也就是说满足原设计的要求,这时就可以通过编程器或下载电缆将布线/适配器产生的配置/下载文件载入目标芯片FPGA或CPLD中。

2多功能波形发生器的设计

2.1多功能波形发生器多功能波形发生器采用FPGA器件作为核心控制部件,精度高稳定性好,得到波形平滑,特别是由于FPGA的高速度,能实现较高频率的波形。控制上更方便,可得到较宽频率范围的波形输出,步进小。波形数据使用Matlab计算,Matlab能对数据进行四舍五入,得到的数据误差较小,且编程简单,修改容易,调用方便。计算正弦波及指定函数波的N点采样值,然后写入到ROM中待用。通过预置FPGA的分频系数以及改变相位进步实现对输出频率的调节,并可以等步进调频。幅度调节采用高精度的电位器调节。

2.2单元电路分析与设计

2.2.1输出信号频率的产生。输出信号的频率由触发信号的频率决定,触发信号的频率由50MHZ的信号分频率得到,分频率系数由选择模块产生。本文设计的波形频率f0从100-1000Hz,步进为100Hz,因此,有100Hz、200Hz、300Hz……900Hz、1000Hz等10种频率。每种频率的波形的一个周期都要输出64个离散点,故时钟触发信号的频率fc=64×f0。该模块将频率选择模块的输出信号送到一个分频程序(FANA)进行分频,就得到分频时钟信号。

2.2.2幅度调节的原理及实现。直接对数模转换芯片的电阻网络的基准电压进行调节,DAC0832的基准电压为±15V,理论上输出波形的幅度范围±15V。通过在ADC0832的8脚(基准电压输入脚)接一个精密电位器便可实现。

2.2.3波形输出控制模块与键盘控制模块设计。波形选择用于按键选择输出的波形类型,因为波形发生器要求输出正弦波、三角波、方波以及它们两两或三种线性组合,所以采用三个按键,分别控制了三种波形的任意一种,或任意两种波形的叠加,又或者三种波形的叠加输出,同时还设计了一个清零按钮,随时可以将输出清零,使操作简单。

2.2.4D/A转换电路设计。该电路是将波形输出控制模块输出的二进制信号值转换成模拟信号输出。由8位D/A转换器DAC0832及运算放大器等组成,组成电路如图2所示。

2.2.5波形合成器的设计。对幅度为1的正弦波的一个周期进行64点采样,用Matlab计算得到每一点对应的幅度值,然后量化成8位二进制数据存放在ROM中。理论上,采样点数及量化位数越多,合成波形精确度越高。D/AC0832的位数为8位,量化等级最高为256,其量化误差已能达到要求,对于查正弦表的舍入误差也可忽略,故不采用更高位数的数模转换器。这里采用64个采样点,是为了在从高到低各个频段都能得到较好波形。在分频器输出脉冲驱动下,依次取出ROM中数据,即可得到幅度上离散正弦波,再经过D/A转换,便可得到连续正弦波。而三角波的产生是从某点起,使幅度逐次增加一个相位步进,一直到最大值后变为逐次减小一个相位步进,到最小值后又变为逐次增加相位步进,如此循环便产生周期性三角波形,方波的产生,只需根据占空比,调节一个周期内输出高、低电平时间即可。

2.3FPGA器件内部结构多功能波形发生器由初值模块、分频模块、方波产生模块、三角波产生模块、正弦波产生模块、波形输出控制模块等部分组成。其中初值模块CHUZHI提供初值,供下一个模块FANA分频时用,通过不同的初值,在波形产生模块得到不同的工作频率,从而实现调节波形频率的目的。送不同的初值,是由输入A决定的,4位矢量产生的16种组合中的10种对应了10种不同的频率;分频模块FANA的功能是将前一模块CHUZHI送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率;方波产生模块SQUARE的功能是产生方波,每32个时钟翻转一次,每64个时钟为一个周期(为了与正弦波相同);三角波产生模块DELTA的功能是产生三角波,为了得到64个时钟为一个周期的三角波,对于8位D/A转换芯片,输出Q每次加/减8;正弦波产生模块SIN的功能产生正弦波,一个周期取64点,所以64个时钟为一个周期;波形输出控制模块CHPRO31设置了三个按键,分别控制三种波形任意一种,或任意两种波形的叠加,又或者三种波形叠加输出。输出的是信号的二进制值,同时还设计了一个清零按键,可以将输出清零。

2.4管脚封装与EDA实验箱设置管脚封装。

2.5整机电路整机电路设计原理如图3所示。

3结束语

由于VHDL语言具有支持大规模设计和再利用已有设计等优点,因此使用VHDL语言来设计数字系统已成为一种潮流。采用EDA技术,实现了各种波形的产生,且波形平滑,无毛刺,质量高,输出波形的频率可调范围宽,可等步进调节且步进小。人机界面经过精简,按键少且操作方便。

参考文献:

[1]谭会生,张昌凡.EDA技术及应用[M].西安:西安电子科技大学出版社,2001.

[2]潘松,王国栋.VHDL实用教程[M].成都:电子科技大学出版社,2000.

[3]李广军,孟宪元.可编程ASIC设计及应用[M].成都:电子科技大学出版社,2000.

[4]陈怀琛,等.MATLAB及在电子信息课程中的应用[M].北京:电子工业出版社,2002.