基于FPGA的任意波形发生器设计与实现 下载本文

第三章 任意波形发生器的硬件电路设计

45

这部分电路主要由USB接口芯片、时钟电路、复位电路和系统总线组成。设计中采用了软配置方式,因此在设计中省去了E2PROM(电可擦除只读存储器)。系统总线主要由数据总线和控制总线组成,这些总线与FPGA相连。PC机就是通过这些总线给任意波形发生器发送数据和控制命令的。

3.3.6 电源电路

由于所设计任意波形发生器所需要供电电压种类比较多,有±5V,3.3V,2.5V,1.2V,因此需要专门的电源电路来提供电源的供给。在本系统中,±5V电源是由外部提供的,3.3V,2.5V,1.2V电源是由电源稳压芯片得到的。所使用的电源稳压芯片是LT1764A[22],这种电源稳压芯片具有宽输入电压范围(2.7V~20V)、低噪声(40?VRMS),高输出电流(最高可达3A)、低压降(输出3A电流时只下降340mV)等特性,并且有多种型号可供选择,包括固定输出1.5V、1.8V、2.5V、3.3V,以及1.21V~20V可调电压输出。

本系统所用的3.3V和2.5V电压是由LT1764A-3.3和LT1764A-2.5来提供的,其电路连接图如图3.20(a)所示。

(a)固定电压输出(b)可调电压输出图3.20 电源模块

图3.20(b)所示是LT1764A输出电压可调电源稳压芯片,其输出电压与电阻R1、R2存在如下关系:

?R?VOUT?1.21?1?2??IADJ?R2 式(3-9)

R1??在常温条件下(25?C),IADJ?3?A。取R2?0,R1??,在输出端就能得到约1.2V电压。

3.4 印制电路板的设计

在高速数字电路设计设计领域,信号完整性(Signal Integrity,SI)是常常需要考虑的问题,如果在这个问题上不给予足够的重视,可能造成设计的电路不能

46

基于FPGA的任意波形发生器的设计与实现

稳定工作,严重的甚至功能无法实现,这样的代价是很高的。所以在设计之初,在制作印制电路板(Printed Circuit Board,PCB)的时候,就应该充分考虑信号完整性的设计[23] [24]。

保证信号完整性,就是要使信号具有良好的物理特性(高低电平的阈值以及跳变沿的特性),防止信号产生畸变。在实际的设计中,影响信号完整性的因素比较多,如干扰、串扰、反射、振铃、地弹、衰减、开关噪声、容性负载等。在制作PCB时,为了保证信号完整性,做了以下设计:

(1)按电路的类型将电路划分为数字部分和模拟部分,在布局上将数字部分和模拟部分尽量分开,如果可行,也将高速数字部分和低速数字部分分开布局; (2)将数字地和模拟地分开,最后仅在一点相连,避免高频数字开关电流对模拟地电平造成影响,另外注意不能跨越数字地和模拟地之间的间隙进行布线,因为一旦跨越分割间隙布线,电磁辐射和信号串扰都会急剧增加;

(3)90%的元器件选用了贴片式封装,这样可以使信号的连接在PCB的同一层完成,减少过孔数量,从而减少过孔电容对高速信号的影响。相对于直插式元器件,贴片式元器件之间的连接更加进凑,减少了元器件之间的电器耦合; (4)适当加宽电源线宽度以减少其传输阻抗,另外,避免高速信号线走长的平行线,在必要的时候进行合适的端接,信号线在顶层和底层的走线尽量保持垂直,对容易产生干扰的时钟线,用地线加以隔离;

(5)在关键路径上使用了差分线传输。差分传输线能够有效地抑制噪声,布差分传输线时应注意两条线的间距要尽可能的接近,并且始终保持平行,信号线的长度要尽量保持一样,尽量在某一层走线,少用过孔;

(6)在电源供电进入电路板的入口,加上了大容量的电解电容,可以滤除电源上的不稳定晃动,并且在各个集成电路的电源输入引脚,以及参考电平引脚,都加上了合适的去耦电容。在数字集成电路的VCC端接了0.1uF的瓷片电容,在运放的每个电源端接了0.1uF的瓷片电容和10uF的钽电容。这些去耦电容尽可能地摆放在靠近芯片电源管脚的位置;

(7)当所有走线都布完以后,在电路板的两层都覆了铜,并且使覆铜分别与模拟地和数字地相连接,这样就使得电路板上的地线电阻很小,所以整个模拟地线之间的电势差就很小,整个电路板就有相对稳定的零电平。

第四章 FPGA逻辑设计

47

第四章 FPGA逻辑设计

4.1 FPGA及其开发环境简介

4.1.1 现场可编程门阵列简介

FPGA是Field Programmable Array(现场可编程门阵列)的缩写,是在PAL、GAL、PLD等可编程器件基础上进一步发展的产物。FPGA具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。FPGA的集成度很高,其器件密度从数万门到数千万系统门不等,可以完成极其复杂的时序和组合逻辑电路设计,适用于高速、高密度的高端数字逻辑设计领域。FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA的基本组成部分[25]有可编程输入/输出单元、基本可编程逻辑单元、嵌入式RAM块、丰富的布线资源、底层嵌入功能单元等。

(1)可编程输入输出单元

可编程输入输出单元(IOE)是芯片和外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配需要。为了使FPGA有更灵活的应用,目前大多数FPGA的I/O单元被设计成可编程模式,通过软件的灵活配置,可以适配不同的电气标准和物理特性;可以调整匹配阻抗特性、上下拉电阻、输出驱动电流大小等。一般来说,FPGA支持常见的电气标准有LVTTL、LVCOMS、SSTL、HSTL、LVDS、LVPECL和PCI等。

(2)基本可编程逻辑单元

基本可编程逻辑单元(LE)是可编程逻辑器件的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。每个LE包含了一个4输入的查找表(LUT)、一个带有同步使能的可编程触发器、一个进位链和一个级联链。查找表完成纯组合逻辑功能;寄存器配置相当灵活,可配置为带同/异步复位/置位、时钟使能的触发器或者配置为锁存器。

(3)嵌入式RAM块

大多数FPGA都有内嵌的块RAM(Block RAM)。FPGA内部嵌入可编程RAM模块,大大地拓展了FPGA的应用范围和使用灵活性。在本文中实现的过程中,块RAM是设计不可或缺的资源,内部RAM的使用节省了片外器件,从而节省了系统成本。FPGA内嵌的块RAM一般可以灵活配置为单端口RAM(Single Port

48

基于FPGA的任意波形发生器的设计与实现

RAM)、双端口RAM(Double Ports RAM)、伪双端口RAM(Pseudo DPRAM)、CAM(Content Adderssable Memory)、FIFO(First In First Out)等常用存储结构。

(4)布线资源

布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA内部有着非常丰富的布线资源,这些布线资源根据工艺、长度、宽度和分布位置的不同而不同的等级,有一些是全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位/置位的布线;一些叫做长线资源,用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线,也称为Low Skew信号的布线;还有一些叫做短线资源,用以完成基本逻辑单元之间的逻辑互联与布线。

(6)底层嵌入功能单元

这里所说的底层嵌入功能单元指的是那些通用程度较高的嵌入式功能模块,比如PLL、DSP、CPU等,随着FPGA的发展,这些功能模块被越来越多的嵌入到FPGA内部,以满足不同场合的要求。

在本设计中,选用的FPGA是Altera公司的Cyclone II系列的EP2C5Q208。Cyclone II是Altera公司Cyclone系列的第二代产品,由于采用了低K介质的90nm工艺制造,从而将产品成本降低30%,同时将逻辑密度提升3倍。另外,Cyclone II系列的FPGA采用了1.2V的内核电压,将功耗降到了非常低的范围。

EP2C5提供的硬件资源[12]包括了:4608个可编程逻辑单元;26个M4K RAM块,总比特数达119,808bits,可以配置成真正双端口模式,最高工频率为260MHz;13个18位×18位的嵌入式硬件乘法器,每个乘法器可配置成两个9位×9位的乘法器,硬件乘法器的最高工作频率可达250MHz;2个PLL;最多用户管脚数为142个,这些管脚可配置成58对差分通道。这些丰富的硬件资源为我们实现DDS提供了便利。

4.1.2 Quartus II 7.1集成开发环境

Quartus II 软件是Altera的综合开发工具,它集成了Altera的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。Quartus II 7.1版本几乎支持Altera现行的所有FPGA,在该集成开发环境中可以实现电路的设计、综合、适配到最后形成下载文件以及在线配置FPGA,还能对电路进行功能仿真,对适配后最终行成的电路进行时序仿真。也就是说只要有了Quartus II这个集成开发环境,就基本上可以完成Altera公司FPGA开发过程中的所有工作。另外,为了方便设计,Quartus II还提供了免费LPM模块供用户调用,如计数器、存储器、加法器、乘法器等。除了这些免费的LPM模块外,Altera公司还开发了需要有偿IP核提供

第四章 FPGA逻辑设计

49

给用户使用。这些LPM模块和IP核都大大简化了设计过程,缩短了开发周期。

Quartus II 7.1支持多种输入方式,常用的有:

(1)原理图输入:这种方法最直观,适合顶层电路的设计;

(2)硬件描述语言输入:包括AHDL、VHDL及Verilog HDL输入。采用硬件描述语言的优点易于使用自顶向下的设计方法、易于模块规划和复用、移植性强、通用性好;

(3)网表输入:对于在其他软件系统上设计的电路,可以采用这种设计方法,而不必重新输入,Quartus II支持的网表文件包括EDIF、VHDL及Verilog等格式。这种方法的优点是可以充分利用现有的设计资源。

在本章的设计中,采用的是VHDL硬件描述语言[26][27]与原理图输入相结合的方式。

一般来说,完整的FPGA设计流程[25]包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真与验证、板级仿真验证与调试等主要步骤,如图4.1所示。

系统设计与构思P设计输入N是否为布局布线问题Y布局布线功能仿真正确否Y综合优化NY是否为综合优化问题NNN布线后仿真正确否Y加载配置在线调试结束综合后仿真正确否YP图4.1 FPGA完整设计流程

4.2 任意波形发生器的FPGA实现

在第三章规划任意波形发生器总体框图时,曾经指出任意波形发生器的DDS部分、外部电路控制都是在FPGA内部实现的,下面对这些部分的逻辑设计给以叙述。