《电子系统集成设计导论》课件第5章_第1页
《电子系统集成设计导论》课件第5章_第2页
《电子系统集成设计导论》课件第5章_第3页
《电子系统集成设计导论》课件第5章_第4页
《电子系统集成设计导论》课件第5章_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

5.1可编程芯片概述5.2一般FPGA的内部结构5.3FPGA和CPLD进展述评课程设计习题第5章可编程芯片设计开发

5.1可编程芯片概述

可编程芯片的规模从几千门到几千万门,已经成为SOC系统集成的重要载体。它成为独树一帜的可编程片上系统(SOPC),也是本课程的落脚点之一。与专门投片定制加工的ASIC相比,它们的许多设计技术都是相通的。例如,本书第4章所介绍的电路设计技术的内容完全适用于这里的可编程器件。高级语言也被普遍地用于可编程芯片的高层设计,对此将在第6、7两章再作论述。从高级别顶层到低级别底层之间的综合也有现成的EDA工具,例如FPGAExpress工具等。本章以介绍FPGA的设计概念为主,具体使用细节可参考有关设计FPGA的EDA软件工具手册。5.1.1各种FPGA简介

现场可编程门阵列(FPGA)的品种非常多,它是介于通用器件和真正ASIC之间的一个宽阔中间带,给各类用户提供了极大的方便。

FPGA的特点概括如下。

1.半定制性

供货商:由Xilinx、Altera一类设计公司(FablessCompany——只设计芯片及开发工具软件)提供的一种终端产品。

形式:用户可编写可构造的半成品芯片。

2.可重构性

它不仅可一次构造,而且是可重复再构造的ASIC芯片。如图5-1所示,位于PCB板上的FPGA,有下列构造方式:图5-1系统、PCB与芯片

(1)一次性构造。反熔丝是真正的一次性构造。此外,也可以从ROM或EPROM向FPGA一次性加载构造数据。位于片内/外的EPROM则可用于多次构造。

(2)在线可重构。通过与微机连接的下载电缆,根据设计改变的需要可反复多次向FPGA加载硬件构造数据。

(3)离线可重配置。在某一次构造完成之后,仍然可以根据任务和数据的不同,实现离线动态模块化可配置。

可以将芯片设计成不同可缩放的基本模块,包括数据通路和控制器,根据数据流的不同实现动态配置。

3.规模和速度

规模:从1985年到2005年,可编程器件的规模从500门/单片发展为大于1000万门/单片。

速度:单级门延迟为30ns~0.1ns;系统时钟为10~1000MHz。

按内部逻辑单元的规模,通常将FPGA区分为粗粒度和细粒度两种。细粒度的逻辑单元可能仅由几个管子组成,资源利用率高,但互连难度大。随着工艺的进步和EDA工具的完善,一些新型的FPGA采用了细粒度结构。但是,目前大多数的FPGA仍然采用的是粗粒度结构。粗粒度逻辑单元的规模大,其主要优点是功能强,互连简单,速度快,性能好。

4.其他特点

(1)除反熔丝类

的FPGA外,其他的都可反复使用。FPGA设计是一种硬件线路的实现方案,但是它借用了软方案存储程序的思想,采用RAM或ROM来存储硬件的互连关系。

(2)支持自上而下的设计。由于系统集成规模达到数百万门,已经可以做成真正的可编程片上系统。

(3)芯片只需要一次性投入即可多次使用,所以总的研制费用较低。

(4)容易学习和掌握,设计周期短(例如,海湾战争中美国急需研制新的导弹制导系统时,就采用了这一快速研制形式)。

(5)芯片出厂前的全测试保证了芯片质量。有些FPGA芯片按IEEE1149.1的标准要求,引入边界扫描技术(BST)进行设计,方便了大规模芯片和板级系统的测试。

5.开发平台

开发需要的硬、软件平台比较简单,主要包括:计算机+EDA软件+编程(下载)器。例如:

微机+(Innoveda+FPGAExpress+布局布线开发系统)+EPROM编程器、在系统可编程+PCB设计加工修改条件+系统联调环境。

设计时可以采用硬件高级语言设计,包括VHDL、VerilogHDL和SystemC、SystemVerilog语言,甚至可以采用先进的行为级综合工具综合,因此效率非常之高。

6.PLD与FPGA

将逻辑方程式写成乘积和(与或)形式是实现PLD电路的理论基础。EPLD阵列中的与平面及或平面都可以编程。

PLD发展的过程是从PROM到EPROM,再到EPLD(PAL,GAL)。

早期以PLD——可编程逻辑器件为主,如图5-2所示。后来出现了FPGA——现场可编程门阵列。PLD继续发展,到了大规模阶段,被称之为CPLD——复杂可编程逻辑器件。这时FPGA/CPLD二者的差别已经模糊,所以经常被统一称之为FPGA,或者可编程ASIC。图5-2与平面或平面编程的PLD

7.封装

对于FPGA芯片来说,芯片内核设计和封装设计是独立的。它的Pin(引脚)和Pad(压焊块)并不是一一对应的。它们的数目可以不相等,其结构如图5-3所示。

Pad的个数有74(3020)、98、118、…、166…

Pin的个数有:44、68、84、…、175…

如果Pad数<Pin数,则有些Pin是空脚(N.C);如果Pad数>Pin数,则有些Pad为未用(Unused,未被利用)。图5-3Pin数和Pad数的关系

FPGA的常用封装形式如下:

(1) PLCC(PlasticJ-LeadedChipCarrier,塑封芯片载体,简写为PC)。

(2) PQFP(PlasticQuadFlatPackage,塑封四方扁平封装)。

(3) PGA(CeramicPinGridArray,引脚栅网阵列,简写为PG),如Intel公司的80486芯片就有这种封装形式。

(4) BGA(BallGridArray,球型栅网阵列),如Intel公司的奔腾Ⅳ芯片。5.1.2片内硬连接编程技术

通常FPGA的分类方法有两种:按可编程资源或者按编程技术。资源主要指可编程内部单元和可编程连接线。内部逻辑单元、单元间的互连线是除I/O单元之外两种最重要的可编程资源。各种FPGA内的互连线大多采用3~7层金属布线,采用不同的编程技术。各种FPGA的内部逻辑单元设计技术悬殊较大。所谓可编程是指单元内及单元间的开关连接关系可编程。市场上的FPGA成品芯片,其内部的逻辑单元阵列及内外连接线段、开关、I/O接口这些基础设施已经由制造厂加工完成。用户只要通过编程,就可完成芯片电路和功能的最终确定,从而使芯片成为一个真正可用的功能器件。

FPGA中的编程,实际上是编制开关、编制连接关系,是对芯片中单元内部的各个门之间以及不同单元之间的互连关系加以编写和确定。目前FPGA中普遍采用的编程技术有三种。

1.反熔丝(Antifuse)技术

经过5mA的编程电流,使得多晶和扩散层之间的绝缘层(开路)在高功率下熔化形成电阻很小的硅连接通路(短路)。Actel公司采用的是这项技术(相当于采用烙铁的焊接技术)。

2.RAM/EPROM加开关技术

单元电路内部及单元之间的连接通/断状态需要记忆,静态RAM(SRAM)利用能量正反馈实现了数据存储。如图5-4所示,它记住的是0/1。这些0/1数字代码,通过通路晶体管形成的MOS开关,转换成连线的通和断,它是完成可编程设计的基础。Xilinx公司采用的是这项技术。

EPROM可以与RAM配合,或单独采用。EPROM采用浮栅MOS工艺,上电编程时对浮栅充电,0/1数据得以永久存储。采用紫外线对浮栅放电可以将0/1擦除;E2PROM则用电擦除技术取代紫外线擦除。Altera公司采用的是这项技术。图5-4用静态RAM实现互连可编程

3.在系统可编程技术

在系统可编程(ISP,In-SystemProgramming),又称在线可编程。ISP是一种对器件、电路板或整个电子系统的逻辑功能可以随时修改重构的能力。这里的随时指的是在设计、制造甚至维修的过程中的任一时刻。ISP技术目前非常流行,许多公司的芯片开发都支持这项技术。

凡是采用SRAM和E2PROM编程元件的FPGA原则上都可以实现在系统可编程。这时不需要专门的编程器,只需要计算机接口和另外的编程电缆,就可以直接在实验系统或印制板上进行编程。编程内容由设计师采用EDA工具设计完成后存入计算机中。

更进一步,对于基于SRAM的FPGA还可以进行动态重构,即当系统已经正常运行时可以在一秒之内进行数百次的器件功能改变。5.1.3I/O单元

FPGA不仅内部单元可编程,通常它的I/O单元也是可编程的。I/O单元有以下几种:

(1) DC输出——以直流或低频(<1MHz)驱动一个阻性负载。需要足够的电压、电流、功率或能量,例如驱动LED。

(2) AC输出——以高速(>1MHz)逻辑信号驱动容性负载。

(3) DC输入——输入的开关或传感器信号。

(4) AC输入——输入的高速逻辑信号。

(5)时钟输入——正确快速传送系统时钟信号。

(6)电源输入——提供正确的电源供电电压。在提供电源时要竭力避免引入电压降和噪声。防高压静电的电路和措施也主要在I/O单元设计时解决。5.1.4FPGA的系列举例

下面,以Xilinx为例,介绍它的产品所形成的系列。其他公司的产品情况也是类似。

1000——串行可编程只读存储器(S-PROM),用来存放电路的连接关系数据;

2000——该公司的第一代产品;

3000——性能价格比较好的产品(3100,3300);

4000——更通用,已经被广泛认可,仍然在用;

5000——性能价格比更好的产品(大于5000门的5200);

6000——高档产品,规模大于10万门(6264);

7000——可擦除可编程逻辑器件(EPLD)类产品;

8000——一次性编程(OTP,OneTimeProgram)的硬连线(Hardwire)门海类产品;

9000——复杂可编程逻辑器件(CPLD)类产品,其速度指标为引脚到引脚(PintoPin)的延迟≤5ns

5.2一般FPGA的内部结构

5.2.1内部结构示例

以Xilinx为例,FPGA的内部结构示例如图5-5。其中有两类构造块:CLB和IOB。图5-5FPGA的内部结构

1.输入输出块

输入输出块(IOB,InputOutputBlock)的功能比较单一,它是FPGA与外界联系的通道。由用户进一步再设计的空间不大,只要求设计师在应用中对类别进行配置。这些需要加以定义的输入输出内容有:

(1)输入块——直接输入或者经寄存器输入。

(2)输出块——直接输出或者经由寄存器输出,具有同相、反相或三态缓冲等几种输出方式。

2.可配置逻辑块

可配置逻辑块(CLB,ConfigurableLogicBlock)是构成FPGA可编程功能的基本可编程单元。通过编程,它可以被赋予不同的逻辑功能。

CLB的内部构造如图5-6所示,它包括以下模块:

(1)由函数查表方式实现的不同组合逻辑。

(2)由DX、DY两个触发器构成的记忆单元。

(3)多路开关构成的可编程开关。

通过编程,CLB被用于构造组合、时序逻辑电路模块。

注:3000系列无异步置位端;4000系列以后同时有异步置位、复位端,片内添加了RAM资源。图5-6CLB的内部构造5.2.2FPGA内部单元编程机制

从内部逻辑单元面向编程的结构角度出发,FPGA内部的基本逻辑单元也可以分为三类。

(1)基于多路开关的结构与功能——不同的开关连接形成不同的逻辑功能。

因为多路开关很容易用传输门实现,目前在可编程器件中,常常采用基于多路开关的组合逻辑电路设计和综合技术。图5-7给出可编程单元内部二选一多路开关的符号图和原理图。原理图中的器件包括两个传输门和一个反相器。图5-7给出最简单的一阶情况。此时A的1值用来选择F1;A的0值用来选择F2,即F=AF1+A!F2。这里,若令F2=0,则成为与门F=A·F1。其10种输入的真值表如表5-1所示,很容易验证它们都是正确的。显然,多路开关的逻辑功能是丰富多彩的。图5-7二选一多路开关对于二阶情况,输入端有A、B、F3、F4、F5、F6,输出端为F。显然,此时需要采用三个二选一多路开关。其他高阶情况依此类推。

图5-8给出的是二阶情况。此时当F3=F6=1、F4=F5=0时,F=A⊕B。图5-8四选一多路开关从表5-1已经可以看出,用二选一多路开关可以实现“0”、“1”、“与”(a·b)、“或”(a+b)、“非”(a!)等全部基本逻辑功能。因此,这一逻辑函数是完备的。显然,反复使用多路开关这一逻辑函数,进行同类组合的逻辑运算,就可以实现所有布尔逻辑功能。

山农(Shannon)展开定理与此观点相等效,也说明由多路开关可以组成任意逻辑网络。山农展开定理指出:

任何一个多变量组合逻辑F(A,B,C,D,...)可以展开成以某一自变量(例如A)的A/A!为分水岭的两类组合阵营。只要继续不断地展开,即可形成多阶次的、与多路开关对应的逻辑结构形式:

F(A,B,C,D,...)=AF1+A!F2=A(BF3+B!F4)+A!(BF5+B!F6)=…

(2)基于查找表的结构——单元的逻辑功能通过查找表来实现。

查找表是另外一种实现路线,它也可以用多路开关来实现。

(3)可编程阵列结构——类似于真正的门阵列结构。对这种单元内部的阵列逻辑进行编程可以实现不同的单元功能。

总的来说,不同公司选用不同的单元粒度和可编程结构形式,可能同时混合采用几种结构形式。Altera公司的芯片内部实质是EPLD阵列,Xilinx公司的芯片内部是LCA阵列,其他公司还有别的结构阵列形式。以下所述内部逻辑单元将以Xilinx的芯片为重点进行讨论。5.2.3FPGA单元间互连线编程机制

内连线是实现FPGA可编程功能的基本可编程开关条件。当CLB的基本电路功能确定之后,通过内连线编程实现CLB之间的不同开关连接,从而就实现了不同的电路总体功能。下面,对FPGA的一般内连线分类和不同的连接开关结构设计加以说明。

(1) Xilinx芯片的内连线资源分为以下几种。

①直接连线(块与块之间上下左右)。

②通用内连线(线段+开关矩阵)。

③长线——纵横贯串芯片。

另外,还有连接全局的时钟缓冲器GCLK、ACLK等。

(2)在两个直线之间完成互连,需要采用可编程互连点(PIP,ProgrammableInterconnectionPoint),如图5-9所示。

(3)在4个待连接点之间,需要采用开关矩阵(SwitchMatrix)来实现互连,如图5-10所示。图5-9连接直线用的PIP

图5-104个待连点间的开关矩阵待连接的4点A、B、C、D,通过由6个通路晶体管组成的开关矩阵实现互连互通。

(4)在较长的互连线路径中,需要将逻辑电平及其强度加以存储,这就要用到双向互连缓冲器(BIDI,BIDIrectionalinterconnectbuffers),具体细节可参看参考文献——Smith著《Application-SpecificIntegratedCircuit》。因为在4个被连接端的情况下,总共有6种互连互通的可能,所以需要6个通路晶体管。

5.3FPGA和CPLD进展述评

5.3.1AlteraCPLD进展

Altera公司是EPLD(ErasableProgrammableLogicDevice,可擦除可编程逻辑器件)和CPLD(ComplexPLD)的旗舰。它的基本单元是CMOSPLD结构模式,它从早期的EPLD做起,不断吸收FPGA的优点,规模很大,速度很快。目前,继续论证EPLD和FPGA之间的区别已经变得不太重要。

Altera公司从1999年起,已经占领了许多原为ASIC的市场,特别是通信领域这一主流领域。

1.芯片系列及开发工具

Altera的PLD产品包括MAX、FLEX、ACEX和APEX4大系列,门数依次增加。比较新的APEX20KE系列包括10种器件,规模最大达到260万门,PintoPin的延迟小于3.6ns。支持时钟频率达到622MHz,采用0.18μm、7层金属工艺,工作电压为1.8V。内部有嵌入的CAM(ContentAddressableMemory,内容定址存储器);4个锁相环(PLL);64位64MHzPCI和PCI-X,特别适合各种复杂电路设计。

1) MAX系列

MAX系列(多阵列)有3000、5000、7000和9000等,其中5000采用EPROM工艺,其余均采用E2PROM工艺,门数为600~1.6万。与此属于同类的还有Classic等。

2) FLEX系列

FLEX系列(可变逻辑单元阵列)有6000、8000、10K等,均采用SRAM工艺,门数为1.6万~25万。

3) ACEX系列

ACEX系列(先进复杂单元阵列)有1000等,采用SRAM工艺,门数为5万~25万。

4) APEX系列

APEX系列(先进可编程阵列)有20K等,采用SRAM工艺,门数为3万~260万。

新品种有MAX-Ⅱ、Cyclone、Stratix等。它所号称的SOPC是指有了NiosⅡ这样的嵌入式CPU内核,加上采用软件QuartusⅡ中的SOPCBuilder工具就可以轻而易举地在FPGA中实现嵌入式系统的功能。

Altera提供的开发系统有MAX+PLUSⅡ,比较新的版本为9.5版。它是一体化的集成开发环境,提供从设计输入、编译、优化、验证到最后编程实现的完整开发工具包。它比较适合MAX、FLEX系列芯片设计,例如它对FLEX10K器件系列进行了优化。需要注意,其中的AHDL与VHDL是完全不同的。另外,注意EDA工具ViewDraw与它的接口;同时要注意VHDL+FPGAExpress与它的接口。

另一个开发软件Quartus,更适合大规模芯片设计。2000.02版已经有比较好的优化设计,它使APEX20K和APEX20KE系列器件的设计性能提高40%以上。用Synopsys的FPGAExpress也可以对比较好的前端设计进行无缝衔接。

2.AlteraCPLD器件的优点

1)全自动布局布线后线延迟可控可预测

AlteraCPLD器件连线资源丰富,采用全自动布局布线,无需人工修改底层布线与布局。设计人员精力可以主要关注系统和电路结构。AlteraCPLD采用一种所谓快速布线通道(FastTrack)结构,这是一种均匀的连续式布线方案。其特点是:行与行、列与列、行内、列内延迟均相同。

2) EAB改善了片内存储能力

EAB(EmbeddedArrayBlock)嵌入式阵列块实际上是嵌在AlteraCPLD器件内部的一种SRAM资源。这些SRAM可以方便地定制为RAM、ROM、FIFO、双口RAM等,占用很少的内部逻辑单元。ESB(嵌入式系统块)与EAB基本类似,是一种乘积项结构。

3)提供优化的宏单元库(LPM)

LPM(LibraryofParameterModules)是标准参数化的库模块。库中的模块是已经被参数化了的,设计师在使用时可以修改这些参数以适应不同的电路要求。MAX+PLUS2共有20多种基本的LPM宏单元库。

ALtera也提供IP核,目前已经有130个以上的IP核,全都进行过优化和预测试,主要完成通信领域的DSP功能,例如维特比(Viterbi)译码器,支持实现可编程片上可编程系统(SOPC)解决方案。为此,Altera还推出了SOPC开发板。5.3.2XilinxFPGA进展

Xilinx的最新产品有5V、3.3V和2.5V,5层金属布线的多种供电系列,目前主要在用的有三大系列:Spartan、XC4000和Virtex。它们都有RAM资源。

1.XC4000系列

XC4000系列的结构经历了时间的考验,其产品主要有两种,都很通用。

(1) XC4000XL/XLA系列的XC4002XL~XC4085XL(以及XC4013XLA~XC4085XLA)性能最好,规模为1万门~18万门。

(2) XC4000XV系列的XC40110XV~XC40250XV规模最大,可达50万门。

(3)仍然受到用户欢迎的XC5000也可以归为此类。

2.Spartan系列

Spartan系列也是基于XC4000结构的产品系列,但是Spartan系列的XCS05~XCS50的性能价格最好,用于0.4万门~5万门的设计。Spartan系列和XC4000XL系列一样,也有高速片内RAM。其中采用PLCC84封装的5万门XCS50,对于低端应用最合适。

3.Virtex系列

Virtex系列是高档的,也是比较新的,共有

温馨提示

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

评论

0/150

提交评论