FPGA基本概念与DE2开发平台_第1页
FPGA基本概念与DE2开发平台_第2页
FPGA基本概念与DE2开发平台_第3页
FPGA基本概念与DE2开发平台_第4页
FPGA基本概念与DE2开发平台_第5页
已阅读5页,还剩172页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章FPGA基本概念与DE2开发平台

1.1可编程逻辑器件1.2CycloneⅡ系列FPGA1.3DE2开发平台1.4DE2平台的开发环境1.1可编程逻辑器件1.1.1可编程逻辑器件概述数字电子领域中三种基本的器件类型为存储器、微处理器和逻辑器件。存储器用来存储数据表、数据库、程序代码等随机信息;微处理器通过执行软件指令来完成如文字处理、视频处理及工业控制等各种任务;逻辑器件提供器件间的接口、数据通信、信号处理、数据显示、时序和控制操作以及系统运行等各种特定功能。逻辑器件可分为两大类,即固定逻辑器件和可编程逻辑器件(PLD)。固定逻辑器件中的电路是永久性的,用于完成一种或一组功能。固定逻辑器件一旦制造完成,就无法改变,专用集成电路(ASIC)就是其中的一种。根据器件复杂程度的不同,固定逻辑器件从设计、定型到最终生产所需要的时间一般为数月至一年多不等,如果器件工作不满足设计要求,或者应用要求发生了变化,就必须重新开发全新的设计。设计和验证固定逻辑的前期工作需要大量的“非重发性工程成本”,或简称NRE。NRE表示在固定逻辑器件最终从芯片制造厂制造出来以前客户需要投入的所有成本,这些成本包括工程资源、昂贵的设计工具软件、用来制造芯片不同金属层的昂贵的光刻掩模组以及初始原型器件的生产成本。这些NRE成本可能从数十万美元至数百万美元不等。可编程逻辑器件作为一类标准成品部件,能够为用户提供各种逻辑能力、速度和电压特性,而且可以在任何时候对此类器件进行修改,以完成多种不同的功能。对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计,然后将设计快速编程到器件中,并立即在实际运行的电路中对设计进行测试。原型中使用的PLD器件与正式生产最终设备(如网络路由器、DSL调制解调器、DVD播放器或汽车导航系统)时所使用的PLD器件完全相同,完全没有NRE成本,最终的设计也比采用定制固定逻辑器件完成得更快。采用PLD的另一个关键优点是在设计阶段客户可根据需要不断地修改电路,直到对设计工作感到满意为止,这是因为PLD的结构是基于可重写的存储器技术,当要改变设计时,只需要简单地对器件进行重新编程即可。一旦设计完成,客户可立即投入生产,即利用最终的软件设计文件简单地对PLD器件进行编程。可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD),这两类可编程逻辑器件的结构不同。与CPLD相比,FPGA可提供更高的逻辑密度、更丰富的特性和更高的性能。最新的FPGA器件可提供数百万门的逻辑电路,这些先进的器件还提供诸如内建硬核处理器、大容量存储器、时钟管理系统等特性,并支持多种最新的高速接口技术。FPGA应用范围广泛,如在数据处理和存储、仪器仪表、电信和数字信号处理等方面都有大量应用。与FPGA相比,CPLD提供的逻辑资源少得多,最高约一万门左右。但CPLD可预测性好,对于关键的控制应用非常理想。而且CPLD器件功耗相对较低且价格低廉,使其在成本敏感的、电池供电的便携式应用(如移动电话和数字手持助理)中非常理想。《EDN》杂志对可编程逻辑器件作过这样的评价:“可编程逻辑器件是逻辑器件产品中增长最快的领域,这主要有两个基本原因。可编程逻辑器件不断提高的单片器件逻辑门数量集成了众多功能,不然的话,这些功能只能采用大量分立逻辑和存储器芯片才能实现,这可以改善最终系统的体积、功耗、性能、可靠性和成本。同样重要的是这样的事实,在许多情况下只需要数十秒或数分钟的时间,就可以在工作站或系统组装线上配置和重新配置这些器件。这一能力提供了强大的灵活性,支持迅速地对最后一分钟的设计修改,以及在设计定型前对各种想法进行原型实验,同时还可满足在消费者需求和竞争压力下不断缩短的上市时间最终期限要求。”(EDN,“PLD年度目录”,2000年8月17日。)固定逻辑器件和可编程逻辑器件各有自己的优点。例如,固定逻辑器件适合大批量应用,因为它们可更为经济地大批量生产。对有些需要极高性能的应用,固定逻辑器件也可能是最佳的选择。然而,可编程逻辑器件提供了一些优于固定逻辑器件的重要优点,主要包括以下几个方面:(1)在设计过程中为客户提供了更大的灵活性,因为对于可编程逻辑器件来说,设计反复只需要简单地改变编程文件就可以了,而且设计改变的结果可立即在工作器件中看到。(2)不需要漫长的前置时间来制造原型或正式产品,因为可编程逻辑器件已经放在分销商的货架上并可随时交付。(3)不需要客户支付高昂的NRE成本和购买昂贵的掩模组,因为供应商在设计其可编程器件时已经支付了这些成本,并且可通过可编程逻辑器件产品线延续多年的生命期来分摊这些成本。(4)允许客户在需要时仅订购所需要的数量,从而使客户可控制库存。采用固定逻辑器件的客户经常会需要废弃过量的库存,而当对其产品的需求高涨时,他们又可能为器件供货不足而苦恼,并且不得不面对生产延迟的现实。(5)甚至在设备交付给客户以后还可以重新编程。由于有了可编程逻辑器件,因此设备制造商现在可以为已经安装在现场的产品增加新功能或者进行升级。要实现这一点,只需要通过Internet将新的编程文件下载到可编程逻辑器件中,就可以在系统中创建出新的硬件逻辑。(6)有越来越多的知识产权(IP)核心库的支持。用户可利用这些预定义和预测试的软件模块在可编程逻辑器件内迅速实现系统功能。IP核心包括复杂数字信号处理算法、存储器控制器直到总线接口和成熟的软核微处理器等。此类IP核心为客户节约了大量的时间和费用,否则用户可能需要数月的时间才能实现这些功能,而且还会进一步延迟产品推向市场的时间。可编程逻辑器件的价值在于其能够大大缩短电子产品制造商的开发周期,以及帮助他们更快地将产品推向市场。随着PLD供应商继续致力于在可编程逻辑器件中集成更多的功能、降低其成本并提高能够节约时间的IP核心的可用性,可编程逻辑器件一定会在数字设计人员中进一步普及。1.1.2CPLD的结构与原理大部分CPLD采用基于乘积项(Product-Term)的PLD结构,如Altera公司的MAX7000和MAX3000系列(EEPROM工艺)、Xilinx公司的XC9500系列(FLASH工艺)以及Lattice公司和Cypress公司的大部分产品(EEPROM工艺)。这里先看一下这种PLD的总体结构(以MAX7000系列为例,其他型号的结构与此都非常相似)。图1.1是MAX7000E和MAX7000S系列CPLD的结构框图。这种PLD一般由三部分组成:宏单元(Macrocell)、可编程连线(PIA)和I/O控制块。宏单元是PLD的基本结构,用以实现基本的逻辑功能。在MAX7000系列CPLD中,每16个宏单元组成一个逻辑阵列块(LAB)。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负责输入/输出的电气特性控制,比如可以设定集电极开路输出、摆率控制、三态输出等。图1.1左上角的INPUT/GCLK1、INPUT/OE2/GCLK2和INPUT/OE1是全局时钟、清零和输出使能信号,这几个信号通过PIA(可编程互连阵列)及专用连线与PLD中的每个宏单元相连,这些信号到每个宏单元的延时相同并且延时最短。图1.1基于乘积项的PLD内部结构MAX7000E和MAX7000S系列CPLD的宏单元结构如图1.2所示。每个宏单元主要由三部分组成:逻辑阵列、乘积项选择矩阵和可编程寄存器。图中左侧是逻辑阵列,也就是一个与或阵列,阵列连线的每一个交点都是一个可编程熔丝,如果导通就实现“与”逻辑;其后的乘积项选择矩阵是一个“或”阵列,两者一起完成组合逻辑。图右侧是一个可编程寄存器,它的时钟、清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用由内部逻辑(逻辑阵列)产生的时钟和清零。如果不需要该寄存器,也可以将它旁路,使信号直接输给PIA或输出到I/O脚。图1.2宏单元结构图1.3是一个简单的电路,参照该电路具体说明PLD是如何利用以上结构来实现特定逻辑的。假设图1.3中组合逻辑的输出(AND3的输出)为f,则f = (A + B)CD= ACD+ BDD图1.3一个简单的组合逻辑电路CPLD将以图1.4所示的方式实现图1.3中的简单组合逻辑电路。A、B、C、D由CPLD芯片的管脚输入后进入可编程连线阵列(PIA),在内部会产生A、A、B、B、C、C、D、D等8个输出。图中每一个叉表示相连(可编程熔丝导通),可以得到:f = f1 + f2D = ACD+ BCD从而实现了图1.3中的组合逻辑。图1.3电路中D触发器的实现比较简单,直接利用宏单元中的可编程D触发器就可实现。时钟信号CLK由I/O脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。可编程触发器的输出与I/O脚相连,把结果输出到芯片管脚,这样CPLD就完成了如图1.3所示电路的功能。以上这些步骤都是由软件自动完成的,不需要人为干预。图1.4电路在CPLD中的实现图1.3所示的电路是一个很简单的例子,只需要一个宏单元就可以完成。对于一个复杂的电路,一个宏单元是不能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再作为另一个宏单元的输入。这样,CPLD就可以实现更复杂的逻辑。这种基于乘积项的PLD基本上都是由EEPROM和FLASH工艺制造的,上电即可自动工作,无需其他芯片配合。1.1.3FPGA的结构与原理FPGA最常用的结构是查找表(Look-Up-Table,LUT)结构,如Altera的ACEX、APEX、Cyclone、CycloneⅡ系列和Xilinx的Spartan、Virtex系列等。这里以CycloneⅡ系列FPGA为例来说明。逻辑单元(LogicElement,LE)是构成FPGA的基本单位之一,一个LE主要由一个4输入LUT、一个寄存器及进位和互连逻辑组成。LUT本质上是一个RAM。目前FPGA中多使用4输入的LUT,即一个LUT可以看成有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路所有可能的结果,并把结果事先写入RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。也可以把它当作一个4输入的函数发生器,能够实现4变量输入的所有逻辑。图1.5是CycloneⅡ系列FPGA的一个LE的普通工作模式原理图。FPGA的基本单元一般为一个4输入查找表后接一个寄存器。图1.5CycloneⅡ系列FPGA的LE的普通工作模式表1.1为一个4输入与门的例子。A、B、C、D由FPGA芯片的管脚与可编程连线相连,然后作为地址线连到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,从而实现了组合逻辑。如果要用CycloneⅡFPGA实现图1.3所示的电路,用查找表实现f=ACD+BCD,则电路中的D触发器可直接利用LUT后的寄存器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出可以与I/O脚相连,把结果输出到芯片管脚,这样FPGA就完成了图1.3所示电路的功能。与CPLD一样,这些步骤都是由软件自动完成的,不需要人为干预。这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的电路,需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。由于LUT主要适合采用SRAM工艺生产,因此目前大部分FPGA都是基于SRAM工艺的,而基于SRAM工艺的芯片在掉电后信息就会丢失,必须外加一片专用配置芯片。上电时,由这个专用配置芯片把数据加载到FPGA中,FPGA才可以正常工作,由于配置时间很短,因而不会影响系统的正常工作。也有少数FPGA采用反熔丝或FLASH工艺,这种FPGA不需要外加专用的配置芯片。随着技术的发展,在2004年以后,一些厂家推出了一些新的可编程逻辑器件,这些产品模糊了CPLD和FPGA的界线。例如Altera的MAXⅡ系列PLD,就是一种基于FPGA(LUT)结构、集成配置芯片的PLD,本质上它是一种在内部集成了配置芯片的FPGA,但由于配置时间极短,上电后就可以工作,对用户来说,感觉不到配置过程,可以像传统的CPLD一样使用,加上容量和传统的CPLD类似,因此Altera把它归为CPLD。还有像Lattice的XP系列FPGA,也是使用了同样的原理,将外部配置芯片集成到内部,在使用方法上和CPLD类似,但是因为容量大,性能和传统FPGA的相同,也采用LUT架构,所以Lattice把它归为FPGA。从可编程逻辑器件的结构和原理可以知道,CPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至二三十个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此CPLD适用于设计译码器等复杂的组合逻辑。但FPGA的制造工艺决定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是成千上万,而CPLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本将大大低于CPLD。如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好的选择。CPLD具有上电即可工作的特性,而大部分FPGA需要一个加载过程,如果系统要求可编程逻辑器件上电就能工作,那么就应该选择CPLD。1.1.4结构化ASIC在过去相当长的时间内,ASIC和FPGA一直是电子设计的主流技术,二者不同的技术特征决定了它们应用于不同的市场:ASIC被用于大批量的专用产品,以尽可能摊薄高额的设计与制造成本,实现良好的性价比;FPGA虽单价昂贵,但由于其可编程的灵活性而广受小批量应用的青睐。近年来半导体市场发生了显著的变化,打破了二者之间的平衡,产品面市时间的压力以及市场对产品设计的快捷性和灵活性要求的提升,使得FPGA的发展势头强劲。但原有FPGA架构固有的功耗高、速度慢、资源冗余、价格昂贵等弱点使其在面对复杂功能设计的要求时还是会感到吃力,因此人们开始考虑通过技术上的融合,在ASIC和FPGA之间找到一条“中间道路”,结构化ASIC便是到目前为止最成功的尝试。Altera是结构化ASIC市场的领导者,其结构化ASIC技术HardCopy和HardCopyⅡ目前在市场中占有超过50%的份额。2006年上半年,结构化ASIC技术的开创者LSILogic公司宣布停止对其Rapidchip结构化ASIC技术的进一步研发投入,将定制芯片技术集中服务于核心市场,使Altera公司在这个领域中的优势更加明显。据市场调研公司GartnerDataquest副总裁兼首席半导体分析师BryanLewis的预测,2006年结构化ASIC的销售额将从其之前预测的4.73亿美元降至4.17亿美元,但在2007年,结构化ASIC的销售额将增长至5.64亿美元,待到2010年时,其销售额将突破10亿美元。在每年300亿美元左右的半导体市场中,结构化ASIC技术约占3%左右的市场份额。In-Stat的ASIC/ASSP首席分析师JerryWorchel认为:“如果你寻找一种高复杂度但需求量小的芯片,FPGA是不二选择。如果你需要1000至20 000片,而成本要在你的系统预算约束内,则FPGA也是一种好方法。但你肯定不会买10万片单价5美元的FPGA,这就是结构化ASIC的市场了。”HardCopy与HardCopyⅡ利用原有的FPGA开发工具,将成功实现于FPGA器件上的系统通过特定的技术直接向ASIC转化,从而克服了传统ASIC设计中普遍存在的问题。与HardCopy技术相比,对于系统级的大规模ASIC开发,有不少难于克服的问题,其中包括开发周期长、产品上市慢、一次性成功率低、有最少投片量的要求、设计软件工具繁多且昂贵、开发流程复杂等。例如,此类ASIC开发,首先要求可观的技术人员队伍、高达数十万美元的开发软件费用和高昂的掩模费用,整个设计周期可能长达一年。导致ASIC设计的高成本和一次性低成功率的原因很大部分是由于需要设计和掩模的层数太多(多达十几层)。然而,如果利用HardCopyⅡ技术设计ASIC,则开发软件费用仅2000美元左右(QuartusⅡ),SOC级规模的设计周期不超过20周,转化的ASIC与用户设计习惯的掩模层只有两层,可实现FPGA向ASIC的无缝转化,一次性投片的成功率近乎100%。而且用ASIC实现后的系统性能将比以前在HardCopyⅡFPGA上验证的模型的性能提高近50%,功耗则降低40%。一次性成功率的大幅度提高即意味着设计成本的大幅降低和产品上市速度的大幅提高。HardCopyⅡ技术是一种全新的ASIC设计解决方案,即将专用的硅片设计和FPGA至HardCopy的自动迁移过程结合在一起的技术,它首先利用QuartusⅡ将系统模型成功实现于HardCopyFPGA上,然后帮助设计者把可编程解决方案无缝地迁移到低成本的ASIC上。这样,HardCopy器件就把大容量FPGA的灵活性和ASIC的市场优势结合起来,对于有大批量要求并对成本敏感的电子系统产品,避开了直接设计ASIC的困难。从原型设计提升至产品制造,通过将FPGA的设计十分容易地移植到HardCopy器件上,达到既降低成本又加快面市周期的目的。本质上,HardCopyⅡ器件是FPGA的精确复制,剔除了可编程性、专用配置和采用金属互连的走线,这类器件的硅片面积就更小,成本就更低,而且还改善了时序特性。HardCopyⅡ的前端设计流程如图1.6所示,整个设计流程都由QuartusⅡ完成。Altera提供了一种简单、统一的设计方法,可以从FPGA原型中开发结构化ASIC。在一个QuartusⅡ工程中可以选择两种流程之一,即HardCopyⅡ在先的设计流程和StratixⅡ在先的设计流程,来设计StratixⅡFPGA和HardCopyⅡ配套器件。图1.6HardCopyⅡ的前端设计流程HardCopyⅡ在先的流程:首先在HardCopyⅡ中编译设计,然后选择StratixⅡFPGA配套器件,对设计进行原型开发及在系统验证。这种流程可以避免在标准单元ASIC流程中由于功能问题而出现的重制风险;它支持FPGA在系统软件早期的协同设计。在以下情况中可以使用这种流程:①项目的目标是在ASIC中实现设计;②项目所需要的是大批量产品,并且批量价格要低;③项目的设计特性比较平稳,不会出现大的改动;④与FPGA原型相比,项目HardCopyⅡ设计需要更高的性能及更低的功耗。StratixⅡ在先的流程:首先在StratixⅡFPGA中编译设计,然后移植到HardCopyⅡ配套器件。采用这种流程时,用户可先采用StratixⅡFPGA将产品推向市场,然后将设计移植到HardCopyⅡ来降低成本。在以下情况中可以使用这种流程:①希望采用FPGA来降低开发成本,获得最大的灵活性;②需要等待客户反馈来预测设计更新;③条件合适时,根据需要将设计转换到HardCopyⅡ器件,以降低成本。与FPGA设计类似的HardCopyⅡ,其前端设计流程使用FPGA进行全面的在系统验证,降低了设计的重制风险,支持软件早期协同设计,使开发总成本降至最低,并且可实现从FPGA向HardCopyⅡ结构化ASIC的无缝移植。FPGA和HardCopy器件具有相同的知识产权(IP)和引脚,无需电路板重制,根据产量和产品寿命,可以灵活地选择使用FPGA或HardCopy器件并缩短产品的上市时间。HardCopyⅡ采用业界标准的后端设计流程,设计通过了FPGA在系统的全面验证。在QuartusⅡ软件中生成了所需的设计文件后,用户将设计文件提交给AlteraHardCopy设计中心,设计中心经验丰富的ASIC设计工程师使用业界标准的设计方法和EDA工具获得HardCopyⅡ器件后端的物理实现。HardCopyⅡ后端设计流程如表1.2所示。根据设计的复杂程度,从提交网表到设计下单,其后端设计周转时间只有一到两个月。QuartusⅡ软件为后端最终布线提供了前端注释单元布局。由于在提交网表前,必须在QuartusⅡ软件中同时达到FPGA和HardCopy器件的时序逼近,因此与标准单元ASIC流程相比,最终的后端时序逼近要相对简单一些。在典型的标准单元ASIC流程中,网表提交后还需要进行设计验证,导致多次进行验证迭代、工程改动要求(ECO)以及布局布线合并等,进一步推迟了计划。而HardCopy设计在FPGA中进行了全面的在系统验证,在后端流程中不需要功能ECO,这样就可以预测Altera的后端设计周转时间,降低了在标准单元ASIC流程中出现的计划推迟的风险。1.2CycloneⅡ系列FPGA1.2.1CycloneⅡ系列FPGA概述Altera的DE2教育平台选用的FPGA是CycloneⅡ系列FPGA中的EP2C35F672C6。CycloneⅡ系列FPGA是继Cyclone系列低成本FPGA在市场上取得成功之后,Altera公司推出的更低成本的FPGA,它将低成本FPGA的密度扩展到了68416个逻辑单元(LEs),从而可以在低成本FPGA上实现复杂的数字系统。CycloneⅡ系列FPGA采用TSMC(台积电)的90 nm工艺,与竞争对手采用的90 nm工艺的FPGA相比,其性能高出60%而功耗减低一半,而其价格则几乎可以与ASIC产品竞争。优异的性价比使CycloneⅡ系列FPGA可以广泛地应用于汽车电子、消费电子、音/视频处理、通信以及测试测量等终端产品市场。CycloneⅡ系列FPGA支持Altera公司的NiosⅡ嵌入式软核处理器。NiosⅡ具有灵活的可配置特性而且可以非常容易地实现各种外设的扩展。对于并行事务处理,可以在一个FPGA上放置多个NiosⅡ软核,大大提高了处理器的效率,也方便多个小组同时开发,进一步加快了新产品的研发速度。在数字信号处理方面,CycloneⅡ系列FPGA也具有明显的优势。CycloneⅡ系列FPGA可以内置多达150个18×18的硬件乘法器,片上大容量的M4KRAM以及经过专门优化的对外部存储器的高速存取特性,使它们非常适合于数字信号处理器或协处理器的应用场合。Altera公司提供的数字信号处理器IP核以及DSPBuilder软件包使数字信号处理产品的开发非常容易。CycloneⅡ系列FPGA的主要性能比较见表1.3。图1.7是EP2C20的内部结构示意图,CycloneⅡ系列FPGA的内部结构基本上都是这种排列方式。CycloneⅡ系列器件主要由以行列形式排列的逻辑阵列块(LogicArrayBlock,LAB)、嵌入式存储器块及嵌入式乘法器组成,锁相环(PLL)为FPGA提供时钟,输入/输出单元(Input/OutputElements,IOEs)提供输入/输出接口逻辑。逻辑阵列、嵌入式存储器块、嵌入式乘法器、输入/输出单元及锁相环之间可实现各种速度的信号互连。图1.7CycloneⅡ系列FPGA的内部结构示意图逻辑单元是CycloneⅡ系列中可以实现用户逻辑定制的最小单元。每16个LE组成一个逻辑阵列块(LAB)。LAB以行列形式在FPGA器件中排列。CycloneⅡ系列FPGA的LE数量在4608~68416范围之间变化(参见表1.3)。CycloneⅡ系列FPGA有片内PLL,并有多达16个全局时钟线的全局时钟网络为逻辑阵列块、嵌入式存储器块、嵌入式乘法器和输入/输出单元提供时钟。CycloneⅡ系列FPGA的全局时钟线也可以作为高速输出信号使用。CycloneⅡ的PLL可以实现FPGA片内时钟的合成、移相,也可以实现高速差分信号的输出。M4K嵌入式存储器块由带校验的4 K位(4096位)真双口(TureDual-Port)RAM组成,可配置成真双口模式、简单双口模式或单口模式的存储器,位宽最高可达36位,存取速度最高260 MHz。M4K嵌入式存储器分布于逻辑阵列块之间。CycloneⅡ系列FPGA的M4K嵌入式存储器的容量为119 K~1152 K位不等。每个嵌入式乘法器可以配置成两个9×9或一个18×18的乘法器,处理速度最高可达250 MHz。CycloneⅡ的嵌入式乘法器在FPGA上按列排列。输入/输出单元排列在逻辑阵列块的行和列的末端,可以提供各种类型的单端或差分逻辑输入/输出。1.2.2逻辑单元逻辑单元是CycloneⅡ系列FPGA逻辑的最小单元,它能够完成各种复杂的逻辑应用。一个逻辑单元的主要特性如下:(1) 4输入查找表相当于一个4输入的函数发生器,能够实现4变量输入的所有逻辑。(2)一个可编程寄存器。(3)一个进位链连接(CarryChainConnection)。(4)一个寄存器链连接(RegisterChainConnection)。(5)能够驱动所有可能的互连,包括本地互连、列间、行间、寄存器链以及直接互连。(6)支持寄存器打包。(7)支持寄存器反馈。CycloneⅡ逻辑单元的结构如图1.8所示。图1.8CycloneⅡ逻辑单元的结构每个逻辑单元(LE)都可以配置成D、T、JK或SR模式,每一个LE都有独立的数据输入(data1、data2、data3、data4)、清除(labclr1、labclr2、DEV_CLRn)、时钟(labclk1、labclk2)及时钟使能输入(labclkena1、labclkena2)。时钟网络、GPIO(GeneralPurposeInput/Output,通用输入/输出)及内部逻辑都可以驱动寄存器的时钟及清除信号。内部逻辑及GPIO可以驱动时钟使能信号。用于组合逻辑时,查找表旁路掉寄存器而直接驱动输出。每个LE有三个输出,可以用来驱动行、列布线,直接连接布线和本地布线。其中两个输出用来驱动行、列以及直接布线,一个输出用来驱动本地互连布线。查找表输出和寄存器输出可以完全独立地分别驱动三个输出中的两个,即用查找表驱动其中一个输出时,可以用寄存器的输出驱动另一个输出。由于这种做法可以让查找表和寄存器各自独立完成互不相干的功能,因此有效提高了器件的利用率。这种工作方式称做寄存器打包(RegisterPacking)。在寄存器打包模式下工作时,LAB同步加载信号无效。另外一种特殊的打包模式是把寄存器的输出反馈到同一逻辑单元的查找表的输入,也就是说,寄存器与同一逻辑单元的查找表打包。这个逻辑单元可以驱动被寄存的或未被寄存的查找表输出。除上述的输入、输出之外,CycloneⅡ的逻辑单元还有一个进位链路输入和一个进位链路输出,这种LAB内的进位链路可以使同一个LAB中的逻辑单元级联起来。寄存器链路输出可以让同一个LAB中的查找表完成组合逻辑的任务,而用这个LAB中的寄存器可以完成移位寄存器的功能。这样可以提高LAB间互连的速度并节省布线资源。LE有两种工作模式:普通模式和算术模式。将LE的六个输入(四个数据输入、进位输入和寄存器链输入)进行不同的处理可以实现不同的功能。LAB范围的信号(时钟输入、异步清除、同步清除、同步加载及时钟使能等信号)在两种工作模式下都是有效的。QuartusⅡ软件通过参数化模块库(LibraryofParameterizedModules,LPM)自动选择LE的工作模式,用户也可根据自己的应用来选择LE的工作模式,以提高设计的性能。LE的普通工作模式如图1.9所示,其适用于通用逻辑以及组合逻辑的场合。在这种模式下,LE相当于一个4输入查找表,QuartusⅡ编译器自动从data3或进位输入(Cin)中选择一个作为4输入查找表的输入。普通工作模式下的LE支持寄存器打包和寄存器反馈。图1.9LE的普通工作模式LE的算术工作模式如图1.10所示,其适用于实现加法器、累加器、计数器和比较器。算术工作模式下的LE实际上是一个2输入查找表。算术模式下工作时,查找表输出可以是带寄存器的输出,也可以是不带寄存器的输出。算术模式下的LE也支持寄存器反馈和寄存器打包。图1.10LE的算术工作模式QuartusⅡ的编译器会自动选择进位链逻辑,用户也可以在设计时自己使用进位链逻辑,一些LPM则会根据功能的需求自动选择进位逻辑。当进位链超过16个LE,即超过一个LAB的范围时,QuartusⅡ的编译器会自动连接同列的LAB。LAB与M4KRAM块都是垂直布置的,当QuartusⅡ为增强型适配时,会自动垂直连接多个LAB以实现较长的进位链,从而方便LAB与M4KRAM块的横向互连。1.2.3逻辑阵列块(LAB)每一个LAB包括16个LE、LAB控制信号(清除、时钟、时钟使能、复位等)、LE进位链、寄存器进位链及LAB本地互连。LAB本地互连用以连接LAB内各个LE。寄存器链把LAB内一个LE寄存器的输出与相邻LE寄存器的输入连在一起。图1.11是CycloneⅡ系列FPGA的一个LAB的内部结构及可能的各种互连。QuartusⅡ的编译器会用一个LAB或相邻的多个LAB实现相关的逻辑,从而利用LAB本地互连的优势提高设计的效率。LAB本地互连可以驱动本LAB的LE,行互连、列互连及本LAB的LE的输出可以驱动本地互连。相邻的LAB、锁相环PLL、M4KRAM块、乘法器可以通过直接互连来驱动本地互连。直接互连减少了对列互连和行互连的占用,提高了使用的灵活性。每个LE可通过本地互连和直接互连驱动48个LE。图1.12是LAB互连的示意图。图1.11LAB的结构图1.12LAB互连示意图LAB的控制信号主要有:2个时钟、2个时钟使能、2个异步清除、1个同步清除和1个同步加载。图1.13是LAB控制信号的示意图,其最多有7个控制信号同时可用。同步加载与寄存器打包不能同时使用。每个LAB最多可以有4个非全局控制信号,其他的控制信号只有是全局控制信号的才可用。图1.13LAB控制信号示意图同步清除和同步加载信号是针对整个LAB范围而言的,即这两个信号对整个LAB范围内的所有寄存器有效。每个LAB可以使用2个时钟信号和2个时钟使能信号,时钟信号和时钟使能信号是同时使用的。例如,当一个LE选用了一个时钟信号labclk1时,意味着它同时选择了labclkena1。如图1.13所示,LAB行时钟和LAB本地互连共同产生LAB的控制信号。LAB的清除信号是针对寄存器的,LE可通过异步清除信号直接清除。每个LAB最多支持2个异步清除信号:labclr1和labclr2。LAB不支持异步加载功能。除上述的同步清除和异步清除控制之外,CycloneⅡ系列FPGA还支持芯片范围的清除功能。DEV_CLRn可以清除FPGA上所有寄存器的值,而且其优先级高于所有的控制信号。1.2.4MultiTrack互连CycloneⅡ系列FPGA内部M4KRAM、嵌入式乘法器、LE、IOE之间的互连由采用DirectDrive技术的MultiTrack互连结构完成。MultiTrack互连线由连续的不同长度的性能经过优化的连线组成,用以进行不同设计模块之间的通信。DirectDrive技术是专有的确定连线技术,它确保任何功能无论在器件的什么位置都具有一致的布线。这项技术免除了由改变设计引起的系统重优化过程,从而大大简化了模块设计的系统集成过程,使得设计者可以自由添加、修改和移动设计的不同部分,而不会对设计的性能造成不利影响。CycloneⅡ系列FPGA的MultiTrack互连由跨越固定距离的行互连(直接连接、R4和R24)与列互连(寄存器链、C4和C6)组成。对在不同器件中实现的布线,MultiTrack可以保证布线长度具有可预测性与重复性,从而可方便地实现在不同密度器件上的移植设计。行互连用于实现位于同一行的M4KRAM块、嵌入式乘法器以及PLL之间的信号互连。行互连资源包括相邻LAB之间以及相邻块之间的直接连接,可以向左或向右跨越4个块的R4互连以及可以横向跨越24个块的R24互连。直接互连使LAB、M4KRAM、嵌入式乘法器以及锁相环可以直接与自己的左右邻居互连,PLL只能有一边可以连接直接互连或行互连。直接互连可以实现相邻块之间的高速互连而不需要占用其他行互连资源。R4互连的示意图如图1.14所示。R4互连可以向左或向右跨越4个LAB、3个LAB和1个M4KRAM或者3个LAB和1个嵌入式乘法器。通过R4互连可以实现相邻的4个块范围内的高速互连。每一个LAB都有自己向左和向右的R4互连。图1.14中选择了一个LAB作为主LAB,来描述它的两个R4互连。所有LAB都具有相同的R4互连结构。R4互连可以驱动LAB、M4KRAM、嵌入式乘法器、PLL和行IOE,同样也可以被这些块驱动;R4互连与LAB相连时,可以被主LAB与相邻的LAB驱动,主LAB和左侧相邻的LAB可以驱动主LAB的左侧R4互连,主LAB和右侧相邻的LAB可以驱动主LAB的右侧R4互连。R4互连可以驱动相邻的R4互连以扩展其驱动LAB的能力。为了实现跨行驱动,R4互连也可以驱动R24互连、C4和C16互连。图1.14R4互连示意图R24互连可以实现横跨24个LAB、M4KRAM、嵌入式乘法器及IOE的互连,从而实现大范围的互连。R24不直接驱动LAB,而是通过C4和R4实现对LAB的驱动。R24可以直接驱动R24、R4、C4和C16。列互连与行互连类似,用以纵向连接M4KRAM、LAB、嵌入式乘法器和IOE。列互连包括LAB内的寄存器链、C4互连和C16互连。寄存器链可以实现LAB内LE寄存器之间的快速连接。一个LE寄存器链的输出可以与另一个LE寄存器链的输入直接相连,从而实现高速移位寄存器。用寄存器链实现同一个LAB内LE间互连的示意图如图1.15所示。图1.15同一个LAB内LE间互连示意图如图1.16所示的C4互连,可以实现向下或者向上的跨越4个M4KRAM、乘法器或者LAB的互连。每个LAB都有自己向上和向下的C4互连。C4互连可以驱动M4KRAM、嵌入式乘法器、LAB、PLL和IOE中的任何一块,也可以被它们驱动。C4互连还可以驱动其他的C4互连以增加自己的驱动范围。相邻LAB可以驱动对方的C4互连。C16互连可以实现垂直跨越16个LAB、M4KRAM、嵌入式乘法器及IOE的互连,从而实现大范围的互连。C16互连不直接驱动LAB,而是通过C4和R4实现对LAB的驱动。CycloneⅡ系列FPGA内部各功能模块之间的互连途径见表1.4。图1.16C4互连示意图1.2.5全局时钟网络及锁相环CycloneⅡ系列FPGA通过全局时钟网络和锁相环实现时钟管理。CycloneⅡ系列FPGA最多可以有4个锁相环和16个全局时钟网络。每个全局时钟网络由独立的时钟控制块来实现其时钟源的动态选择。PLL时钟输出、CLK引脚输入、DPCLK引脚输入及内部逻辑都可以驱动全局时钟网络。不同CycloneⅡ器件的时钟资源如表1.5所示。CycloneⅡ系列中,EP2C20及以上FPGA的PLL、CLK引脚、DPCLK引脚及时钟控制块的分布如图1.17所示。FPGA每边有4个时钟控制块,在FPGA的4个角的每一个角上各有两个DPCLK引脚,称做CDPCLK,这两个DPCLK引脚同时只能有一个作为时钟输入,另一个作为GPIO使用。图1.17EP2C20及以上FPGA的PLL、CLK引脚、DPCLK引脚及时钟控制块的分布EP2C20以上的CycloneⅡ系列FPGA有16个时钟输入专用引脚,每边4个。如果不作时钟输入使用,则可以通过MultiTrack互连作为通用输入引脚,但只能使用基于LE的寄存器,而不支持基于LOE的寄存器。EP2C20以上的CycloneⅡ系列FPGA共有20个双用途时钟输入引脚(左右各4个、上下各2个以及芯片4个角的每个角上各2个)。CDPCLK引脚输入的时钟信号先经过复用之后才进入时钟控制块,与其他的DPCLK相比,会产生额外的延迟。在DPCLK的引脚输入和驱动输出之间有一个可编程延迟链,用于设定其传播延时,可以用QuartusⅡ软件中的“InputDelayfromDual-PurposeClockPintoFan-OutDestinations”设置延时。DPCLK可以连接到全局时钟网络上用作时钟、异步清除、预置、时钟使能信号,也可以用作类似于PCI接口中的TRDY(TargetReady)、IRDY(InitiatorReady)和外部存储器接口中的DQS等协议控制信号。全局时钟网络可以为FPGA上的各种资源(如LE、IOE、嵌入式乘法器、M4KRAM)提供时钟源,也可以作为控制信号(如时钟、异步清除、预置、时钟使能信号等),还可以用作类似于PCI接口中的TRDY、IRDY和外部存储器接口中的DQS等协议控制信号。每一个全局时钟网络都有一个时钟控制块,用以动态选择该时钟网络的时钟源以及使能或禁用该时钟网络。以下信号可以作为时钟控制块的输入:与时钟控制块在同一侧的4个时钟输入引脚,PLL的3个PLL时钟输出,与时钟控制块在同一侧的4个DPCLK引脚(包括CDPCLK引脚)以及4个片内逻辑生成的信号。但同时最多只能有2个时钟输入引脚、2个PLL时钟、1个DPCLK引脚和1个内部信号输入。这6个输入中,2个PLL时钟和2个时钟输入引脚可以动态地选择,以驱动全局时钟网络,而DPCLK引脚输入和内部信号输入只能静态地选择。时钟控制块的原理如图1.18所示。图1.18时钟控制块的原理图1.18中的CLKSWITCH信号可以在配置文件中设置,或者在使用手动PLL转换特性时动态切换。CLKSELECT[1..0]由内部逻辑产生,当器件工作在用户模式时,可以用来动态选择时钟网络的时钟源。静态时钟的选择在配置文件中实现,不能在用户模式下控制。在用户模式下,可以通过CLKENA动态地使能或禁止全局时钟网络。CycloneⅡ系列FPGA器件使用复用器将16个全局时钟网络组合成一个6位总线,作为列IOE时钟、LAB行时钟和行IOE时钟,如图1.19所示。在LAB层面上,再用复用器将6个LAB行时钟分配给该LAB中的LE寄存器。LAB行时钟可以为LAB、M4KRAM、嵌入式乘法器和行I/O提供时钟。图1.19EP2C20以上器件的时钟分配CycloneⅡ系列FPGA的PLL为器件提供通用时钟,它具有以下特性:(1)输入时钟的倍频和分频。(2)时钟移相。(3)可编程的占空比。(4)三个内部时钟输出。(5)一个专用的外部时钟输入。(6)支持差分时钟输出。(7)支持手动时钟切换。(8)支持三种差分时钟反馈模式。(9)锁定指示输出。(10)具有专门的控制信号。EP2C20以上的CycloneⅡ系列FPGA器件都有4个PLL。PLL的结构如图1.20所示。PLL主要完成压控振荡器VCO的输出频率与输入参考信号频率及相位的同步。输入频率经m分频后进入鉴频鉴相器PFD,经PLL锁定后,PFD的两个输入具有相同的频率,即图1.20PLL的结构一般k取1,也可以设置为2。当k取1时,有PLL输出到全局时钟网络或外部时钟电路的时钟频率为m和c的取值范围为1~32,n的取值范围为1~4。CycloneⅡ系列FPGA的PLL具有可编程的时钟移相能力,移相的步长最小为45°,即移相的分辨率是压控振荡器VCO的周期除以8,如果VCO的频率为1000 MHz,则分辨率为

/8=125ps。PLL的输出不仅可以驱动全局时钟,其c2输出还可以驱动专用的PLL输出引脚PLL<#>_OUT。PLL的输出频率由下式给出:其中,c分别为c0、c1和c2三个计数器的设定值。1.2.6嵌入式存储器CycloneⅡ系列FPGA的存储器由多列M4KRAM块组成。M4KRAM可以灵活地配置成各种工作模式,如真双口RAM、简单双口RAM、单口RAM、ROM或者FIFO,可以带校验位,也可以不带校验位。EP2C35有105个M4KRAM块,共483840位。M4KRAM的特性如表1.6所示。可以把M4KRAM块配置成各种模式的存储器,如表1.7所示。M4KRAM块支持4种时钟模式,表1.8列出了不同的时钟模式。表1.9列出了不同存储器模式下能够使用的时钟模式。来自相邻LAB块的直接互连、R4互连和C4互连都可以驱动M4KRAM的本地互连,最多可达16根线的M4KRAM块的数据输出可以直接驱动R4互连、C4互连以及左右相邻的LAB直接互连。LAB行时钟提供M4KRAM块的时钟,M4KRAM块的本地互连将来自M4K相邻的LAB块的直接互连、R4互连和C4互连的信号转换为地址信号与数据输入信号。图1.21所示为M4KRAM块的布线。图1.21M4KRAM块的布线1.2.7嵌入式乘法器嵌入式乘法器为CycloneⅡ系列FPGA提供了数字信号处理(DigitalSignalProcessing,DSP)的能力,可以用来实现快速傅里叶变换(FFT)、离散余弦变换(DCT)及有限脉冲响应(FIR)等数字信号处理,使CycloneⅡ系列FPGA可以高效地用于音频/视频信号处理。CycloneⅡ系列FPGA的嵌入式乘法器可以配置成9×9或18×18的乘法器进行工作,在这两种工作模式下,如果同时使用输入/输出寄存器,则最高性能可达到250 MHz。各种器件的乘法器资源见表1.10。嵌入式乘法器由两个输入寄存器、一个乘法单元、一个输出寄存器以及相关的控制信号组成,其内部结构如图1.22所示。如表1.10所示,嵌入式乘法器按列排列,根据器件的不同,可以是1~3列。嵌入式乘法器的高度与LAB行的高度一样。嵌入式乘法器在CycloneⅡ系列FPGA中的位置如图1.23所示。图1.22嵌入式乘法器的结构图1.23嵌入式乘法器在CycloneⅡ系列FPGA中的位置嵌入式乘法器的两个操作数可以是符号数,也可以是无符号数。如果两个操作数都是无符号数,则相乘的结果是无符号数;只要其中有一个是符号数,则相乘的结果是符号数。控制信号signa和signb分别表示数据A和数据B是符号数还是无符号数,为1表示该操作数是符号数,signa和signb可以在运行时动态地改变。乘法器的接口布线如图1.24所示。来自相邻LAB块的直接互连、R4互连和C4互连都可以驱动乘法器的行接口互连,乘法器可以通过行接口互连与左右相邻的LAB通信。左右LAB块最多可以各有16根信号线与乘法器的行接口互连连接。乘法器的行接口互连提供乘法器的输入,乘法器可以直接输出到R4互连、C4互连或左右LAB的本地互连。图1.24乘法器的接口布线乘法器有两种工作模式:9×9模式和18×18模式。图1.25是乘法器的18位工作模式,此时乘法器配置成一个18×18的乘法器。这种模式下的两个输入操作数最多可以是18位,它们可以是符号数,也可以是无符号数,输入/输出都可以寄存。图1.25乘法器的18位工作模式9×9模式下,一个嵌入式乘法器块可以配置成两个9×9的乘法器,这种模式下每个乘法器的两个输入操作数最多可以是9位,可以是符号数,也可以是无符号数,输入/输出都可以寄存。每个乘法器只有一个signa和一个signb,当一个乘法器用作两个9×9的乘法器时,输入数据A的两个输入符号必须相同,输入数据B的两个输入也必须具有相同的符号表示。如果不用signa和signb,QuartusⅡ软件将默认乘法器实现无符号乘法。图1.26是嵌入式乘法器的9位工作模式。图1.26乘法器的9位工作模式QuartusⅡ软件通过宏功能模块(Megafunction)的MegaWizardPlug-InManager对乘法器的工作模式和参数进行配置。Altera提供了使用乘法器的两种方法:例化和推断。这两种方法都是通过对lpm_mult(相乘)、altmult_add(乘加)、altmult_accum(相乘累加)等三个宏功能模块的调用来实现的。1.2.8IOE的结构及特性CycloneⅡ系列FPGA支持多种单端I/O标准,这些标准包括LVTTL、LVCMOS、SSTL-2、SSTL-18、HSTL-18、HSTL-15、PCI和PCI-X。当FPGA与其他高级存储器件如双倍数据速率存储器(DDR和DDR2)、SDRAM和QDRⅡSRAM等器件一起工作时,单端I/O标准是关键因素。表1.11列出了CycloneⅡ器件支持的单端I/O标准及其目标性能。与单端I/O标准相比,CycloneⅡ器件的差分信号能提供更好的噪声容限,产生的电磁干扰(EMI)更低,功耗也更低。表1.12列出了CycloneⅡ器件支持的差分I/O标准及其目标性能。图1.27所示为CycloneⅡ系列FPGA的LVDS接口,图1.28所示为CycloneⅡ系列FGPA的RSDS和mini-LVDS接口。图1.27CycloneⅡ系列FPGA的LVDS接口图1.28CycloneⅡ系列FGPA的RSDS和mini-LVDS接口在FPGA市场上,CycloneⅡ器件扩展了FPGA在低成本、大批量领域中的应用。FPGA如今不再仅限于外围应用,也可以在系统中执行很多关键性的处理任务。随着FPGA越来越多地应用于系统的数据路径,当系统存储需求超过片内丰富的存储器资源时,FPGA必须具有与外部存储器件连接的接口。Altera基于成功的Cyclone器件系列,通过和业界领先的存储器供应商合作,确保了用户能够将最新的存储器器件连接至CycloneⅡ系列FPGA。CycloneⅡ器件被设计成为能够通过一个专用的接口与各种标准的存储器进行通信,保证快速可靠的数据传输,传输速率最高达到668Mb/s。开发人员可以在几分钟里把SDRAM和SRAM等器件集成到他们的系统中去,和基于CycloneⅡ优化的、现成的IP控制器核一起运行。表1.13总结了CycloneⅡ器件支持的外部存储器接口。1.3DE2开发平台1.3.1DE2板上资源及硬件布局DE2是Altera公司针对大学教学及研究机构推出的FPGA多媒体开发平台。DE2为用户提供了丰富的外设及多媒体特性,并具有灵活而可靠的外围接口设计。DE2能帮助使用者迅速理解和掌握实时多媒体工业产品设计的技巧,并提供系统设计的验证。DE2平台的设计和制造完全按照工业产品标准进行,可靠性很高。DE2的硬件布局如图1.29所示。DE2平台上提供的资源如下:(1) AlteraCycloneⅡ系列的EP2C35F672C6FPGAU11,内含35000个逻辑单元(LE)。(2)主动串行配置器件EPCS16U30。(3)板上内置用于编程调试和用户API设计的USBBlaster,支持JTAG模式和AS模式;U25是实现USBBlaster的USB接口芯片FT245B;U26是用以控制和实现JTAG模式和AS模式配置的CPLDEPM3128,可以用SW19选择配置模式;USB接口为J9。(4) 512 K字节SRAM(U18)。(5) 8 M字节(1M×4×16)SDRAM(U17)。(6) 1 M字节闪存(可升级至4 M字节)(U20)。(7) SD卡接口(U19)。(8) 4个按键KEY0~KEY3。(9) 18个拨动开关SW0~SW17。(10) 9个绿色LED灯LEDG0~LEDG8。(11) 18个红色LED灯LEDR0~LEDR17。(12)两个板上时钟源(50 MHz晶振Y1和27 MHz晶振Y3),也可通过J5使用外部时钟。(13) 24位CD品质音频的编/解码器WM8371(U1),带有麦克风的输入插座J1、线路输入插座J2和线路输出插座J3。(14) VGADACADV7123(U34,内含3个10位高速DAC)及VGA输出接口J13。(15)支持NTSC和PAL制式的TV解码器ADV7181B(U33)及TV接口J12。(16) 10 M/100 M以太网控制器DM9000AE(U35)及网络接口J4。(17) USB主从控制器ISP1362(U31)及接口(J10和J11)。(18) RS232收发器MAX232(U15)及9针连接器J6。(19) PS/2鼠标/键盘连接器J7。(20) IRDA收发器U14。(21)带二极管保护的两个40脚扩展端口JP1和JP2。(22) 2×16字符的LCD模块U2。(23)平台通过插座J8接入直流9 V供电,SW18为总电源开关。(24) Altera公司的第三方Terasic提供针对DE2平台的130万像素的CCD摄像头模块以及320×240点阵的彩色LCD模块,可通过JP1和JP2接入。图1.29DE2的硬件布局1.3.2DE2原理DE2平台的结构框图如图1.30所示。以下对DE2平台的各部分硬件逐一作以说明。图1.30DE2平台的结构框图

1.FPGA EP2C35F672DE2平台选用的FPGAEP2C35F672是Altera公司的CycloneⅡ系列产品之一。封装为672脚的FinelineBGA,是2C35中引脚最多的封装,最多可以有475个I/O引脚供用户使用。EP2C35F672由33216个LE组成,片上有105个M4KRAM块,每个M4KRAM块由4K(4096)位的数据RAM加512位的校验位共483840位组成。端口宽度根据需求进行配置,可以是1、2、4、8、9、16、18、32或36位。在1、2、4、8、9、16、18等模式下,是真正的双口操作(可以配置成一读一写、两读或两写)。EP2C35片内有35个18×18的硬件乘法器,利用Altera公司提供的DSPBuilder和其他DSP的IP库,可以用EP2C35低成本地实现数字信号。EP2C35片上有4个PLL,可实现多个时钟域。

2.USBBlaster电路与主动串行配置器件DE2平台上内置了USBBlaster电路,使用方便而且可靠,只需要用一根USB电缆将电脑和DE2平台连接起来就可以进行调试。DE2平台上的USBBlaster提供了JTAG下载与调试模式及主动串行(AS)编程模式。除此之外,DE2平台附带的DE2控制面板软件通过USBBlaster与FPGA通信,可以方便地实现DE2的测试。EP2C35是基于RAM的可编程逻辑器件,器件掉电后,配置信息会完全丢失。FPGA可以采用多种配置方式,如使用计算机终端并通过下载电缆直接下载配置数据的方式,以及利用电路板上的微处理器从存储器空间读取配置数据的配置方式。最通用的方法是使用专用配置器件。Altera的新型串行配置器件基于高效的设计架构,其价格只有相应的CycloneⅡ或Cyclone器件平均价格的10%。CycloneⅡ、Cyclone和StratixⅡ器件具有内嵌数据压缩技术的产品,可以使用小型的串行配置器件来配置大规模FPGA,从而进一步降低配置器件的相关成本。这使得CycloneⅡ或Cyclone系列器件和新型串行配置器件的组合成为业界第一个真正的低成本SOPC解决方案。这个组合扩展了CycloneⅡ及Cyclone器件的价格优势,超越了其他低成本可编程产品,为时尚消费领域、通信、计算机外部设备、汽车及工业化等应用领域提供了高性价比的解决方案。Altera公司的主动串行配置器件有EPCS1、EPCS4、EPCS16和EPCS64等4种规格。用于加载CycloneⅡ系列FPGA配置文件的各种规格的存储器容量见表1.14。CycloneⅡ系列FPGA与配置器件的配合见表1.15。由于EPCS1的存储器容量为1048576位,而EP2C5的二进制文件容量为1265792位,超过了EPCS1的容量,这时打开EP2C5的数据压缩功能,就能够用EPCS1来配置EP2C5了。采用配置数据压缩后,根据不同的数据文件,配置数据尺寸一般会降低35%~55%。配置数据被压缩后写入串行配置器件中,FPGA配置时再对压缩数据解压,从而降低了对配置器件容量的要求。注意,在JTAG模式下进行配置时,CycloneⅡ不支持配置数据压缩。SOPC应用中,在Quartus下编译生成的是FPGA的配置文件(.sof或 .pof),在NiosⅡIDE下生成的是程序代码。一般的配置情况是将FPGA的配置文件(.sof或 .pof)烧到EPCS器件中去,而将NiosⅡIDE下生成的程序代码烧到FLASH器件中去(此时需设置NiosⅡ从FLASH器件启动)。也可以将FPGA的配置文件(.sof或.pof)和NiosⅡ IDE下生成的程序代码一齐烧到EPCS器件中去,NiosⅡ从EPCS上启动。此时,需设置NiosⅡ从EPCS器件上启动。

3.SRAM、SDRAM、FLASH存储器及SD卡接口DE2平台提供各种常用的存储器,包含1片8 M字节的SDRAM、一片512 K字节的SRAM和一片4 M字节(在早期版本的DE2上为1 M字节)的FLASH存储器。另外,通过SD卡接口,可以使用SPI模式的SD卡作为存储介质,两个40引脚的插座JP1和JP2可以配置成IDE接口使用,从而可以连接大容量的存储介质。SDRAM与EP2C35F672C6连接的引脚分配见表1.16,FLASH存储器与EP2C35F672C6连接的引脚分配见表1.17,SRAM与EP2C35F672C6连接的引脚分配见表1.18。DE2平台上SD卡接口的原理如图1.31所示。SD卡可以支持两种模式,即SD卡模式和SPI模式。DE2中按SPI模式接线,该模式与SD卡模式相比,速度较低,但使用非常简单。SD卡接口引脚定义见表1.19。图1.31SD卡接口原理图4.按键、波段开关、LED、七段数码管DE2平台提供了4个按键,所有按键都使用了施密特触发防抖动功能,按键按下时输出低电平,释放时恢复高电平。DE2平台上有18个波段开关,用来设定电平状态。DE2平台上有9个绿色的发光二极管和18个红色的发光二极管以及8个七段数码管。按键与波段开关的原理图见图1.32。图1.33为LED的接线原理图。按键、波段开关及LED与EP2C35F672C6连接的引脚分配参见附录B。七段数码管显示原理图见图1.34。图1.32按键与波段开关的原理图图1.33LED接线原理图图1.34七段数码管显示原理图

5.时钟源DE2平台上提供了两个时钟源:一个由晶振Y1提供(50 MHz),连接在EP2C35F672C6的N2引脚上;另一个由晶振Y3提供(27 MHz),连接在EP2C35F672C6的D13引脚上。也可以通过外部时钟输入SMA接口J1输入时钟,这个时钟连在EP2C35F672C6的P26引脚上。

6.音频编/解码器DE2的音频输入/输出功能由Wolfson公司的低功耗立体声24位Σ-Δ音频编/解码芯片WM8731完成。WM8731的音频采样速率为8~96 kHz可调;提供2线与3线两种与主控制器连接的接口方式;支持4种音频数据模式:I2S模式、左对齐模式、右对齐模式和DSP模式;数据位可以是16位或32位。WM8731包含了线路输入、麦克风输入及耳机输出。两路线路输入RLINEIN和LLINEIN可以以1.5 dB的步距在−34.5~12dB范围内进行对数音量调节,完成A/D转换后,还可以经高通数字滤波有效去除输入中的直流成分。一路麦克风输入可以在−6~34 dB范围内进行音量调节,三路模拟输入均有单独的静音功能。DAC输出、线路输入旁路及麦克风输入经过侧音电路后可相加作为输出,输出可以直接驱动线路输出(LOUT和ROUT),也可以通过耳机放大器输出驱动耳机(RHPOUT和LHPOUT)。耳机放大电路的增益可以在−73~6dB范围内以1 dB的步距进行调整。关于音频编/解码器的详细设计和使用参见第4章。

7.VGADACDE2平台的VideoDAC选用了AnalogDevice公司的ADV7123。ADV7123由三个10位高速DAC组成,最高时钟速率为240 MHz,即可以达到最高240 MS/s的数据吞吐率。当fCLK = 140 MHz,fOUT = 40 MHz时,DAC的SFDR(无杂散动态范围)为−53 dB;当fCLK = 40 MHz,fOUT = 1 MHz时,DAC的SFDR为−70 dB。ADV7123的BLANK引脚可以用来输出空白屏幕。ADV7123在100 Hz的刷新率下最高分辨率为1600×1200。关于VGADAC的详细设计和使用参见第4章。

8.电视解码器DE2采用ADV7181作为电视解码芯片。ADV7181是一款集成的视频解码器,支持多种格式的模拟视频信号输入,包括各种制式的CVBS信号、S-Video和YPrPb分量输入;可以自动检测NTSC、PAL、SECAM及其兼容的各种标准模拟基带电视信号,包括PAL-B/G/H/I/D、PAL-M/N、PAL-CombinationN、NTSC-M、NTSC-J、SECAM50 Hz/60 Hz、NTSC4.43和PAL60等。ADV7181的数字输出为16位或8位的与CCIR656标准兼容的YCrCb4:2:2视频数据,还包括垂直同步VS、水平同步HS及场同步等信号。ADV7181共有6路模拟输入,通过配置可以接收CVBS复合视频、S-Video及YPrPb分量等多种模拟信号。DE2平台只选用AIN6作为CVBS复合视频信号的输入,没有使用其他5个模拟输入口。ADV7181的数字输出可以是8位宽度的,也可以是16位宽度的,在DE2平台上显示8位数据宽度。可通过I2C总线读/写ADV7181的寄存器来控制ADV7181的行为。DE2平台上ADV7181的I2C总线读地址时为0x40,写地址时为0x41。关于ADV7181的详细设计和使用参见第4章。

9.以太网控制器10M/100M以太网控制器选用DAVICOM半导体公司的DM9000A。DM9000A集成了带有通用处理器接口的MAC和PHY,支持100Base-T和10Base-T应用,带有auto-MDIX,支持10 Mb/s和100 Mb/s的全双工操作。DM9000A完全兼容IEEE802.3u规范,支持IP/TCP/UDP求和校验,支持半双工模式背压数据流控。关于DM9000A的详细设计和使用参见第4章。

10.USB主从控制器DE2平台上设计了一个USBOTG芯片ISP1362,即可将DE2作为一个USBHost使用,也可将DE2作为一个USBDevice使用,这种设计在多媒体应用中非常合理。ISP1362是飞利浦公司推出的OTG解决方案系列中的产品,它在单芯片上集成了一个OTG控制器、一个高级主控制器(PSHC)和一个基于飞利浦ISP1181的外设控制器。ISP1362的OTG控制器完全兼容USB 2.0及On-The-GoSupplement1.0协议,主机和设备控制器兼容USB 2.0协议,并支持12 Mb/s的全速传输和1.5 Mb/s的低速传输。DE2平台上的ISP1362与Terasic公司的驱动程序配合,可以通过Avalon总线接入NiosⅡ处理器。

11.RS232、PS/2鼠标/键盘连接器、IRDA收发器DE2平台上集成了一个3线RS232串行接口,其原理图如图1.35所示。DE2平台上的PS/2接口原理如图1.36所示,该接口用以连接鼠标和键盘。DE2平台上还集成了一个最高速率可达115.2 Kb/s的红外收发器IRDA,其原理图如图1.37所示。RS232、PS/2及IRDA与FPGA连接的引脚分配见表1.20。图1.35RS232接口原理图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论