FPGA应用实验板设计Word格式文档下载.docx
《FPGA应用实验板设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《FPGA应用实验板设计Word格式文档下载.docx(66页珍藏版)》请在冰豆网上搜索。
ThisthesisdiscussesaFPGAApplicationBoardwiththefuctionofanelectronicclockfortheEDAteachingcourses.TheFPGAApplicationBoardconsistsofaFPGAcoreboardandainterfaceboard.ThedevelopmentsoftwareisQuartusII7.2,whileusingVHDLlanguagetoprogram.Theprogrammodulepartsareasfollows:
thedividefrequencypartmodule,thecounterpartmodulewithfullcarrybit,thealarmadjustmentpartmodule,thedecodepartmodule,thedynamicscanningpartmodule.
AccordingtotheactualsituationofEDAteaching,adoptsCycloneIIseriesEP2C5Q208C8,thenmakesthecorrectcircuitdesignandfinisheshardware,itcandownloadanddebugonthesoftwareprogramwithUSBBlasterandByteBlasterIIdownloadcablesbyJTAG-basedconfigurationandASconfiguration,whichcanchangethecurrenttimeandalarmtime,setalarmstateisableornot.
Thisdesignhastheadvantagesofshortdevelopmentcycle,lowcost,easytomodifythedesign,atthesametime,easytoexpandfuctions.Ithasthepromisingeffectsinteachingcoursesandproductdevelopment.StudentscanfinishsomeexperimentsthatrelatetoelectronicclockonthisFPGAapplicationboard,suchasbuttonsinput,digitaldisplaying,counterdesigns.Theboardhelpsstudentstovisualizetheteachingcontents,deepentheknowledgaboutEDA.
Keywords:
EDASoCFPGAApplicationBoardElectronicClock
1绪论
1.1设计选题
近年来,在高校EDA课程的教学中,侧重对VHDL语言语法教学、仿真及开发软件使用方法的论述,而针对FPGA硬件配置、下载过程、硬件测试的教学内容较少。
这样一来,容易使学生脱离实践环节,造成当他们需要使用FPGA器件设计实用产品时,他们不能完成硬件电路的设计与程序加载,不能真正地发挥FPGA器件的优良性能。
若能设计出一个实用的FPGA应用实验板,使学生能够完成EDA设计的整个流程:
设计输入、综合、适配、时序仿真与功能仿真、编程下载、硬件测试。
学生通过对FPGA应用实验板的学习、开发,加深了他们对硬件及软件知识的运用能力。
当他们采用FPGA实际制作产品时,他们心里就有底了。
进入20世纪90年代,随着硬件描述语言的标准化进一步的确立,计算机辅助工程、辅助分析在电子技术领域获得更加广泛的应用,与此同时电子技术在通信、计算机及家电产品生产中的市场需求和技术需求,极大地推动了全新的电子设计自动化技术的应用和发展。
特别是集成电路设计工艺步入了超深亚微米阶段,近千万门以上的大规模可编程逻辑器件的相继面世。
同时,各EDA公司致力于推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件的研究,都有效的将EDA技术推向成熟。
FPGA是20世纪80年代中期发展起来的一类可编程器件。
FPGA可以包含数量丛多的触发器,从而能够实现大规模、复杂的逻辑电路,避免了I/O端口数量上的限制。
近年来,生产工艺上的进步大大降低了FPGA的成本,其功能及性能上的优越性更为突出。
因此,FPGA已成为目前设计数字电路及片上系统的首选器件之一。
多功能电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
多功能电子钟作为一种消费类数字产品,工业界有许多种设计方法,常用的有以下两种:
(1)用单片机芯片(主要是8051系列)控制时钟芯片的方法,这是现在的主流方法,技术成熟,开发工具众多,但受制于时钟芯片的功能,难以升级,不利于功能扩展。
(2)用各种中规摸集成芯片实现,这种方法电路复杂,实现功能扩展同样困难。
EDA(ElectronicDesignAutomation)技术作为现代电子设计技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线)、以及逻辑优化和仿真测试,直到实现所需的电子线路系统功能[1]。
本设计采用以电子设计自动化(即EDA)的方案设计具有多功能电子钟的FPGA应用实验板。
在QuartusII7.2开发软件平台上通过VHDL语言描述,以Altera公司的CycloneII系列EP2C5Q208C8FPGA为核心器件,结合相关外围电路,完成了EDA设计的整个流程:
采用USBBlaster及ByteBlasterII下载线完成实验板程序配置。
1.2QuartusII7.2软件介绍
QuartusII7.2是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII7.2可以在XP、Linux以及Unix上使用,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII7.2支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII7.2通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统,支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Altera在QuartusII7.2中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
QuartusII7.2作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
QuartusII7.2可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Simplicity等EDA供应商的开发工具相兼容。
改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
支持MAX7000/MAX3000等乘积项器件。
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件,可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析,自动定位编译错误,高效的期间编程与验证工具,可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件,能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
QuartusII7.2设计流程如图1所示[1]。
图1QuartusII7.2设计流程图
图1上排所示的是QuartusII7.2编译设计主控界面,下排的流程框图,是与上面的QuartusII7.2设计流程相对照的标准的EDA开发流程。
(1)图形或HDL编辑的作用:
将电路系统以一定的表达方式输入计算机。
图形输入通常包括原理图输入、状态图输入和波形图输入。
HDL编辑包括VHDL和VerilogHDL的源程序。
(2)分析与综合的作用:
将电路的高级语言(如行为描述)转换成低级的,可与FPGA/CPLD的基本结构相映射的网表文件或程序。
(3)适配的作用:
将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、JAM格式的文件。
(4)时序分析的作用:
利用计算机根据一定的算法和一定的仿真库对EDA设计进行模拟,以验证设计,排除错误。
(5)编程下载的作用:
将适配后生产的下载或配置文件,通过编程器或编程电缆向FPGA或CPLD下载,以便进行硬件调试和验证(HardwareDebugging)。
1.3主要设计内容和方法
运用VHDL语言设计一个配合EDA教学内容的具有多功能电子钟的FPGA应
用实验板。
分频模块、60进制带进位的计数器模块、
24进制带进位的计数器模块、闹钟设置模块、查表程序(将秒数或分数的0~59共60个整数转换成二进制编码的十进制(BCD)表示法)模块、查表程序(将小时数0~59共24个整数转换成二进制编码的十进制(BCD)表示法)模块、将二进制编码的十进制(BCD)转换为控制数码管7段的信号模块、控制6个数码管(秒、分和时)的动态扫描电路模块。
设置模块接口,配合EDA课程的教学章节的内容编写相对应的模块程序,能够在QuartusII7.2软件平台上调试通过,完成必要的波形仿真,程序具有一定的实用功能。
根据EDA教学的实际情况调查FPGA或CPLD芯片的市场情况,设计出正确的电路板并实际完成,硬件能够调试通过,能够下载相应的软件程序并完成硬件仿真。
1.4FPGA的工作原理及特点
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM等存储器中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
当需要修改FPGA功能时,只需换EPROM等存储器即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分[1]。
FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路中的试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
1.5配置AlteraFPGA
1.5.1AlteraFPGA器件配置方式
AlteraFPGA器件主要有三类配置方式:
主动串行配置方式(ActiveSerial)和被动串行配置方式(PS)和最常用的(JTAG)配置方式[2]。
在FPGA主动方式下,由目标FPGA来主动输出控制信号和同步信号(包括配置时钟)给Altera专用的一种串行配置芯片(EPCS1和EPCS4等),在配置芯片收到命令后,就把配置数据发到FPGA,完成配置过程。
这种配置模式只有在StratixII和Cyclone系列(Cyclone和CycloneII)的器件中支持。
在被动方式下,由系统中的其他设备发起并控制配置过程。
这些设备可以是
Altera的配置芯片(EPC系列),或者是单片机、CPLD等智能设备。
FPGA在配置过程中完全处于被动地位,只是输出一些状态信号来配合配置过程。
被动方式具体细分下来,有许多种模式,包括被动串行PS(PassiveSerial)、快速被动并行FPP(FastPassiveParallel)、被动并行同步PPS(PassiveParallelSynchronous)、被动并行异步PPA(PassiveParallelAsynchronous)、以及被动串行异步PSA(PassiveSerialAsynchronous)。
JTAG(JointTestActionGroup)是IEEE1149.1边界扫描测试的标准接口。
绝大多数的AlteraFPGA都支持由JTAG口进行配置,并支持JAMSTAPL标准。
从JTAG接口进行配置可以使用Altera的下载电缆,通过QuartusII工具下载,也可以采用智能主机(IntelligentHost),如微处理器来模拟JTAG时序进行配置。
不同的AlteraFPGA系列所支持的配置方式不尽相同,如表1所示。
表1AlteraFPGA系列配置方式表
配置方式
器件系列
Stratix
II
GX
Cyclone
APEXII
APEX
20K
20KE
20KC
ACEX
1K
FLEX
10K
10KE
10KA
6000
串行
√
主动
快速被动并行
被动并行同步
被动并行异步
被动串行异步
JTAG
JTAG边界扫描测试
1.5.2FPGA配置过程
在FPGA正常工作时,配置数据存储在SRAM单元中,这个SRAM单元也被称为配置存储器(ConfigurationRAM)。
由于SRAM是易失性的存储器[3],因此FPGA在上电后,外部电路需要将配置数据重新载入到片内的配置RAM中。
在芯片配置完成后,内部的寄存器以及I/O管脚必须进行初始化(Initialization)。
等到初始化完成后,芯片才会按照用户设计的功能正常工作,即进入用户模式[2]。
图2显示了AlteraFPGA配置周期的波形。
从图中可以看到FPGA上电以后首先进入配置模式(Configuration),在最后一个配置数据载入到FPGA以后,进入初
始化模式(Initialization),在初始化完成以后,随即进入用户模式(User-Mode)。
在配置模式和初始化模式下,FPGA的用户I/O处于高阻态,当进入用户模式下,用户I/O就按照用户设计的功能工作。
图2AlteraFPGA配置周期的波形图
一个器件完整的配置过程将经历复位、配置和初始化这3个过程。
FPGA正常上电后,当其nCONFIG管脚被拉低时,器件处于复位状态。
这时所有的配置RAM内容被清空,并且所有I/O处于高阻态。
FPGA的状态管脚nSTATUS和CONF_DONE管脚也将输出为低。
当FPGA的nCONFIG管脚上出现一个从低到高的跳变以后,配置就开始了,同时芯片还会去采样配置模式(MSEL)管脚的信号状态,决定接收何种配置模式。
随之,芯片将释放漏极开路(Open-Drain)输出的nSTATUS管脚,使其由片外的上拉电阻拉高。
这样,就表示FPGA可以接收配置数据了。
在配置之前和配置过程中,FPGA的用户I/O均处于高阻态。
在接收配置数据的过程中,配置数据由DATA管脚送入,而配置时钟信号由DCLK管脚送入,配置数据在DCLK的上升沿被锁存到FPGA中。
当配置数据被全部载入到FPGA中以后,FPGA上的CONF_DONE信号就会被释放,而漏极开路输出的CONF_DONE信号同样将由外部的上拉电阻拉高。
因此,CON_DONE管脚的从低到高的跳变表明配置完成,初始化过程的开始,而并不是芯片开始正常工作。
INIT_DONE是初始化完成的指示信号,它是一个可选信号,需要通过QuartusII工具中的设置决定是否使用该管脚。
在初始化过程中,内部逻辑、内部寄存器和I/O寄存器将被初始化,I/O驱动器将被使能。
当初始化完成以后,器件上漏极开路输出的INIT_DONE管脚被释放,同时被外部的上拉电阻拉高。
此时,FPGA完全进入用户模式,所有的内部逻辑以及I/O都按照用户的设计运行。
在完成配置后,DCLK信号和DATA管脚不应该被浮空(floating),而应该被拉成固定电平,高或低都可以。
如果需要重新配置FPGA,就需要在外部将年nCONFIG重新拉低一段时间,然后再拉高。
当nCONFIG被拉低后,nSTATUS和CONF_DONE也将随即被FPGA芯片拉低,配置RAM被清空,所有I/O都变成三态。
当nCONFIG和nSTATUS都变为高时,重新配置就开始了。
1.6FPGA的应用领域
在具体的应用上,FPGA的逻辑功能有控制接口、总线接口、格式变换/控制、协议控制接口、信号处理接口、成像控制/数字处理、加密/解密、错误探测/相关等,FPGA的典型应用如表2所示[4]。
表2FPGA的典型应用表
军事/汽车
消费类产品
控制
自适应行驶控制
防滑制动装置/控制引擎
全球定位/导航
语音命令/雷达信号处理
声纳信号处理
数字收音机/TV
教育类玩具/动力工具
音乐合成器/固态应答器
高清晰数字电视
磁盘驱动控制
引擎控制
激光打印机控制
马达控制/伺服控制
机器人控制
数字信号处理
图形/图像处理
工业/医学
自适应滤波、DDS
卷积/相关、数字滤波
快速傅里叶变换
波形产生/谱分析
神经网络、同态处理
动画/数字地图
图像压缩/传输
图像增强、模式识别
数字化控制
电力线监控
机器人、安全检修
诊断设备/超声设备
电信
网络
声音/语音处理
个人通信系统(PCS)
ADPCM/蜂窝电话
个人数字助理(PDA)
数字用户交换机(PBX)
DTMF编/解码器
同波抵消器
1200~56600bpsModem
xDSL、视频会议
传真、终端机
无线局域网/蓝牙
WCDNA
MPEG-2码流传输
语音识别/语音合成
语音生码器技术
文本/语音转换技术
语音邮箱
1.7FPGA的发展现状及发展趋势
FPGA(FieldProgrammableGateArray)是20世纪80年代中期发展起来的一种类型的可编程器件。
它不像CPLD那样采用可编程的“与-或”阵列来实现逻辑函数,而是采用查找表(Look-UpTable)实现逻辑函数。
这种不同于CPLD结构的特点,使FPGA中可以包含数量丛多的LUT和触发器[5],从而能够实现更大规模、更复杂的逻辑电路,避免了“与-或”阵列结构上的限制和触发器及I/O端口数量上的限制。
近年来,生产工艺上的进步大大降低了FPGA的成本,其功能及性能上的优越性能更为突出。
因此,FPGA已成为目前设计数字电路或系统的首选器件之一。
目前以硬件描述语言(VerilogHDL或VHDL)所完成的电路设计,经过综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的主流技术。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器或者其他更加完善的记忆块。
系统设计师可以根据需要改变FPGA内部逻辑块的连接方式,就好像一个电路试验板被放在了一个芯片里。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品。
早在1980年代中期,FPGA已经在PLD设备中扎根。
CPLD和FPGA包括了一些相对大数量的可编辑逻辑单元。
CP