您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页毕业设计187基于模拟电路波形发生器设计

毕业设计187基于模拟电路波形发生器设计

来源:二三娱乐
邵阳学院毕业设计(论文)

前 言

波形发生器是一种常用的信号源,广泛用于设计和测试、汽车制造、工业、生物医药、传感器仿真、制造模型实验等。

传统的信号发生器采用模拟电路技术,由分立元件构成振荡电路和整形电路,产生各种波形。它在电子信息、通信、工业等领域曾发挥了很大的作用。但是采用这种技术的波形发生器电路结构复杂、体积庞大、稳定度和准确度较差,而且仅能产生正弦波、方波、三角波等几种简单波形,难以产生较为复杂的波形信号。随着微处理器性能的提高,出现了由微处理器、D/A以及相关硬件、软件构成的波形发生器。它扩展了波形发生器的功能,产生的波形也比以往复杂。实质上它采用了软件控制,利用微处理器控制D/A,就可以得到各种简单波形。但由于微处理器的速度限制,这种方式的波形发生器分辨率较低,频率切换速度较慢。

本设计拟订开发基于Matlab和EDA技术的波形发生器,它用高速存储器做查询表,通过数字形式存入的波形,再通过高速D/A转换器对存储器的波形进行合成。只要改变FPGA中查找表数据就可以产生任意波形,因而具有相当大的灵活性。

随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,同时这也对相应的测试仪器和测试手段提出了更高的要求,而波形发生器已成为测试仪器中至关重要的一类,因此在国内发展波形发生器具有重大意义和实际价值。例如,它能模拟编码雷达信号、潜水艇特征信号、磁盘数据信号、机械振动瞬变过程、电视信号以及神经脉冲之类的波形,也能重演由数字示波器(DSO)捕获的波形等。

本课题的研究由我及李慧同学共同完成,本人主要利用FPGA产生波形进行仿真与测试,波形数据由来在李慧同学努力下实现的。由于我的能力和水平有限,论文中肯定会有不妥之处和错误,恳请老师和同学提出批评和改进意见。

1

邵阳学院毕业设计(论文)

第1章 波形发生器方案设计

第1.1节 基于模拟电路波形发生器设计方案

正弦波振荡电路是用来产生一定频率和幅度的正弦波信号,输出单一频率的正弦波,是应用最广泛的振荡器。振荡器是由基本放大器和反馈网络,选频电路三大部分组成。自激振荡器无需外加激励就能产生特定小型的交流输出信号。如图1.1为利用集成运放RC相移式正弦波振荡器的电路原理图。

+12VC022nC022nR011k4C0R111k22n

C022n2N4861D0R111KGND263GND1N914μA7417正弦波输出R2-12V10μC022nR211k5kC010μ390D16.2v图1.1 RC正弦波振荡器

图中的运放接成反相输入方式,输出与输入之间有180相移,通过RC相移网络之后,将产生180相移,满足自激的相位平衡条件。若适当选择Rf值,满足自激的振幅条件,则将在输出端得到正弦波形。该振荡器频率及振幅条件由式(1-1)决定:

f0123RC,Rf12R (1-1)

电路中的稳压管Dz起稳定幅值作用,当振幅超过稳压管的稳压电压时,稳压管被击穿,从而限制振幅继续增长。 (1)选择RC参数的主要依据和条件

① 因为RC桥式振荡器的振荡频率是由RC网络决定的,所以选择RC的值时 应该把已知振荡频率f0作为主要依据。

② 为了使选频网络的特性不受集成运算放大器输入和输出的电阻的影响, 选择R时还应该考虑下列条件:Ri R ro式中,ri是集成运算放大器同相端输入电阻;

ro是集成运算放大器的输出电阻。

2

邵阳学院毕业设计(论文)

第1.2节 基于MCU波形发生器设计方案

波形的生成及对频率和相位的控制均由单片机编程实现。波形生成程序生成正弦波信号在一个周期内的波形数据,这些数据循环输出至D/A转换器,通过在输出数据指令之间插入NOP指令实现对频率的控制,原理框图如图1.2所示。

D/A单片机D/A滤波器 正弦波幅度控制信号输出A 滤波器 正弦波幅度控制信号输出B 图1.2 以MCU实现方案原理图

此方法产生的信号频率范围、步进值取决于所采用的每个周期的输出点数及单片机执行指令的时间(与单片机的结构及选用的晶体振荡器等有关)。此方案的优点是硬件电路简单,所用器件少,可相对容易地产生各种波形,在低频区基本上能实现所要求的功能;缺点是控制较复杂,精度不易满足,生成波形的频率范围小,特别是难以生成高频波形。

例如,对输出信号频率fmax=20kHz而言,因为移相分辨率为1,则一个周期至少

ffmax360即fcp7.2MHz要采样360个点,即MCU发送波形幅度数据的速度cp,则前后发送2个波形幅度数据的时间间隔Tmax0.1388s,但是MCU的指令执行周期一般有几个

s,从而MCU发送信号一个周期的波形数据一般要几十个s。故以MCU为

核心的实现方案难以产生高频波形。

第1.3节 基于DDS技术波形发生器设计方案

该方案采用DDS(Direct Digital Synthesis,直接数字频率合成)技术产生数字式移相正弦波信号。信号生成主要由FPGA部分实现,FPGA部分主要包括相位累加器和波形查找表(波形查找表由FPGA外部的存储器实现)。DDS技术将输出波形的一个完整周期的幅度值都顺序地存放在波形存储器中,通过控制相位增量产生频率、相位可控的波形。数字频率合成器由相位累加器、加法器、波形存储ROM、D/A转换器和低通滤波器(LPF)构成。如图1.3所示。

3

邵阳学院毕业设计(论文)

频率控制字K 累加器加法器N位加法器S(n)位ROMS(t)位D/ALPF相位控制字P波形控制字W参考信号FE 图1.3 DDS原理框图

其中K为频率控制字、P为相位控制字、W为波形控制字、fc参考时钟频率,N为相位累加器的字长,D为ROM数据位及D/A转换器的字长。相位累加器在时钟fc的控制下以步长K作累加,输出的N位二进制码与相位控制字P、波形控制字W相加后作为波形ROM的地址,对波形ROM进行寻址,波形ROM输出D位的幅度S(n)经D/A转换器变成阶梯波S(t),再经过低通滤波器平滑后就可以得到合成的信号波形,合成的信号波形形状取决于波形ROM存放的幅度码,因此用DDS可以生成任意波形。

(1) 频率预置与调节电路

K被称为频率控制字,也叫相位增量。DDS方程: f0fcK2N,f0为输出频

率,fc为频率时钟。当K=1时,DDS输出最低频率(也即频率分辨率)为fc2N,而

DDS的最大输出频率由Nyquist采样定理决定,即fc2,也就是说K的最大值为

2N1。因此,只要N足够大DDS可以得到很细的频率间隔。要改变DDS的输出频率,

只要改变频率控制字K即可。

每来一个时钟脉冲fc,加法器将频率控制字K与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。寄存器将加法器在上一个时钟作用后所产生的相位数据反馈到加法器的输入端;以加法器在下一个时钟作用下继续与频率控制字进行相加。这样,相位累加器在时钟的作用下进行相位累加。当相位累加器加满量时就会产生一次溢出,完成一个周期的动作。

(2) 控制相位的加法器

通过改变相位控制字P可以控制输出信号的相位参数。令相位加法器的字长为N,当相位控制字有0跃变到P(P0)时,波形存储器的输入为相位累加器的输出与相位控制字P之和,因而其输出的幅度编码相位会增加生相移。

4

p,从而使最后输出的信号产2N邵阳学院毕业设计(论文)

(3) 控制波形的加法器

通过改变波形控制字W可以控制输出信号的波形。由于波形存储器中的不同波形是分块存储的,所以当波形控制字改变时,波形存储器的输入为改变相位后的地址与波形控制字W(波形地址)之和,从而使最后输出的信号产生相移。

(4) 波形存储器

有相位累加器输出的数据作为波形存储器的详细地址,进行波形的相位—幅值转换,即可在给定的时间上确定输出的波形的抽样幅值。N位寻址ROM相当于把

0~360的正弦信号离散成具有2N个样值的幅度以D位二进制数值固化在ROM中,

按照地址的不同可以输出相应相位的正弦信号的幅值。相位—幅度变换原理图如下图1.4所示:

图1.4 相位—幅度变换原理图

(5) D/A转换器

D/A转换器的作用是把合成的正弦波数字量转换成模拟量。正弦幅度量化序列

S(n)经D/A转换后变成了包络为正弦波的阶梯波S(t)。需要注意的是,频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,合成的正弦波S(t)台阶数就越多,输出的波形的精度也就越高。

(6)低通滤波器

对D/A输出的阶梯波S(t)进行频谱分析,可知S(t)中除主频f0外,还存在分布在fc,2fc......两边f0处的非谐波分量,幅值包络为辛格函数.因此,为了取出主频f0,必须在D/A转换器的输出端接入截止频率为fc/2的低通滤波器。

第1.4节 基于FPGA波形发生器设计方案

波形发生电路主要由时钟电路、FPGA控制电路、D/A转换电路、集成运放、低通滤波电路五部分组成。波形发生器可以被看成是数字波形合成器。波形数

用数字形式存储在ROM当中,通过D/A将一个数字量转换成模拟量。波形转换速度是由控制地址发生器的时钟信号控制。通过改变ROM中的数字量来实现模拟信号改变。

波形发生器可以被看成是数字波形合成器。波形数据用数字形式存储在ROM当

5

邵阳学院毕业设计(论文)

中,通过D/A将一个数字量转换成模拟量。波形转换速度是由控制地址发生器的时钟控制的。通过改变ROM中的数字量来实现模拟信号的改变。

地址发生器是指波形发生器的波形输出机制。地址发生器是向ROM送一定顺序的地址数据来实现的,每一个新的时钟到来时提供一个新的地址(这里指采样时钟)。最简单的地址发生器就是计数器。每来一个时钟计数器就加一,直到加到计数器的最大值为止,然后在从起始地址开始。如果把计数器的输出作为ROM的地址输入,那么波形就会连续的输出了。波形输出的频率直接由采样时钟频率来控制。这种以计数器为基础的地址发生器结构简单,缺点就是整个波形ROM的内容都必须连续输出。 时钟脉冲 图1.5 波形发生器的电路流程框图

FPGA计数器(地址发生器)波形数据存储器D/A转换集成运放滤波电路波形输出地址发生器如图1.5所示。它允许计数器在任何地址处开始或终止,输出频率

FOUT可用下式表示:FOUT=FCLK(结束地址-起始地址);公式中FCLK为时钟频率,这里假定计数器是逐个递增的,因此ROM的每一个点都可以访问到。由送入地址依次读取数据,所以通过DAC转换是离散的信号,这就是从集成运放输出的波形是由很多点组成的原因。

波形发生电路主要由时钟电路、FPGA控制电路、D/A转换电路、集成运放、低通滤波电路五部分组成。利用FPGA实现波形发生器的工作原理如下:时钟脉冲产生一个50Mhz的固有频率,送往FPGA目标芯片,波形数据ROM是由FPGA中的EAB利用LPM-ROM实现,它所占的存储容量小,转换速度快,FPGA中的波形发生控制电路向波形数据ROM发出地址信号,当接受来自FPGA的地址信号后,将从数据线输出相应波形数据,地址变化的越快,输出数据的速度越快,然后通过D/A转换对数据进行处理。

在FPGA的顶层文件中,计数器通过外来控制信号和高速时钟信号向波形数据ROM发送地址信号, 输出波形的频率由发出地址信号的速度决定;波形数据ROM中存有发生器的波形数据,当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。通过集成运放将D/A的输出电流转换成输出电压,输出电压信号通过低通滤波电路输出,从而得频率稳定的模拟信号在示波器上观察。

D/A转换器主要采用8位一体的DAC0832,由于输出波形的频率上限与DA转

换器件的转换速度有很重要的关系,转换的速度由DA转换周期为1μs所决定,输入

6

邵阳学院毕业设计(论文)

电压为+5V。负责将ROM输出数据转换成模拟信号,DA转换的电流信号通过集成运放电路转换成电压信号,集成运放接12V电压作驱动低通滤波电路电压,模拟信号通过低通滤波后,可在示波器观察到光滑的正弦波。

综合上述方案,采用模拟电路的实现方法此方法的优点是电路结构简单,原理简单易懂,成本低廉,能基本生成正弦波。缺点是生成的波形单一,幅度和频率固定,生成的波形不能满足生产的需要,已经逐渐被淘汰。

采用基于MCU波形发生器设计方案采用单片机编程实现正弦波。此方案的优点是硬件电路简单,所用器件少,可相对容易地产生各种波形,在低频区基本上能实现所要求的功能;缺点是控制较复杂,精度不易满足,生成波形的频率范围小,特别是难以生成高频波形。

DDS技术波形发生器是利用单片机作为控制芯片,由MCU产生频率控制字

和相位控制字并送给FPGA。这样,需要高速运行的电路均由FPGA实现,大大减轻了对MCU速度的要求。且输出信号频率切换时间短,输出信号频率稳定度高,输出信号的频率和相位可以快速程控切换,输出相位可连续改变,可编程以及灵活性大的优点。此方案的缺点就是对硬件要求高,成本高等。

采用FPGA波形发生器设计方案综合了方案三的所有优点,而且此方案用软

件来实现方案三中用硬件实现的功能,具有简单易操作的优点也大大的降低了成本。由次可见,该方案更具有可行性,而且能很好地体现技术的先进性。

7

邵阳学院毕业设计(论文)

第2章 基于FPGA波形发生器电路设计

第2.1节 波形发生器电路原理

波形发生电路主要由时钟电路、FPGA控制电路、D/A转换电路、集成运放、低通滤波电路五部分组成。利用FPGA实现波形发生器的工作原理如下:时钟脉冲产生一个50Mhz的固有频率,送往FPGA目标芯片,用LPM-ROM来存储FPGA中的波形数据,它所占的存储容量小,转换速度快,FPGA中的波形发生控制电路向波形数据ROM发出地址信号,按照硬件描述VHDL语言输出的时序关系,从数据线输出相应波形数据,地址变化的越快,输出数据的速度越快,然后通过D/A转换对数据进行处理。D/A负责将ROM输出数据转换成模拟信号,DA转换的电流信号通过集成运放电路转换成电压信号,集成运放接12V电压作为驱动低通滤电路电压,模拟信号通过低通滤波后,可在示波器观察到光滑的正弦波,电路原理图2.1

所示。

1K1.2K1K77152.7K76STATUSTMS5755U2CONFTCKTDIU1I/O24I/O25I/O26I/O27I/O28I/O29I/O30I/O313947484950515253765416151413 D0 D1/CSFBIOUT1IOUT22911125.1KU31234-128+12AOUT7.2KHDR1K74TDOEPF10K10 CLK0VCC446GND109876D2D3D4D5D6D712345765103C1+51.5K820VCC18WR217XFER1/cs3VRGND10VCCGNDTL08210.1μC22U41234DAC0832 +5TO-12+5图2.1 波形发生电路原理图

第2.2节 单元电路设计

2.2.1 D/A电路设计 (1)D/A转换电路

DAC0832可编程数模转换器是一种常用的电流输出型的8位数模转换电路,

本次设计采用这种D/A转换器。DAC0832在波形发生器电路如图2.2所示:

8

邵阳学院毕业设计(论文)

数据总路线U1765416151413D0D1D2D3D4D5D6D7/CSFBIOUT1IOUT229111218171310+1251PF23 81OUT820WR2XFER/csVRGNDVCCGNDDAC0832+5VCC-12 4TL0821/1

图2.2 DAC0832及外围电路

在图2.2中,CS、WR1、WR2、XFER均接地,ILE接高电平。为了保证电压幅度输出,选用了TL0821构成稳幅电路,TL0821是一款低功耗、高速、宽带运算放大器,具有很强的大电流驱动能力。(实际电路测试表明,当负载为100Ω,输出电压峰值为10V时,带宽大于500KHz,幅度变化小于1。)稳幅电路主要是将

DAC0832的输出电流转变为输出电压,为滤波电路提供电压信号。

(2)D/A转换原理

本次设计采用的是DAC0832可编程转换器,与DAC0809模数转换器的100s模数转换速度相比,DAC0832数模转换器的输出电流建立时间只需1s。因此,在可编程DAC0832数模转换器上没有设计转换完成查询标志或转换完成中断请求输出信号,不能够采用查询等待方式或者中断响应方式启动DAC0832数模转换器的数模转换过程,只能够使用直接控制方式启动DAC0832数模转换器的数模转换操作。DAC0832的内部结构图如图2.3所示

DI7

DI0D7Q7UREFDAC寄存器(8)DAC寄存器(8)IOUT1IOUT2输入锁存器(8)D0Q0LE1RFBLE2LIECSWR1WR2AGNDVCCDGND图2.3 DAC0832的内部结构图

下面详细介绍在本设计中应用到的8位数据宽度的DCA0832转换器内部结构与引脚功能。

9

邵阳学院毕业设计(论文)

DAC0832的内部有三部分组成,“8位输入寄存器”用于存放CPU送来的数

字量,使输入数字量得到缓冲和锁存,由LEI加以控制。“8位DAC寄存器”用于存放待转换数字量,由LE2控制。“8位D/A转换电路”由8位T形电阻网和电子开关组成,电子开关受“8位DAC寄存器”输出控制,T形电阻网能输出和数字量成正比的模拟电流。所以说,DAC0832需要外接集成运放才能将电流转变成输出电压。“8位输出寄存器”和“8位DAC寄存器”用以实现两次缓冲,这样可以提高转换速。

(3)工作方式 由于DAC0832内部有两级缓冲寄存器,所以有三种工作方式可供选择:

① 直通工作方式 WR1、WR2、XFER及CS接低电平,ILE接高电平。即不用写信号控制,外部输入数据直通内部8位D/A转换器的数据输入端。

XFER接低电平,② 单缓冲工作方式 WR2、使8位DAC寄存器处于直通状态,

输入数据经过8位输入寄存器缓冲控制后直接进入D/A转换器。

③ 双缓冲工作方式 两个寄存器均处于受控状态,输入数据要经过两个寄存器缓冲控制后才进入D/A转换器。这种工作方式可以用来实现多片D/A转换器的同步输出。

(4)引脚功能

DAC是由双缓冲寄存器和R-2R梯形D/A转换器组成的CMOS 8位DAC

芯片。采用DAC0832采用20脚双列直插式封装,与TTL电平兼容。对应的引脚功能如图2.4所示:

CSWR1AGND1234567891020191817161514131211VCCIELDI3DI2DI1LSBDI0UrefRFBDNGDWR2XFERDI4DI5DI6DI7MSBIOUT1IOUT2图2.4 DAC0832引脚排列图

数字量输入线DI0~DI7常和CPU数据总路线相连,用于输入CPU送来的待转换数字量。DAC引脚功能说明如表2-1所示:

10

邵阳学院毕业设计(论文)

表2-1 DAC引脚功能

引脚 功能说明 信号输入端 写信号1,低电平有效 DAC电流输出端 写信号2,低电平有效 传送控制信号,低电平有效 反馈电阻,是集成在片外的外接反馈电阻 基准电压(-10~+10V) 电压源(+5~+15V) 模拟地 数字地 输入寄存器允许,高电平有效 D0D7 WR1 IOUT1,IOUT2 WR2 XFER RFB UREF VCC AGND DGND ILE 控制线:CS为片选线,ILE为允许数字量输入线,XFER为传送控制输入线,

WR1、WR2为两条写命令输入线,WR1用于控制数字量输入到输入寄存器,当ILE、

可将数据写入8位输入寄存器。当WR2CS、WR1均有效时,WR2用于控制转换时间,有效时,在XFER为传送控制信号作用下,可将锁存输入寄存器的8位数据送到DAC寄存器。WR1和WR2的脉冲宽度要求不小于500ns。

输出线:RFB为集成运放的反馈线,常常接到集成运放的输出端。IOUT1和IOUT2为两条模拟电流输出线。IOUT1+IOUT2为一常数,若输入数字全为“1”时,则IOUT1取最大值,IOUT2取最小值;若输入全为“0”时,IOUT1取最小值,IOUT2取最大值。

电源线:Vcc为电源输入线,可在+5~+15V范围内选择。Uref为参考电压,一般在-0~+10V范围,由稳压电源提供。DGND为数字量地线,AGND为模拟量地线。

(5)转换公式

为了将模拟电流转换成模拟电压,需把DAC0832的两个输出端IOUT1和IOUT2分别接到运算放大器的两个输入端上,经过一级运放得到单级性输出电压UA1。D/A转换单级性输出电路图如图2.2所示,该电路为8位数字量D0D7经D/A转换器转换为单级性电压输出。 转换公式如下:

一级运放的输出电压:UA1VREFD (2-1) 2811

D为数字量的十进制数,即DD727D626...D121D020

邵阳学院毕业设计(论文)

当VREF=5V时,DAC0832的转换表如表2-2所示。

表2-2 DAC0832转换表

参考 电压 输入数据 二进制 输出电压 十进制 十六进制 单级性输出 VREF D7 D6 VREF D7 D6 VREF D7 D6 VREF +5V 0 1 1 0 0 1 +5V 0 1 1 0 0 1 +5V 0 1 1 0 0 1 +5V D7 0 1 1 D6 0 0 1 2.2.2 滤波电路设计

滤波器是一种能使有用信号频率通过,同时抑制无用频率成分的电路,广泛应用于电子、电气、通信、计算机等领域的信号处理电路中。滤波器的种类很多,在本次设计中用到集成有源滤波器。集成有源滤波器是由集成运放和电阻电容等器件组成的。随着电子技术、集成电路技术的迅速发展,集成有源滤波器在

R1Uin103R25.1K7.2K675AOUTTL0821/2许多领域得到广泛应用。 图2.5 滤波电路 在本次设计中,我们要滤除的频率分量主要是D/A转换器所产生的高频分量,与我们所要保留的信号频率相差很远,因此相对来说,滤波器在通带内的平坦程度对我们来说比其衰减陡度更为重要,本次设计选择一阶低通滤波器电路。一阶低通滤波包含一个RC电路。一阶低通滤波电路如图2.5所示,且该滤波电路是反相放大器。 (2)滤波电路参数计算

该滤波电路是反相放大器,其传递函数为:

G(S)=

RfU0sZfsIf1=-=-=

UisZ1sI1R11sCfRfRfR1G0s1wc (2-2)

上式(2-2)中,G0为零频增益,wc=

1为截止角频率。 RfCf其频率特性为:GjwG0w1jwc (2-3)

12

邵阳学院毕业设计(论文)

幅频特性为:GG01c2 (2-4)

相频特性为:warctanc (2-5) 11,Cf,得出RfCfRfwc已知截止频率f0,先确定R的值,然后根据wc=

电容的值,由电容值求得电阻值。滤波信号是从运算放大器的同相端输入的,所以应该选用共模输入范围较大的运算放大器。运算放大器的增益带宽应满足AodAupf0,

取Aod100Aup。由式(2-4)的幅频特性,可得到图(2-2)一阶低通滤波器的幅频特性

曲线,由图(2-3)所示的幅频特性曲线可知,一阶低通滤波器的缺点是:阻带特性衰减太慢,一般为-20dB/10out,所以这种电路只适用于对滤波特性要求不高的场合。只适合于低频信号。

2.2.3 时钟电路设计

时钟输入是波形发生器必不可少的一部分,它能为FPGA提供时钟脉冲信号,考虑到EDA开发系统时钟输入的重要性,一个是50MHz的有源晶振作为时钟信号源输入,主要用于输入大的时钟信号,为波形发生器提供基准的时钟脉冲输入。有源晶振的驱动能力强,晶振频率比较大,能达到几百兆Hz,采用有源晶振作为时钟源可以使电路的时钟扩大。

12HO-12U534VCCCLK

图2.6 有源晶振电路

HO-12系列的有源晶振采用TTL/HCMOS技术,频率范围是1000Hz-1000MHz,这里我们采用的是50MHz的有源晶振。有源晶振电路连接如

图2.6所示:

13

邵阳学院毕业设计(论文)

2.2.4 下载电路设计

电可擦除编程工艺的优点是编程后信息不会因掉点而丢失,但编程的次数有限,编程的速度不快。对于SRAM型FPGA来说,可反复进行配置,在加电时可随时更改逻辑,但掉点后芯片中的信息丢失,每次上电时,必须重新载入信息,下载信息的保密性也不如前者。CPLD编程和FPGA配置可以使用专用的编程设备,也可以使用下载电缆。如ALTERA的ByteBlaster(MV)并行下载电缆,连接PC机的并行打印口和需要编程或配置的器件,并与MAX+PlusII配合可以对ALTERA公司的多种CPLD、FPGA进行配置或编程。ByteBlaster(MV)下载电缆与ALTERA器件的接口一般是10芯的接口,其中ByteBlaster(MV)与计算机并口连接。MV即混合电压的意思。引脚对应关系如图2.7所示,10芯连接信号如表2-3所示。

13579246810图2.7 10芯片下载口

表2-3 10芯接口各引脚信号名称

模式 PS 1 DCK 2 GND 3 CONF_DONE 4 VCC 5 6 7 8 9 10 nCONFIG _ nSTATUS _ DATA0 GND 用Altera的ByteBlaster(MV)并行下载电缆,连接PC机的并行打印机口和需要编程的器件,在线配置FPGA,调试非常的方便。基于SRAM LUT的FPGA器件,由于是易失性器件,以ICR(In-Circuit Reconfigurability)即在线可重配置方式代替在线系统可编程(ISP)。电路可重配置是指允许在器件已经配置好的情况下进行重新配置,以改变电路逻辑结构和功能。在利用FPGA进行设计时可以移用FPGA的ICR特性,通过连接PC机的下载电缆快速地下载设计文件至FPGA进行硬件验证。PS被动串行模式(MSEL1=0、MSEL0=0),PPS被动并行同步模式(MSEL1=1、MSEL0=0),PSA被动串行异步模式(MSEL1=1、MSEL0=0),

PPA被动并行异步模式(MSEL1=1、MSEL0=1),JTAG模式(MSEL1=0、MSEL0=0)。FPGA芯片PS模式配置电路如图2.8所示

14

邵阳学院毕业设计(论文)

VCCVCCGNDFLEX 10K系列器件VCCVCCVCCMSEL0MSEL1nCEDCLKCONF_DONEnSTATUSDATAnCONFIGGND引脚1VCCByteBlaster10芯接口GND

图2.8 ByteBlaster(MV)配置FPGA

第2.3节 芯片简介

2.3.1 FLEX10K组成及特点

FLEX10K主要由嵌入式阵列块、逻辑阵列块、快速通道(FastTrack)和I/O

单元四部分组成。其中逻辑阵列块由多个逻辑单元构成。

FLEX10K系列采用重复可构造的CMOS SRAM工艺,把连续的快速通道互连

与独特的嵌入式阵列结构相组合,同时也结合了众多可编程器件的有点来完成普通门阵列的宏功能。每个FLEX 10K器件包括一个嵌入式阵列和一个逻辑阵列,它能让设计人员轻松地开发出存储器、数字信号处理器以及特殊逻辑等强大功能于一身的芯片。该芯片具有的多电压功能可以全面支持以不同电压工作的产品。FLEX10K10主要特点如下:

(1)它是工业世界的第一种嵌入式可编程逻辑器件,提供了在单个器件中的系统集成,具有实现宏函数的嵌入式阵列和实现普通功能的逻辑阵列;

(2)高密度,它具有10000—150000个可用门,高达40960位内部RAM; (3)系统支持多电压IO接口;

(4)低功耗,系统维持状态小于0.5mA;

(5)灵活的内部连接,快速、可预测连线延时的快速通道连续式分布结构; (6)增强功能的IO引脚,每个引脚都有一个独立的三台输出使能控制和每个

IO引脚都有漏极开路选择;

(6)具有快速建立实践和时钟到输出延时外部寄存器。

15

邵阳学院毕业设计(论文)

2.3.1 FLEX10K引脚简介

(2)EPF10K10有84I/O口,其丰富的IO资源,适用于速度要求高或需要较多的I/O引脚电路或系统中适用。其I/O引脚能够兼容5V 3.3V 2.5V等接口标准,具体的IO引脚与对应的引脚序号如表2-4所示:

表2-4 I/O引脚对应的引脚序号

引脚名称 引脚编号 引脚名称 引脚编号 引脚名称 引脚编号 引脚名称 引脚编号 I/O7 I/O8 I/O9 I/O10 I/O11 I/O12 I/O13 I/O14 I/O15 I/O16 16 17 18 19 21 22 23 24 25 27 I/O17 I/O18 I/O19 I/O20 I/O21 I/O22 I/O23 I/O24 I/O25 I/O26 28 29 30 35 36 37 38 39 47 48 I/O27 I/O28 I/O29 I/O30 I/O31 I/O32 I/O33 I/O34 I/O35 I/O36 49 50 51 52 53 54 58 59 60 61 I/O37 I/O38 I/O39 I/O40 I/O41 I/O43 I/O44 62 64 65 66 67 71 72 FLEX 10K10主要由84个引脚组成,各引脚对应的引脚名如图2.9所示:

111098765432184IN1I/O49/nRSDEV_OEI/GON48DIIN/nWSNT4VCCINTI/O47/CSI/O46/nCSI/O6/DATA1I/O5/DATA2I/O4/DATA3I/O3/DATA4I/O2/DATA5I/O1/DATA6I/O0/DATA7DEV_OEGCLCK1TCCONKF121314151617181920212223242526272829303132nCEO 838281807978777675VCCINTnCONFIGGNDINT

333435363738394041424344454647484950515253图2.9 FLEX 10K10芯片

16

I/O25I/O26I/O27I/O28I/O29I/O30I/O31 GCLK2IN2VCCINTGNIN3DINTI/O20I/O21I/O22I/O23I/OVC2C4INTDATA0DCLKnCETDII/O7I/O8I/O9I/O10VCCINTI/O11I/O12I/O13I/O14I/O15GNDINTI/O16I/O17I/O18I/O19MSEL0MSEL1A L T E R AFLEXEPF10K10LC8484-PIN PLCC TDOI/O45/CLKUSRI/O44I/O43I/O42/RDYnBSYINTI_DONEGNDINTI/O41I/O40I/O39I/O38VCCINTI/O37I/O36I/O35I/O34I/O33TMSnTRSTnSTATUSI/O32747372717069686766656463626160595857565554邵阳学院毕业设计(论文)

(3)FPGA的配置有多种方式,每种配置方式是由FPGA芯片上特殊功能引脚决定的, FPGA配置引脚功能如下:

MSEL0、MSEL1:输入,(0,0)为串行配置或使用配置器件模式;(1,0)

为并行同步模式;(1,1)为并行异步模式。

nSTATUS:双向集电极开路,上电后被器件拉低,在5uS之内,被器件释放,

(当使用一个专用配置器件时,专用加载器件将控制这个脚为低长达200ms。)这个管脚必须通过一个1K电阻上拉到VCCIO; 如果在配置过程中,如有错误发生,本管脚被器件拉;如果在配置或初始化过程中,有一个外部的信号源驱动本管脚为低,则器件进入一个错误的状态;在配置或初始化之后,驱动本管脚为低,不会影响器件。但是,如果使用专用配置器件,驱动本管脚低将引起配置器件试图去配置FLEX 器件。

nCONFIG:输入,配置控制引脚,由0-1的跳变开始配置,由1-0跳变则复位

器件;当设定本管脚为0时,所有I/O为三态。

CONF_DONE:双向集电极开路,状态输出:在配置之前和配置过程中,器

件驱动本管脚为0,一旦所有配置数据都被接收并没有错误发生,则初始化时钟周期开始时器件释放本管脚;状态输入:在所有数据被接收后,本管脚为高电平,器件初始化,然后进入用户模式;本管脚必须通过一个1K的电阻上拉到VCCIO外部的信号源可以驱动本管脚为低,来延迟初始化的过程,当使用一个配置器件进行配置除外,在配置以及初始化之后,驱动本管脚为低, 不影响配置器件。

DCLK:输入,时钟输入,用于从一个外部信号源输入时钟数据进入器件,在

串行异步模式或并行异步模式配置中, DCLK应当被拉高,不能悬空。

nCE:输入,低有效芯片使能,本管脚使用低电平使能器件来允许配置,对于

单芯片配置应当被固定为低电平,在配置以及初始化过程和用户模式,本管脚必须固定为低电平;在级联时,第一片的nCE接地,前一片的nCEO接后一片的nCE。

nCEO:输出,当设备配置完成后被驱动为低电平。在多器件配置过程中,这

个管脚用来连接后面器件的nCE引脚,最后一片的nCEO悬空。

nRS:输入,读选通输入:对于APEX II、 Mercury、ACEX 1K、 APEX 20K

和 FLEX 10K器件低电平表示在DATA7引脚输出的是RDYnBSY信号;对于

FLEX 6000 器件,低电平表示在DATA引脚输出的是RDYnBSY信号,如果 nRS

管脚没有使用,应该被固定连接到高电平。

RDYnBSY:输出,忙闲信号:高电平表示器件准备好来存取另外字节的数据;

高电平表示器件没有准备好接收另外字节的数据。

17

邵阳学院毕业设计(论文)

nCS、CS:输入,片选择信号:nCS为低电平且CS为高电平器件被使能可以进行配

置,如果只有一个芯片选择输入被使用,那么另外一个必须被激活,在配置和初始化的过程中,nCS和CS管脚必须被处于有效状态。

CLKUSR:输入,可选的用户时钟输入信号:用在初始化过程中;(注:在初

始化过程中可以继续使用配置数据用的DCLK,或者切换到用CLKUSR)。

DATA[7..1]:数据输入:并行的字节流数据通过DATA[7..1]与DATA0输入

器件。

DATA0:输入,数据输入:在串行配置模式下比特流数据通过DATA0写入器

件。

DATA7:输出,在FPGA配置方式,DATA的数据是被RDYnBSY信号通过

电平触发方式在nRS信号已经被锁存之后写入。

INIT_DONE:输出集电极开路,状态管脚:可以被用来指示器件已经被初始

化或者已经进入用户模式;在配置过程中INIT_DONE 引脚保持低电平,在初始化之前和之后,INIT_DONE引脚被释放,被上拉到VCCIO通过一个外部上拉电阻,因为INIT_DONE在配置之前是三态,所以被外部的上拉电阻拉到高电平。因此监控电路必须能够检测一个0-1的跳变信号。

DEV_OE:输入,此管脚需要在编译设置中设定才能实现第一功能,缺损是第

二功能;当本引脚被拉低,所有I/O都是三态。当本引脚被拉高,所有I/O在正常的程序控制状态。

18

邵阳学院毕业设计(论文)

第3章 基于FPGA波形发生器的VHDL实现

完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据

ROM和D/A。在FPGA的顶层文件中,计数器通过外来的控制信号和高速时钟信

号向波形数据ROM发出地址信号,输出波形的频率由发出的地址信号速度决定;固定频率扫描出地址时,输出波形是固定频率,而当以周期性变化方式扫描输出地址时,则输出波形为扫描信号。波形数据ROM中存有发生器的波形数据。基于FPGA波形发生器的VHDL的实现经过以下几个过程,首先利用MATLAB软件编写波形查找表程序生成波形查找表获得波形数据,利用MAX+plusⅡ软件依次建立波形数据文件存储在FPGA的ROM内,再用VHDL语言进行顶层文件的描述,经过编译、仿真、下载和测试即可以得到波形了。以正弦波实现为例,从波形数据生成到波形实现的全过程进行论述与说明。

利用MATLAB软件编写正弦波形查找表程序,输入不同的采样点、幅值在

MATLAB软件运行环境下进行程序编译,从而生成波形查找表获取不同的波形数

据,下面选用64个点、幅值为1与1024个点、幅值为1的波形进行观察与对比。

图3.1.1 64采样点的波形图 图3.1.2 1024个采样点的波形图

如图3.1.1和图3.1.2为MATLAB仿真的正弦波图形。两组波形的波形参数都相同:频率f=15,幅值A=1,由以上两个波形可以很直观地观察波形输出与采样点的关系。图3.1.1为64个采样点的波形图,波形曲线不光滑误差大;图3.1.2为1024个采样点的波形图波形曲线相当光滑,精确度高,基于这个原理为了得到精度更高的波形,多取采样点,由此提高波形发生器的精度。表3-1为64个采样点的波形数据查找表。运行得出的波形数据如下(以下的数据格式只是为了节省篇幅,实际运行结果每一数据组占一行):

19

邵阳学院毕业设计(论文)

表3-1 64个采样点的波形数据查找表

序号 0 1 2 3 4 5 6 7 8 9 0A 0B 0C 0D 0E 0F 数据 255 254 252 249 245 239 233 255 217 207 197 186 174 162 150 137 序号 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 数据 124 112 99 87 75 64 53 43 34 26 19 13 8 4 1 0 序号 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 数据 0 1 4 8 13 19 26 34 43 53 64 75 87 99 112 124 序号 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 数据 137 150 162 174 186 197 207 217 225 233 239 245 249 252 254 255 根据以上MATLAB获取的波形数据,用定制FPGA内部ROM与VHDL语言结合方式来实现波形数据的读取。以下将对这方法进行详细的分析与说明生成正弦波的全过程。最后利用MATLAB生成一组频率f=15,幅值A=2的波形数据与本次仿真的结果进行对比与分析。

第3.1节 波形发生器VHDL描述

以下将对正弦波形数据建立、LPM-ROM定制和正弦信号发生器的详细步骤。 (1) 波形数据文件的建立

正弦波数据存储器ROM地址线宽度为6,数据线宽度为8,在FPGA中用VHDL硬件描述语言实现存储空间的扩展,正弦波波形数据由64点构成,在MATLAB环境下,通过采样获取,关于采样数据的获取方法,在本文的第四章有详细说明。波形数据在FPGA的时序控制下,经DAC0832进行D/A转换,实现将数字信号转化成模拟信号,

20

邵阳学院毕业设计(论文)

模拟信号通过放大,滤波后,可实现波形的还原。下面以64个点频率、f=15、幅值

A=1的正弦波波型数据存储到sindata.mif文件里。

波形数据文件:

WIDTH=8; DEPTH=64;

ADDRESS_RADIX=HEX; DATA_RADIX=DEC; CONTENT BEGIN

00:255;01:254;02:252;03:249;04:245;05:239;06:233;07:255;08:217;09:207;0A:197;0B:186;0C:174;0D:162;0E:150;0F:137;10:124;11:112;12:99;13:87;14:75;15:64;16:53;17:43;18:34;19:26;1A:19;1B:13;1C:8;1D:4;1E:1;1F:0;20:0;21:1;22:4;23:8;24:13;25:19;26:26;27:34;28:43;29:53;2A:64;2B:75;2C:87;2D:99;2E:112;2F:124;30:137;31:150;32:162;33:174;34:186;35:197;36:207;37:217;38:225;39:233;3A:239;3B:245;3C:249;3D:252;3E:254;3F:255; END;

其中WIDTH=8,表示数据输出位宽是8;DEPTH=64,表示共有64个8位数据点;ADDRESS_RADIX=HEX,表示地址信号用十六进制数表示;DATA

_RADIX=DEC,表示输出数据是十进制数设文件名为ipm.mif,存盘路径 E:\\hyq\\lpm_rom2\\sindata.mif。以上所示的数据格式只是为了节省篇幅,实用中每

一数据组占一行。

(2) LPM_ROM定制

①进入MAX+plusⅡ,选菜单File→MegaWizardPlug-InManager,选择“Creat a new”,然后按“Next”键,进入图3.2所示的界面。选择LPM_ROM;最后在Browse下栏中键入路径与输出文件名:d:\\hyq\\lpm_rom2\\sindata.vhd。

21

邵阳学院毕业设计(论文)

图3.2 定制LPM_ROM文件

②选择ROM数据位宽度为8,地址线宽度为6,即设置此ROM能储存8位二进制数据共64个,通过在图3.3所示窗口的“Browse”钮,找到ROM中的加载文件路径和文件名:E:\\hyq\\lpm_rom2。

图3.3 加入初始化文件

③在MAX+plusⅡ中打开已制定的ROM文件,观察文件中的实体表达。

LIBRARY ieee;

USE ieee.std_logic_1164.all; ENTITY lpm IS

22

邵阳学院毕业设计(论文)

PORT ( address

inclock q

: IN STD_LOGIC_VECTOR (5 DOWNTO 0); : IN STD_LOGIC ;

: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));

END lpm;

ARCHITECTURE SYN OF lpm IS

SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0); COMPONENT lpm_rom GENERIC ( );

PORT (address: IN STD_LOGIC_VECTOR (5 DOWNTO 0);

inclock : IN STD_LOGIC ; q

: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));

lpm_width

: NATURAL; : NATURAL;

: STRING; : STRING;

lpm_widthad lpm_outdata lpm_file

lpm_address_control

: STRING

END COMPONENT; BEGIN

q <= sub_wire0(7 DOWNTO 0); lpm_rom_component : lpm_rom GENERIC MAP (

LPM_WIDTH => 8, LPM_WIDTHAD => 6,

LPM_ADDRESS_CONTROL => \"REGISTERED\LPM_OUTDATA => \"UNREGISTERED\LPM_FILE => \" E:\\hyq\\lpm_rom2/lpm.mif\"

);

PORT MAP (

address => address,

23

邵阳学院毕业设计(论文)

);

inclock => inclock, q => sub_wire0

END SYN;

第3.2节 系统仿真

3.2.1 文件编译

将当前设计设定为工程和选定目标器件。选择菜单File/Project/Set Project to

Current File设为当前文件,当前的设定工程文件被指定为sindata.vhd,可以看到MAX+plusⅡ主窗口左上方路径指向为E:\\hyq\\lpm_rom2.sindata.vhd。

在设定工程文件后,应该选择用于编程的目标器件芯片,以便能在编译后得到有针对性的时序仿真文件。选择菜单Assign→Device…选择器件型号,在弹出的对话框中的“Device Family”下拉列表中选择需要器件FLEX10K。如图3.4所示,为了选择EPF10K10LC84-4器件,不要选中次栏下方的“Show Only Fastest

Speed Grades”选项,以便显示出所有速度级别的器件。完成器件选择后,按“OK”

按钮。

图3.4 选定当前工程的目标器件

选择VHDL文本编辑版本号。选择MAX+plusⅡ菜单Compiler命令项,出现编译窗口后,根据自己输入的VHDL文本格式选择VHDL文本编辑版本号。选择所示界面上方的Interfaces→VHDL Netlist Reader Settings,在弹出的窗口中选择“VHDL1993”,由于在10.0以后的版本的MAX+plusⅡ中嵌入了用于优化

FLEX10K和ACEX1K系列适配的算法,编辑前关闭这一算法。方法是在进入编

24

邵阳学院毕业设计(论文)

辑窗口(图3.4)后,选择Processing→Fitter Setting,进入如图3-8所示的窗口,消去最上面的“Use Quartus Fitter…”项。

按“Start”按钮,运行编译器。单击如图3.5所示窗口左下方的“Locate”错误定位按钮,就可以在出现的文本编译窗口中闪动的光标附近或上方找到错误所在。纠正后再次编辑,直至排除所用错误。

图3.5 确定设计文件中的错误

3.2.2 功能仿真

实现时序仿真步骤如下:首先,选择菜单File→新建New,在选择“New”对话框中的“Waveform Editer file”波形仿真选项,打开波形编辑窗口。之后弹出仿真波形编辑窗口。波形编辑窗口的上方选择菜单引脚“Node”,在下拉菜单中选择输入信号节点项“Enter Nodes form SNF…”。单击“List”按钮导入所有的信号结点,这时左列表框将列出该设计的所有信号节点。将节点信号调入仿真波形编辑器窗中。这时可以利用中间的“=>”按钮将需要观察的信号选到右边的窗口中,然后单击“OK”按钮。

然后设定仿真时间长度。选择File→End Time…,在End Time对话框中选择适当的仿真时间域,选50μs以便有足够长的观察时间。最后为输入信号加上激励电平并运行仿真器观察波形。为输入信号inclock,address分别加上时钟信号,最后选择菜单File→Save As,按“OK”按钮即可。再选择主菜单“MAX+plusⅡ”中的仿真器项“Simulator”单击弹出的仿真对话框中的“Start”按钮。图3.6即为仿真运算完成后的时序波形。

25

邵阳学院毕业设计(论文)

图3.6 定制的ROM文件的仿真波形

在MAX+plusⅡ创建内部的ROM空间,调入已生成的正弦波数据

sindata.mif文本文件,并对已定制的ROM文件进行编译后仿真,仿真后所得到的

波形时序如上图所示,当来一个时钟信号脉冲inclock立即从对应的输入信号

address取出数据送往q输出。例如:当时钟信号inclock为高平且输入地址信号为00时,输出数据q正好对应FF(255),与创建sindata.mif文本文件的正弦波数据

一一对应。这表明,通过仿真,数据数据列表中取出数据符合波形发生器的需要。

正弦信号发生器的顶层设计

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity singt is port( clk: in std_logic;

data: in std_logic_vector(11 downto 0); dout:out std_logic_vector(7 downto 0)); end;

architecture dacc of singt is component sindata

port(address:in std_logic_vector(5 downto 0); inclock:in std_logic;

q:out std_logic_vector(7 downto 0));

26

邵阳学院毕业设计(论文)

end component;

signal q1:std_logic_vector(5 downto 0); signal d: std_logic_vector(7 downto 0); signal fss:std_logic;

signal count12: std_logic_vector(11 downto 0); begin

com1: process(fss) begin

if fss'event and fss ='1' then q1<=q1+1; end if; end process;

com2:process(clk,data) begin

if clk'event and clk='1' then

if count12=\"111111100000\" then count12<= data; fss<='1'; else count12<=count12+1; fss<='0'; end if; end if;

end process com2;

u1: sindata port map(address=>q1,q=>dout,inclock=>clk); end;

其中调用了3.1/(2)/③节中构成的ROM模块 (1)顶层文件的仿真波形

按照3.1.2(4)中的方法分别对3.1.3中的文件进行建立文件夹、输入设计项目VHDL代码、存盘、设计项目为当前文件夹、选择目标器件、启动编译、建立仿真波形文件步骤。再进行波形仿真、引脚锁定并编译、编程配置、硬件测试等过程。选择主菜单“MAX+plusⅡ”中的仿真器项“Simulator”单击弹出的仿真对话框中的“Start”按钮。图3.7即为仿真运算完成后的时序波形。

27

邵阳学院毕业设计(论文)

图3.7 正弦发生器仿真波形

根据顶层文件的仿真波形可以从中看出。由外部时钟信号clk与频率控制信号

data共同控制dout波形数据的传送。clk所选的时钟输入信号为50Mhz,在高速的clk的扫描频率输入情况下,当来一个上升沿触发,计数器count12计数器开始计数,data在给定的初始地址每次加1,一直加到内部信号count12为fe0H时,内部信

号Fss置1,count12不为fe0H,信号Fss为0,由顶层的VHDL硬件描述语言可知,当Fss为上升沿时,从定制的内部ROM里取一个数据送住引脚Dout作为信号输出。从上面仿真的波形结果可以看出。信号的输入输出的时序流程达到了

VHDL描述的目的。

(2) 资源分配

选择左上角的“MAX+plusⅡ”主菜单,并单击其中的菜单项“Floorplan Editor”,将弹出芯片资源编辑窗口,该窗口显示了目标器件内部的逻辑资源分布情况和设计项目对资源的利用情况。资源分配情况如图3.8所示:

图3.8 芯片资源编辑窗口

28

邵阳学院毕业设计(论文)

对于EPF10K10LC84-4,其中共有216个小柱,即逻辑阵列块LAB,每个LAB有8个小方块,每个小方块表示一个逻辑宏单元(Logic Cell),因此共有1728个LC(即LE)。带颜色的小方块表示已经被占用的资源,其数量恰好等于适配报告中给出的数量。稍大的方块(含8个小方块)表示器件中内嵌的RAM单元EAB。共12个EAB含2048个存储位单元,总共24576个存储位。

(3)引脚琐定

以上的仿真测试正确无误,将设计编程下载到选定的目标器件中进行进一步的硬件测试,以便最终了解设计的正确性。根据模式一与模式五组合的硬件电路如附图1所示,查得引脚锁定如表3-1所示:

表3-1引脚锁定表

模式 Input Input Input Input Input Input Input Input Input Input Input 信号 Clk Data0 Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Data8 引脚号 2 5 6 7 8 9 10 11 16 17 18 模式 Input Input Output Output Output Output Output Output Output Output 信号 Data9 Data10 Dout0 Dout1 Dout2 Dout3 Dout4 Dout5 Dout6 Dout7 引脚号 19 21 39 47 48 49 50 51 52 53 首先选择主菜单MAX+plusⅡ,再单击菜单项“Floorplan EdItor”然后选择上方的“Layout”菜单,在下拉菜单中先消去“Full Screen”的对勾,在选择“DevIce

VIew”,进入“Layout”菜单,选其中的“Current AssIgnments Floorplan”选项,

在图3.19的“UnassIgned Nodes”列表框中将显示待锁定的信号引脚名。对clk,用鼠标将clk拖到下面芯片的2号引脚上,然后松开鼠标。同样,dout0在39号引脚上;dout1在47号引脚上;dout2在48号引脚上;dout3在49号引脚上;dout4在50号引脚上; dout5在51号引脚上; dout6在52号引脚上; dout7在53号引脚上;在锁定引脚后再通过MAX+plusⅡ的编译器“CompIler”,对文件重新进行编译一次,将引脚信息编入下载文件中。

29

邵阳学院毕业设计(论文)

第3.3节 下载与测试

(1)选“MAX+plusⅡ”中的“Programmer”项。弹出Programmer窗口后,选“OptIons”项中的硬件设置项“Hardware Setup”,在其下拉窗口中选择“ByteBlaster(MV)”项,其窗口如图3.9右侧所示。此编程方式对应计算机的并行口下载通道,“MV”是混合电压编程,主要指对Altera的各类芯核电压(如5V、2.5V与1.8V等)的FPGA/CPLD都能由此下载。单击“ConfIgue”,即进行编程下载。

图3.9 设置编程下载方式

(2)在实验仿真装置上,选实验电路模式1(附录1)后,用短路帽设定频率,并把左上角的电源电源开关拔到12V档。拔码开关“8”向下拔就选选择了波形滤波输出,向上拔则表示未经滤波输出,在输出波形时可以看出。

(3)如图3.10所示,进入下载窗口,打开EDA实验开发系统的电源,单击“ConfIgure”下载,即向EPF10K10LC84-4下载已成功编译的配置文件,如果硬件电路结构没有问题,配置完成的信息提示“ConfIguratIon Complete”,表示已成功下载。在成功下载之后,利用示波器在EDA实验开发系统的输出端进行测试。 通过存储示波器的观察结果如图3.11所示:

30

邵阳学院毕业设计(论文)

图3.10 通过JTAG口向FPGA下载SOF文件

(4)示波器观察

在FPGA内部ROM的sindata.mif文本输入不同的波形数据,通过VHDL硬件描述语言成功的编译、仿真、下载后,在存储示波器上观察得到不同频率的波形。 输出波形的频率为786.8Hz,峰-峰值为6.8V的正弦波形。如图3.11所示

图3.11 示波器观察

31

邵阳学院毕业设计(论文)

总 结

本课题的目的是用FPGA技术实现波形输出。到目前为止,我们设计的FPGA芯片己经通过了实验验证,各方面的指标均可以满足课题要求。在本课题中,我们在原有基础上采用CPLD来自行设计一些所需要的芯片,同时在保证波形指标的基础上大胆的采用一些新的设计思想,既缩短了开发周期,减小了电路板空间,又节省了成本。目前,课题已完成主要部分的实验验证,并且在示波器上观察到正弦波形输出。本文结合国内外波形发生器的发展状况,对直接数字波形合成技术的理论、设计方法、电路实现以及信号的调理电路进行了深入的研究。

归纳起来主要做了如下几方面的工作:1、采用VHDL语言来扩展内部的ROM存放波形数据。并且通过纺真。2、设计了数模转换电路。3、设计低通滤波电路;4、编写VHDL控制主程序以输出波形数据。

从整体上看来,本次设计的指标基本上满足课题要求,但同时也存在着不足和需要进一步改进的地方,主要体现在:1、本次设计只限于一种正弦波形的输出,2、任意波形数据获取在算法还存在很大困难,3、由于技术限制,希望以后能使波形输出频率上一个更高台阶。

通过毕业课题设计,掌握了直接波形合成技术的原理及设计要领,学习了并掌握可编程逻辑器件电路的设计,掌握了示波器的用法等方面的应用,受益匪浅,为我今后的工作和学习奠定了坚实的基础。

32

邵阳学院毕业设计(论文)

参 考 资 料

[1] 潘松,黄继业。EDA技术实用教程。北京科学出版社。2005 [2] 潘松。EDA技术实用教程。科学出版社。2006.3

[3] 姜立东。VHDL语言程序设计及应用。北京邮电出版社。2001 [4] SOPC开发装置使用说明书。长沙科瑞特公司。

[5] 谭博学,苗汇静。集成电路原理及应用。电子工业出版社。2005 [6] 宋万杰等,CPLD技术及其应用,西安电子科技大学出版社。2000

[7] 侯伯亨等,VHDL硬件描述语言与数字逻辑电路设计,西安电子科技出版社,2001 [8] 徐志军等,CPLD/FPGA的开发与应用,电子工业出版社,2004 [9] 彭楚武。微机原理与接口技术。湖南大学出版社。2004

[10] 欧伟明等。电子信息系统设计。西安电子科技大学出版社。2005

[11] 鲁平等,基于EPLD技术的PCI总线接口设计,《电子技术应用》,2001.5 [12] 克柱等,基于FPGA的PCI接口设计,《电子技术应用》,2001.9 [13] 王廷才主编。电工电子技术EDA仿真实验。机械工业出版社.2003.6 [14] 刘常澍主编。数字电路与FPGA。人民邮电出版社。2004.8 [15] 金雁飞主编。数字电路与逻辑设计。治金工业出版社。2004.9 [16] 韩克主编。电子技能与EDA技术。暨南大学出版社。2005.4 [17] 张万奎主编。模拟电子技术。湖南大学出版社出版。2004.7 [18] 华成英主编。数字电子技术基础。高等教育出版社。2001.8

[19] 鹏主编。电路设计与制版Protel99入门与提高。人民邮电出版社。2005.6 [20] http://www.wanfangdata.com.cn [21] http://www.hnadl.cn

33

邵阳学院毕业设计(论文)

致谢

本文的选题、课题研究及撰写工作是在江世明副教授直接关怀和悉心指导下完成的。在大三学习期间,无论是在学业上,还是在生活上及今后的就业指导上,恩师严谨的学风、渊博的知识、执著的敬业精神和敏锐的思维对我产生了深刻的影响,使我终身受益。在此谨向两位恩师致以崇高的敬意和衷心的感谢。

在本课题的研究过程中,得到了实验指导老师姜峰松、李开南的具体指导和帮助,在此也向他们表示最诚挚的谢意。同时也对本论文所参考文献作者表示由衷的感谢。

在本论文课题的试验过程中,得到了李慧、罗鸿飞、李永枧等同学的热心帮助,在此也向他们表示深深的谢意。

34

邵阳学院毕业设计(论文)

目 录

前 言 ...................................................... 1 第1章 波形发生器方案设计 .................................... 2

第1.1节 基于模拟电路波形发生器设计方案 .................. 2 第1.2节 基于MCU波形发生器设计方案 ...................... 3 第1.3节 基于DDS技术波形发生器设计方案 .................. 3 第1.4节 基于FPGA波形发生器设计方案 ..................... 5 第2章 基于FPGA波形发生器电路设计 ........................... 8

第2.1节 波形发生器电路原理 .............................. 8 第2.2节 单元电路设计 ................................... 8

2.2.1 D/A电路设计 ................................... 8 2.2.2 滤波电路设计 .................................. 12 2.2.3 时钟电路设计 .................................. 13 2.2.4 下载电路设计 .................................. 14 第2.3节 芯片简介 ...................................... 15

2.3.1 FLEX10K组成及特点 ............................ 15 2.3.1 FLEX10K引脚简介 .............................. 16

第3章 基于FPGA波形发生器的VHDL实现 ....................... 19

第3.1节 波形发生器VHDL描述 ............................ 20 第3.2节 系统仿真 ....................................... 24

3.2.1 文件编译 ...................................... 24 3.2.2 功能仿真 ...................................... 25 第3.3节 下载与测试 .................................... 30 总 结 ...................................................... 32 参 考 资 料 ................................................. 33 致谢 ........................................................ 34 附图1

35

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务