基于FPGA的正弦信号发生器设计—毕业设计 下载本文

(5)开发周期短:用户可以反复的编程、擦除、使用,或者在外围电路不动的情况下,用不同的软件就可以实现不同的功能。因此,用FPGA试制样片,能以最快的速度占领市场。FPGA软件包中有各种输入工具、仿真工具、版图设计工具及编程器等全线产品,使电路的、设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路有少量改动时,更能显示出FPGA的优势。电路设计人员使用FPGA进行电路设计时,不需要有专门的IC(集成电路)深层次的知识。FPGA软件易学易用,可以使设计人员集中精力进行电路设计,快速将产品推向市场。

3.3.3 Altera的FLEX10K器件

Altera公司作为目前世界上最大的可编程逻辑器件供应商之一,其产品主要有FLEX10K, FLEX8000, FLEX6000, MAX9000, MAX7000, MAX5000以及Classic等七大系列,而FLEX10K系列是ALTERA 1995年推出的一个新的产品系列,因其规模大且价格便宜,倍受人们关注,Altera的FLEX10K器件是工业界第一个嵌入式可编程器件,基于可重构的CMOS SRAM单元,这种灵活逻辑单元阵(Flexible Logic Element Matrix)具有一般门阵列的所有优点。FLEX1OK系列器件规模从1万门到25万门,它无论在密度或者速度上都可以将一定规模的子系统集成到一个芯片上,采用快速可预测连线延时的连续式布线结构,在某种意义上说,是一种将EPLD和FPGA优点结合于一体的新型器件。

FLEX10K系列器件在结构上大同小异,它们都包含有四大部分:输入输出单元IOE、逻辑阵列块(LAB)、嵌入阵列块EAB及行、快速通道(FastTrack)互连。

1、输入输出单元(IOE)

每个IOE包含一个双向I/O缓冲器和一个输入输出寄存器,可被用作输入输出或双向引脚。IOE中的输出缓冲器有可调的输出摆率,可根据需要配置成低噪音或高速度模式。此外每个引脚还可指定为集电极开路输出。

IOE中的时钟、清除、时钟使能和输出使能由称作周边控制总线的I/O控制信号网络提供。周边控制总线提供多达12个周边控制信号并用高速驱动器使穿越器件的信号偏移最小化。这些信号是可配置的,能提供最多8个输出使能信号,6个时钟使能信号,2个时钟信号和2个清零信号。每个周边控制信号可被一专用输入脚驱动,或被特定行中每个LAB的第一个LE驱动。

2、逻辑阵列块(LAB)

FLEX10K的逻辑阵列块由8个逻辑单元(LE)、与LE相连的进位链和级联链、LAB控制信号和LAB局部互连组成。

FLEX10K的LAB在结构上与FLEX8000大致相同,不同之处主要体现在输出到快速通道

- - 14 - -

的互连上,此外构成LAB的逻辑单元内部结构也有所改进。每个LE包含一个4输入查找表(LUT),一个具有使能、预置和清零输入端的可编程寄存器,一个进位链和一个级联链。每个LE有两个输出,输出可驱动局部互连和快速通道互连。

查找表是一种函数发生器,能快速计算M个输入变量的任意函数。查找表的物理结构是静态存储器(SRAM)。M个输入项的逻辑函数可以由一个2M位容量的SRAM实现,函数值存放在SRAM中,SRAM的地址起输入线的作用,地址即输入变量值,SRAM的输出为逻辑函数值,由连线开关实现与其它功能块的连接。

查找表结构的函数功能非常强。M个输入的查找表可以实现任意一个M个输入项的组合逻辑函数,这样的函数有2M个。用查找表实现逻辑函数时,把对应函数的真值表预先存放在SRAM中,即可实现相应的函数运算。FLEX10K LAB中的LUT是一个4输入查找表,能快速实现4输入变量的任意函数。

FLEX10K的LE中的可编程触发器可设置成D,T ,JK或RS触发器。该触发器的时钟(Clock)、清除(Clear)和置位(Preset)控制信号可由专用输入引脚、通用I/O引脚或任何内部逻辑驱动。对于纯组合逻辑,可旁路LE中的触发器,将LUT的输出直接连到LE的输出端。

3、输入阵列块EAB

嵌入式阵列快是一种输入输出端带有寄存器的灵活的RAM,当实现存储器功能时,每个EAB提供2048位,可用来构成RAM,ROM,FIFO或双端口RAM。每个EAB单独使用时,可配置成以下几种尺寸之一:256×8、512×4、1024×2或2048×1。组合多个EAB可实现更大的RAM/ROM功能。Altera的Quartus II软件能够自动地组合多个EAB实现设计者对RAM规格的要求。

嵌入式阵列块也可用于实现逻辑功能,此时每个EAB可提供大约100-300个等效门,能方便地构成乘法器,矢量求模、纠错电路等功能块,并由这些功能进一步构成诸如数字滤波器、微控制器等方面的应用。逻辑功能通过配置时编程EAB为只读模型,生在一个大的LUT实现。在这个LUT中,组合功能通过查找表而不是通过计算来完成,其速度较常规逻辑运算实现时更快,且这一优势因EAB的快速访问时间而得到进一步加强。EAB的大容量使设计者能够在一个逻辑级上完成复杂的功能,避免了多个LE连接带来的连线延时。

4、快速通道(FastTrack)互连

在FLEX10K中,FastTrack互连提供不同LAB中的LE与器件I/O引脚间的互连,是贯穿整个器件长和宽的一系列水平和垂直的连续式布线通道,由若干组行连线和列连线组成。每一组行连线视器件大小不同可以有144根、216根或312根,每一组列连线均是24

- - 15 - -

根。

为了增强布线能力,行内连线由全长通道和半长通道结合组成。全长通道连接一行中所有的LAB,半长通道只与半行LAB相连接。每个EAB能被其左边的半长通道驱动,也可为全长通道驱动。FLEX10K行内连的这种改进使两个邻近的LAB相连时只占用半长行通道,保留另一半通道资源供其它LAB使用,从而增加了走线资源。

为了便于PCB板制作,Altera公司为各器件提供了诸PLCC,TQFP,RQFP,PGA和BGA等不同的封装形式,并有商业级和工业级芯片。

FLEXl0K系列器件特点:

1、嵌入阵列EAB,是一个在输入和输出端口都带有寄存器的一种灵活的RAM块,可以完成许多宏函数如存储器、查找表等。

2、全局时钟使用,可以最大限度减少时钟到各触发器的延迟,尽量使整个系统同步产生。

3、基于JTAG的边界扫描测试,2.5V(B系列),3.0V(A,V 系列)或5.0V电源。 4、低功耗,系统不工作时电流小于1mA。 5、灵活多变的行列连线资源。 6、功能丰富的I/O引脚。 7、多种封装形式。 8、基于SRAM重构。

9、强大的集成开发环境和多形式的用户接口。

3.4 EDA工具MAXPLUSⅡ

MAX+PLUSII是Altera提供的FPGA/CPLD开发集成环境, 它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。在 MAX+PLUS II软件提供的设计环境中可以完成设计输入、设计编译、设计仿真和器件编程四个设计阶段。在设计输入阶段,用户可以采用图形输入、文本输入和波形输入三种方式输入设计文件,但波形输入方式只能在工程设计的底层使用。在设计编译阶段,MAX+PLUS II编译器依据设计输入文件自动生成用于器件编程、波形仿真及延时分析等所需的数据文件。在设计仿真阶段,MAX+PLUS II仿真器和时延分析器利用编译器产生的数据文件自动完成逻辑功能仿真和时延特性仿真。并且可以在设计文件中加载不同的激励,观察中间结果以及输出波形。必要时,可以返回设计输入阶段,修改设计输入,达到设计要求。在器件编程阶段,MAX+PLUS II编程器将编译器生成的编程文件下载到Altera器件实现对器件编程。此后,可以将实际信号送入该器件进行时序验证。因为CPLD/FPGA芯片能够可重

- - 16 - -

复编程,所以如果动态时序验证的结果不能满足用户的需要时,用户可以返回到设计阶段重新设计,然后重复上面的步骤,最终达到设计要求。图3.1中所示的是标准的EDA开发流程。

图3.1 MAX+PLUSII设计流程

- - 17 - -

第4章 基于FPGA的正弦信号发生器

4.1 总体设计框图 显示模块 信号发生器核心 频 率 相位 波形ROM D/A转换器 滤波电路 输出波形 控制模块 累加器 系统时钟 clk

图4.1 信号发生器结构框图

图4.1为本次设计总体结构框图,其中相位累加器和波形存储器构成信号发生器核 心部分。该部分又与频率字控制模块共同构成信号发生器主模块。而显示模块,D/A转换器和滤波电路则作为信号发生器外围硬件设计。下面就分主模块软件设计和外围硬件设计两大部分来说明信号发生器的设计。

4.2 主模块软件设计

4.2.1 相位累加器的设计

N位 累加 高W位至波形存储器 全加器 寄存器 (W为存储器地址线宽度)

频率字输入

clk 图4.2 相位累加器

图4.2为相位累加器内部结构图,它有一个N位的全加器和一个寄存器构成。当系统时钟上升沿到来的时候,上一个时钟周期的相位值与频率字的相加值被送入累加寄存器,并输出高W位至波形存储器的地址线,同时相位值又被送回全加器进行相位累加。

- - 18 - -