目录一、题目要求及分析 (1)1.1题目要求 (1)1.2题目分析 (1)二、任意波形信号发生器方案设计 (3)2.1系统设计框图与思路 (3)2.2 系统设计原理图 (5)2.3 相关芯片介绍 (6)三、相关模块具体程序实现 (10)四、仿真及实际结果与分析 (16)4.1波形选择及仿真结果 (16)4.2波形选择及实际结果 (18)4.3结果分析与相关问题解决 (23)五、总结与体会 (24)参考文献 (25)附录 (26)一、题目要求及分析1.1题目要求任意波形信号发生器利用FPGA器件产生控制信号及数据信号,经DAC0832和TL082转换产生以下波形:1)正斜率斜波;2)正弦波;3)锯齿波;4)任意波形。
用示波器观察输出波形。
硬件电路内容和要求:用DAC0832实现数模转换电路,用TLC082实现电流-电压转换电路,画出电路原理图。
软件设计内容和要求:VHDL编程实现任意波形的信号控制器。
要求可以用开关切换不同的波形数据输出。
扩展:增加衰减控制信号,通过开关控制衰减倍数,并在数码管显示。
1.2题目分析VHDL语言是随着集成电路系统化和高度集成化的发展而逐步发展起来的,是一种用于数字系统的设计和测试的硬件描述语言。
相比传统的电路系统的设计方法,VHDL 具有多层次描述系统硬件功能的能力,支持自顶向下和基于库的设计的特点,因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
在本次课程设计中,函数发生器的设计采用自顶向下的系统设计的方法,通过MAX+plusⅡ开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,采用模块化的设计,对功能的修改和增加,只要修改VHDL源程序,而不必更改硬件电路。
实现数字系统硬件的软件化。
任意信号发生器体现在它能选择输出四个波形,即正斜率斜波、正弦波、锯齿波、任意波形;还可以改变波形的某些表征参量,从而控制输出的波形。
其主要问题是波形的选择和准备与输出的模拟信号波形相对应的数字信号,前者可以通过外接开关从而选择输出什么样的波形,后者可以通过建立相应波形的数字信号模块得到,然后建立一个信号,用来保存所采点的数据,最后把该信号送给ADC0832的输入数据端口就可以了。
这两个主要问题当然在做的过程中还需要考虑到数据的选择、位宽的大小、管脚的取舍等问题。
二、任意波形信号发生器方案设计函数信号发生器的实现方法通常有以下几种:(1)用分立元件组成的函数发生器:通常是单函数发生器且频率不高,其工作不很稳定,不易调试。
(2)可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC 产生。
早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。
(3)利用单片FPGA集成芯片的函数发生器:它能产生多种波形,达到较高的频率,且易于调试。
鉴于此,很多公司开发了系列FPGA芯片,它们克服了(2)中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。
又由于其较高的性价比,他们成为制作任意波形信号发生器的首选。
(4)利用专用直接数字合成DDS芯片的函数发生器:能产生任意波形并达到很高的频率。
但成本较高。
2.1系统设计框图与思路1.系统的设计框图利用电子设计自动化(EDA)技术设计的波形信号发生器,与传统的信号发生器相比,具有高稳定度、高精度、高分辨率的优点。
该项目利用Alter 公司的可编程逻辑器件 EPF10K10,采用EDA 技术,实现可通过改变时钟频率来调制频率、幅值的多种常用信号。
根据设计要求,多波形信号发生器主要由5部分组成,即波形数据产生器、波形信号控制器、输出信号寄存器、数/模转换电路、低通滤波电路。
在时钟信号的作用下,通过波形信号产生器产生各种波形数据,再由信号控制器通过选择信号要输出的波形及衰减档位,并用数码管显示衰减倍数,经数/模转换电路、低通滤波电路,最终输出所需波形信号。
另外,输出波形幅度的调节还可通过改变A/D转换芯片电阻网络的基准电压实现。
函数发生器有波形选择开关控制波形的输出,分别能输出正斜率斜波、锯齿波、正弦波、方波,及任意组合波形,考虑程序的容量,每种波形在一个周期内均的取样点不能太多。
系统的设计框图如下图2.1所示:时钟信号选择信号衰减显示号出图2.1 系统设计框图2.函数发生器的设计思路本次课程设计采用FPGA作为中心控制逻辑,由于其具有高速和逻辑单元数多的特点,因此可以由FPGA、DAC和I/V运放直接构成信号源发生器的最小系统。
在该方案中通过FPGA控制DAC并直接向DAC发送数据,这样就提高了所需波形的频率并绕过了通用存储器读取速度慢的特点,再加上外部的开关按钮就能够简单控制波形切换及改变波形的某些表征参量,能够通过编程实现波形的任意性、幅度变化的灵活性等功能。
本次课程设计采用自顶向下的设计方法进行设计,包含顶层文件的设计和底层文件的设计。
顶层的设计是把下层各模块连接起来,采用文本输入的方式,通过元件例化的方法,调用各元件,实现函数发生器的设计。
在顶层的设计中,clk,reset,ob,si,dl,sq,tc为系统的控制信号输入端,Q,a,b,c,d,e,f,g为数字信号的输出端口:clk为系统时钟信号输入端,reset为系统复位信号,ob,si,dl,sq 是系统波形选择数码开关,通过改变开关的通断可以选择输出的波形;tc 为信号衰减档位选择,其有,2、4、8三个衰减档位;a,b,c,d,e,f,g为七段数码管显示控制输出,用于显示衰减倍数;FPGA产生数字信号,并且由Q端口送入ADC0832的输入数据端口,这样数字信号经D/A转换器转换成为模拟信号。
但是DAC0832C 以电流形式输出转换结果,若要得到电压形式的输出结果需另加I/V转换电路,这时可采用运算放大器,这里我们采用TL082实现电流-电压转换,即可转换成模拟电压信号,输出的波形经过低通滤波电路可以滤除毛刺及干扰信号,这样就可以得到较清晰的波形,可以通过示波器观察所得波形。
底层设计建立基本的模块,实现相应的功能,便于元件例化,包含波形选择、正弦波、正斜率斜波、锯齿波、任意波形等模块: 波形选择模块外接开关,利用开关选择要输出的波形及产生相应的数字信号,以便于送入ADC0832的输入数据端口进行数据转换,从而输出所选择的波形;正弦波模块、正斜率斜波模块、锯齿波模块、任意波形模块分别产生与各自相对应的正弦波的数字信号、正斜率斜波的数字信号、锯齿波的数字信号、任意波形的数字信号等模块,各个波形模块所产生的数字信号送入波形选择器中,以便于波形选择器选择并输出数字信号。
此外,信号的频率和幅值及其他表征参数可通过时钟(CLK)信号的改变来调节。
值得注意的是,波形数据的建立是整个程序设计中最重要的问题。
FPGA输出的数字信号需要经D/A转换器转换成各种波形输出。
而由D/A转换器可知,DAC0832的分辨率是8位,这样,将模拟信号的各种波行在一个周期内平均分成255份,由于已经确定每周期的取样点数为64,即每隔2π/64的间隔取值一次,所取的值为该点对应的波形的值,通过计算可以获得64个取样点的值;也可以通过查表的方法取得64个取样点的值。
2.2 系统设计原理图如图2.2所示为系统设计原理图,其主要由数据寄存器74LS244,D/A转换器DAC0832及有运放TL082构成的低通滤波电路组成。
其中,可通过JJ1、JJ2、JJ3和JJ4改变滤波特性。
此外,由于DAC0832输出的为电流信号,需用运放将电流转换为电压信号,再通过滤波电路进行滤波产生最终输出波形信号。
图2.2 系统设计原理图2.3 相关芯片介绍数模转换芯片DAC0832:D/A 转换器的类型很多,从输入电路来说,一般的D/A 转换器都带有输入寄存器,与微机能直接对接。
在此方案中采用分辨率为8位的DAC0832集成电路芯片。
它由NSC 公司(National Semiconductor Corporation )所生产,采用低功耗的CMOS 工艺制成。
它具有连接简单,转换控制方便、价格低廉等特点,在各微机系统中得到广泛的应用。
DAC0832的结构框图如图2.3所示:数据寄存 D/A 转换滤波I/U 转换图2.3 DAC832结构框图DAC0832是具有20个引脚的双列直插式芯片。
其内部实际上是一个T型电阻网络在外部运算放大器配合下完成D/A转换工作。
DAC0832的内部包括两个8位寄存器、1个8位转换器和相应辅助电路。
DAC0832内部有两个寄存器,能实现双缓冲、单缓冲和直通三种工作方式。
DAC0832的引脚图如图2.4所示,其功能如下:图2.3 DAC832结构框图DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。
当输入全为1时Iout1最大。
Iout2: 电流输出线。
和IOUT1为一组互补的模拟电流输出端,其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻,与运放配合构成I/V转换电路。
Vcc:电源输入线 (+5v~+15v)Vref:基准电压输入线 (-10v~+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好.TL082双运算放大器:TL082是一通用的J-FET双运用算放大器,其特点有:较低输入偏置电压和偏移电流:输出没有短路保护,输入级具有较高的输入阻抗,内建频率被子偿电路,较高的压摆率。
最大工作电压为18V。
1.TL082引脚功能(见表280)2.TL082内部框图(见图2.4)图2.4 TL082内部框图三、相关模块具体程序实现正斜率斜波设计模块:process(clk,reset)isbeginif(reset='1') then tmp<="00000000"; --异步复位elsif(clk'event and clk='1') thenif(tmp<"11111111") thentmp<=tmp+'1'; --未达最大值以正斜率递增elsetmp<="11111111"; --达最大值后维持高电平end if;end if;Q<=tmp;end process;正弦波设计模块:DAC0832的分辨率是8位,这样,将模拟信号的正弦波在一个周期内平均分成255份,由于已经确定每周期的取样点数为64 ,所取的值为该点对应的正弦值,可用加法计数器和译码电路完成。