版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章硬件基础2.1概述2.2简单可编程逻辑器件2.3复杂可编程逻辑器件CPLD2.4现场可编程门阵列FPGA2.5可编程逻辑器件的编程与配置2.6可编程逻辑器件的选择
2.1概述
2.1.1可编程逻辑器件的发展历程
1.标准元件
20世纪60年代,单片集成电路的复杂度达到了每芯片几个简单逻辑门的水平。设计者只需从芯片目录中选取合适的元件,将它们插在面包板或印刷电路板上,通过电路板提供的连线对其进行互连,即可实现相应的逻辑功能。随着时间的推移和设计规模的不断扩大,产品目录中逐渐出现了更加复杂的元件,集成电路从小规模集成(SmallScaleIntegrated,SSI)电路(通常包含10个或更少的逻辑门)发展到中规模集成(MediumScaleIntegrated,MSI)电路(通常包含10~100个逻辑门)。我们熟知的TI公司的7400芯片就是MSI电路典型的例子。在20世纪70年代,随着集成度的不断增加,设计师们尝试使用更高密度的元件来实现逻辑功能,微处理器及随机访问存储器(SRAM)这一类通用元件被设计师们广泛用于系统的设计,集成电路的规模也发展到了大规模集成(LargeScaleIntegrated,LSI)电路(通常包含几万个逻辑门),例如Intel8008微处理器等。
2.专用集成电路
随着系统规模的不断扩大,过多的元件及互连线可能导致功耗高、占用空间大、可靠性差等问题,传统的设计手段已无法满足超大规模集成(VeryLargeScaleIntegrated,VLSI)电路(通常包含10万~1000万个逻辑门)、甚大规模集成(UltraLargeScaleIntegrated,ULSI)电路(通常包含1000万以上个逻辑门)的要求。
20世纪80年代,借助于飞速发展的半导体技术及计算机技术,设计师们提出了“EDA技术”的概念,即借助于计算机强大的处理能力,利用软件及硬件描述语言HDL来完成数字系统的设计,数字系统的设计流程也由传统的“自底向上”转换为“自顶向下”,由此出现了ASIC技术。所谓ASIC,是指专门为某一应用领域或为专门用户需要而设计、制造的电路,它可以将某些专用电路或电子系统设计在一个芯片上,构成单片集成系统。利用ASIC设计数字系统时,设计者可以利用计算机对系统进行方案设计和功能划分,系统的关键电路可以采用一片或几片专用集成电路来实现,因而使系统的体积和重量减小,功耗降低,而且这种系统还具有高性能、高可靠性和保密性好等优点。
3.可编程逻辑器件
尽管ASIC具有诸多的优点,但它存在着成本高、开发周期长、无法用于实验原型验证等问题,因而又出现了现场可编程逻辑器件(FPLD),其中应用最广泛的是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)三种。其后,出现了一类结构稍复杂的可编程芯片,即可编程逻辑器件(PLD),为了和后期的CPLD、 FPGA加以区别,我们通常将这一类器件称为简单可编程逻辑器件(SPLD)。利用SPLD能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与-或”表达式来描述,所以,PLD能以乘积项的形式完成大量的组合逻辑功能。
SPLD的代表有可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。
PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上,又发展了一种通用阵列逻辑GAL(GenericArrayLogic),如GAL16V8、GAL22V10等。它们采用EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而其设计具有很强的灵活性,至今仍有许多人使用。这些早期PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx相继推出了类似于PAL结构的CPLD(ComplexProgrammableLogicDvice)以及与ASIC标准门阵列类似的FPGA(FieldProgrammableGateArray),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围广等特点。这两种器件兼容了SPLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10 000件以下)。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。
4.可编程的片上系统
20世纪90年代以来,出现了可编程的片上系统SoPC和片上系统SoC技术,它们是PLD和ASIC技术融合的结果,涵盖了实时化数字信号处理技术、高速数据收发器、复杂计算以及嵌入式系统设计技术的全部内容。2.1.2PLD的表示方法
1.连接方式
门阵列的每个交叉点称为“单元”,单元的连接方式共有三种情况,如图2-1所示。
(1)硬线连接。硬线连接是固定的连接,不可以编程改变。
(2)可编程接通单元。它依靠用户编程来实现接通连接。
(3)可编程断开单元。编程实现断开状态,这种单元又称为可编程擦除单元。图2-1PLD连接符号
2.基本门电路的表示方式
PLD中的基本门电路符号如图2-2所示。图(a)为与门;图(b)为或门;图(c)为输出恒等于0的与门及其简化表示形式;图(d)中与门的所有输入均不接通,保持“悬浮”的1状态;图(e)为具有互补输出的输入缓冲器;图(f)为三态输出缓冲器。图2-2PLD的基本门电路符号
3. PLD的编程技术
常见的PLD编程技术有以下几种:
(1)熔丝工艺。
(2) EPROM,紫外线擦除电可编程逻辑器件,其工作时用较高电压编程,用紫外线擦除,可编程几十次。
(3) EEPROM,电可擦写编程器,其工作时,用较高电压编程,用电擦除,编程次数稍多。
(4) SRAM,静态随机存储器,可实现无数次擦写,编程速度、编程要求优于前几种方法,但由于具有易失性,因此需专门配置芯片。
(5) Flash,电可擦除编程ROM,既具有EPROM结构简
单、编程可靠的优点,又具有EEPROM擦除快速、集成度高的优点。
2.1.3乘积项原理
人们通过研究发现,任何组合逻辑电路都可以由与门-或门两级电路构成,而只要在组合逻辑电路中引入能够记忆电路状态的存储单元或延迟单元,例如触发器、锁存器等,就可以构成时序逻辑电路。由此人们提出了一种可编程逻辑电路结构,即乘积项(Product-Terms)可编程逻辑结构,其原理图如图2-3所示。图2-3PLD结构图由图2-3可知,这一类型器件的核心是预先设计好的可编程的与门阵列、或门阵列,使用时设计者只需要根据逻辑函数对输入和构成乘积项的与门之间的连接以及由与门构成的乘积项与或门之间的连接进行编程,就可以实现特定的逻辑功能。输入电路由输入缓冲器构成,通过它可以得到互补的输入信号变量送到与阵列,若在输入电路中包含锁存器或寄存器等即可组成时序电路。输出电路也可分为组合和时序两种,组合方式的或阵列连接三态门输出,而时序方式的则经过寄存器和三态门输出。为了增加器件的灵活性,可以根据需要将输出反馈到与阵列的输入。
【例2.1】实现一个如下的逻辑函数:
Y=AB+AB
Z=AB
解(1)要实现上面的逻辑函数,则该PLD需要包括2个输入和2个输出。
(2)由于PLD输入电路包括输入缓冲器,故可以直接实
现A、A、B、B。
(3)观察布尔表达式可以看出,要实现以上逻辑功能,需3个乘积项:AB、AB、AB,将与门阵列相应位置的连接线进行编程连接即可。
(4)同理,根据布尔表达式,对或门阵列相应位置进行编程连接,即可得到相应的输出信号Y、Z,编程后的PLD结构图如图2-4所示。图2-4例2-1编程后的结构图2.1.4查找表原理
在FPGA中,实现组合逻辑电路功能的基本电路是查找表(Look-Up-Table,LUT)和数据选择器,而触发器仍是实现时序逻辑电路的基本电路。LUT实质上就是一个SRAM。目前FPGA中使用较多的是4个输入、1个输出的LUT,所以每一个LUT可以看成是一个4根地址线的16×1位的SRAM。利用SRAM实现组合逻辑函数时,只需列出真值表,输入作为地址,输出作为存储内容,将内容按地址写入即可。具体步骤如例2.2所示。
【例2.2】利用LUT实现函数F =ABC+ABCD+AC。
解首先列出F的真值表,如表2-1所示。将F的值写入SRAM中(如图2-5所示),这样,每输入一组ABCD信号进行逻辑运算,就相当于输入一个地址进行查表,就可以找出地址对应的内容,并将其输出,在输出F端便得到该组输入信号逻辑运算的结果。图2-5四输入查找表当用户通过原理图或HDL语言描述一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能结果,并把结果写入FPGA中的SRAM,这就是所谓的编程。此后,SRAM中的内容保持不变,LUT就具有了确定的逻辑功能。待FPGA加电后,FPGA首先从PROM中读入编程数据进行SRAM初始化,然后才能完成预定义的逻辑功能。2.1.5可编程逻辑器件的分类
1.按集成度分类
从结构的复杂程度上一般可将PLD分为简单PLD(SPLD)和复杂PLD(CPLD)(如图2-6所示),或分为低密度PLD(LDPLD)和高密度PLD(HDPLD)。所谓简单PLD,是指以逻辑门为编程单位,PROM、PLA、PAL、GAL均属于此类;而复杂PLD则以逻辑块为编程单元,CPLD、FPGA属于复杂PLD。图2-6按集成度PLD分类示意图
2.按编程特性分类
从编程特性上可将PLD分为一次可编程(OTP)和重复可编程两类。OTP型PLD器件包括PROM、PAL及熔丝型FPGA;重复可编程型PLD采用的是MOS工艺,包括EPROM、EEPROM、SRAM和Flash。
2.2简单可编程逻辑器件
简单可编程逻辑器件包括PROM(可编程只读存储器)、PAL(可编程阵列逻辑)、PLA(可编程逻辑阵列)和GAL(通用阵列逻辑)四类,它们都属于阵列型结构的PLD,其结构如图
2-3(a)所示。它们之间的差异在于编程特性与输出方式不同,其工作原理已在2.1.4节讲述,这里不再赘述。本节仅讨论它们的电路结构特点,四种SPLD电路结构特点如表2-2所示。图2-7、图2-8和图2-9分别画出了PROM、PLA、PAL和GAL的阵列结构图。从这些阵列结构图可以看出,可编程阵列逻辑PAL和通用阵列逻辑GAL的基本门阵列结构相同,均为与门阵列可编程,或门阵列固定连接,也就是说,每个或门的输出是若干个乘积项之和,其中乘积项的数目是固定的。图2-7PROM阵列结构图2-8PLA阵列结构图2-9PAL和GAL阵列结构
1. PROM与PLA比较
PROM与PLA电路结构极为相似,都是由一个与门逻辑阵列、一个或门逻辑阵列和输出缓冲器组成的。两者之间的差异在于PROM的与门逻辑阵列是固定的,而PLA的与门逻辑阵列是可编程的。也就是说PROM的与门逻辑阵列将输入变量的全部最小项都译出了,而PLA的与门逻辑阵列只产生所需要的少得多的乘积项。
2. PAL和GAL的比较
PAL和GAL的差异在于其输出的结构不相同。PAL有几种固定的输出结构,选定芯片型号后,其输出结构随之而定。
例如,在图2-10所示的PAL16L8的输出结构中,或门的输出最多可以包含7个乘积项,最上面的与门所对应的乘积项用来控制三态门的输出。当与门输出为“0”时,三态门禁止,输出呈高阻状态,I/O引脚作为输入使用;当与门输出为“1”时,三态门被选通,I/O引脚作为输出使用。两种情况下信号都可以通过右面的互补输出缓冲器反馈至与门阵列的输入端。图2-10只画出了其中一个输出,PAL16L8有8个输出,由于8个输出的时间有可能不一致,因此称为异步I/O输出结构。图2-10异步I/O输出结构
PAL16R8的输出结构如图2-11所示,称为寄存器输出结构。系统时钟的上升沿来到后,或门的输出被存入D触发器,然后通过选通三态缓冲器再将它送至输出端,该输出是低电平有效,而且Q还可以反馈至与门阵列,这样能记忆原来的状态,从而实现时序逻辑功能。图2-11寄存器输出结构
GAL的可编程输出结构称为输出逻辑宏单元OLMC(OutputLogicMacroCell)。图2-12是GAL22V10的OLMC内部逻辑图,从图中看出,OLMC中除了包含或门阵列和D触发器之外,还多了两个多路选择器,其中4选1多路选择器用来选择输出方式和输出极性,2选1多路选择器用来选择反馈信号,而这些多路选择器的输出由两位可编程特征码S1、S2来控制。图2-12GAL22V10的OLMC内部逻辑图2.3复杂可编程逻辑器件CPLD
2.3.1CPLD的基本结构
不同厂家采用的工艺稍有差异,但总体来说,通常都由可编程逻辑宏单元(Macrocell)、可编程连线(PIA)和I/O控制块三部分构成,采用EPROM、EEPROM、Flash等工艺制造。其通用结构如图2-13所示。图2-13通用的CPLD结构示意图
1.可编程逻辑宏单元
逻辑宏单元内部主要包括与或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。CPLD器件与GAL器件相似,其逻辑宏单元同I/O在一起,称为输出逻辑宏单元,但其宏单元及与门阵列数目比GAL大得多。CPLD器件的宏单元在内部,称为内部逻辑宏单元。
宏单元的具体结构(以AlteraEPM7032、EPM7064及EPM7096宏单元为例)如图2-14所示。图2-14EPM7032、EPM7064及EPM7096宏单元结构图2-14左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通可实现与逻辑。后面的乘积项选择矩阵是一个或阵列。两者一起完成组合逻辑。图右侧是一个可编程触发器,它的时钟、清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零信号。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O脚。可编程逻辑宏单元具有如下特点:
(1)多触发器结构和“隐埋”触发器结构。GAL器件每个输出宏单元只有一个触发器,而CPLD的宏单元内部通常含两个或两个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出通过相应的缓冲电路反馈到与门阵列,从而与其他触发器一起构成较复杂的时序电路。这些不与输出端相连的触发器就称为“隐埋”触发器。这种结构的优点在于可以增加其内部资源。
(2)乘积项共享结构。由图2-14可以看出,每个宏单元只提供5个乘积项,虽然这已经足以应付大多数的逻辑应用,但当要实现更加复杂的逻辑函数时,就必须借助于其他的乘积项。CPLD提供了一种机制,允许每个宏单元提供未使用的乘积项供其他宏单元使用和共享,通常称它们为扩展乘积项。共享扩展乘积项如图2-15所示,这种乘积项可以被任何宏单元使用和共享。并行扩展乘积项如图2-16所示,这种乘积项允许从邻近宏单元借用宏单元。图2-15共享扩展乘积项图2-16并行扩展乘积项
(3)异步时钟和时钟选择。一般GAL器件只能实现同步时序电路,而在CPLD器件中各触发器的时钟可以异步工作,有些器件中触发器的时钟还可以通过多路选择器或时钟网络进行选择。此外,逻辑宏单元内触发器的异步清零和异步置位也可以用乘积项进行控制,因而使用更加灵活。
2.可编程连线阵列
可编程连线阵列PIA(ProgrammableInterconnectArray)的作用是在各逻辑宏单元之间以及逻辑宏单元和I/O单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自专用输入或输入端的信号,并将宏单元的信号反馈到其需要到达的目的地。这种互连机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部设计。
3.可编程I/O单元
I/O单元是内部信号到I/O引脚的接口部分。在CPLD中,通常只有少数几个专用输入端,大部分端口均为I/O端,而且系统的输入信号常常需要锁存。因此I/O常作为一个独立单元来处理。
CPLD的I/O由输入缓冲器、输入寄存器/锁存器、可编程数据选择器和三态输出缓冲器组成,CPLD的I/O示意图如图
2-17所示。这些三态输出缓冲器一般由全局使能信号控制或直接与电源或地相连。图2-17CPLDI/O示意图2.3.2Altera公司的CPLD器件
1. Altera的可编程解决方案
Altera的可编程解决方案包括:①FPGA、CPLD和结构化ASIC技术;②IP核;③可定制嵌入式处理器;④现成的开发包。Altera可编程器件除了具有PLD的一般特点外,还具有改进的内部结构、先进的处理技术、现代化的开发工具以及多种兆功能选用等优点。
(1)高性能。Altera器件采用先进的CMOS技术,具有非常低的功耗和相当高的速度;采用连续式互连结构,在整个芯片内提供快速、连续的信号延时;诸如对芯片内部电路的专业改进也增强了系统性能。
(2)高密度逻辑集成。为缩小印制板的尺寸和成本,设计人员总是寻求尽可能高的集成度,试图通过把更多的逻辑器件集成到更少的器件中以降低成本。此外,对现有的设计也经常进行二次开发。高逻辑集成度的CPLD为上述要求提供了很好的解决方案。Altera器件的密度从300门到100万门,能够集成现有的各种逻辑器件,包括小规模及大规模标准逻辑器件、PLD、FPGA或ASIC器件。
(3)较短的开发周期。Altera的快速、直观、易于使用的QuartusⅡ和MAX + PLUSⅡ软件能够极大地缩短开发周期。
(4)高性能价格比。Altera公司不断改进产品的设计与制造工艺,十多年积累的经验使其工艺技术及制造工艺非常先进,因此能够提供性能价格比合理的可编程器件。Altera的PLD的成本与门阵列相当。
(5)兆功能模块。Altera的CPLD高达100万门的集成度,使得在单个可编程器件中实现一个完整的数字系统成为可能。为推进这种高集成度器件的应用,进一步缩短设计周期,Altera提供了兆功能模块并支持AMPP功能。兆功能模块具有高度的灵活性及固定功能器件所不能达到的性能,如高速有限冲激响应FIR滤波器等。兆功能可以实现总线协议、DSP、图像处理、高速网络、微处理器及微型外设等。
(6)在系统可编程(ISP)。Altrea器件的在系统可编程功能提高了设计的灵活性,简化了样品的制作过程及流水线的生产过程,并且可以对产品进行快速而有效的现场升级。Altera的ISP使用标准JTAG测试端口,可以在一个独立的生产过程中对器件进行编程,并可以对印刷电路板进行功能测试。
2. Altera公司的主要CPLD产品
1) MAX7000
Altera的MAX7000系列CPLD是基于乘积项结构的可编程逻辑器件,适用于实现高速、复杂的组合逻辑。该系列器件具有以下主要特点:
①采用第二代多阵列矩阵(MAX)结构。
②通过标准的JTAG接口,支持在系统可编程ISP。
③集成密度为600~5000个可用门。④引脚到引脚之间的延时为6ns,工作频率最高可达151.5MHz。
⑤ 3.3V或者5V电源供电。
⑥在可编程功率节省模式下工作,每个宏单元的功耗可降到原来的50%或更低。
⑦高性能的可编程连线阵列(PIA)提供一个高速的、延时可预测的互连网络资源。
⑧每个宏单元中可编程扩展乘积项可达32个。
⑨具有可编程保密位,能够全面保护设计者的知识产权。
MAX7000系列中的高密度器件称为MAX7000E系列,它包括EPM7128E、EPM7160E、EPM7192E和EPM7256E。这些器件有一些加强的功能,比如附加全局时钟、附加输出使能控制以及增加连线资源、快速输入寄存器等。
MAX7000系列的另外两个器件族分别为MAX7000A和MAX7000S系列。这两个系列除了具有MAX7000E的增强特性外,还具有在系统可编程(ISP)功能和JTAG边界扫描测试(BST)电路,它们包括EPM7032S、EPM7064S、EPM7128S、EPM7160S、EPM7192S、EPM7256S、EPM7128A、EPM7256A等。
2) MAXⅡ
MAXⅡ系列是Altera最新一代的CPLD产品。它采用全新的构架、0.18μmFlash工艺和6层金属走线,它的逻辑容量从240个到2210个LE,即等效宏单元数从192个到1700个。
与传统的CPLD相比,它可以提供给用户更多的逻辑资源和更多的I/O,同时又有更低的功耗。另外,MAXⅡ系列支持MultiVolt核,它能够在1.8V、2.5V或3.3V电源下工作。该特性将电源线数量减至最少,从而简化了板级设计。
MAXⅡ使用MultiVoltI/O接口,能够和具有1.5V、1.8V、2.5V或3.3V逻辑电平的其他器件无缝连接。MAXⅡ还支持实时在线配置,用户可以在不影响正在工作的逻辑的基础上,对MAXⅡ内部的Flash进行配置,在配置Flash完成后,用户可以选择立即把逻辑信号加到内核工作或者等到下一次重新上电。
MAXⅡ作为大容量、低成本的CPLD可以用来取代一些小FPGA、ASSP和标准逻辑器件。其整个产品系列参见表2-3。2.4现场可编程门阵列FPGA
2.4.1FPGA的基本结构
FPGA由六个部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等,其结构示意图如图2-18
所示。图2-18FPGA结构示意图
1.可编程输入/输出单元
为了使FPGA有更灵活的应用,目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与I/O物理特性;可以调整匹配阻抗特性、上/下拉电阻;可以调整输出驱动电流的大小等。
2.基本可编程逻辑单元
LE内部结构如图2-19所示。FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元主要由查找表、寄存器等组成。FPGA内部查找表一般为4输入,查找表一般完成纯组合逻辑功能。FPGA内部寄存器的结构相当灵活,可以配置为带同步/异步复位或置位、时钟使能的触发器,也可以配置为锁存器。
FPGA通常依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但是不同厂家的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。例如,Altera可编程逻辑单元LE是由一个寄存器加一个查找表构成的。Altera大多数FPGA将10个LE有机地组合起来构成更大的功能单元——逻辑阵列模块LAB(LogicArrayBlock)。
Xilinx的可编程逻辑单元称为Slice,它由上下两个部分构成,每个部分都由一个寄存器加一个查找表组成,被称为逻辑单元LC(LogicCell)。而Lattice底层逻辑单元称为可编程功能单元PFU(ProgrammableFunctionUnit),它是由8~9个寄存器加8个LUT构成的。图2-19LE内部结构图
3.嵌入式块RAM
目前大多数FPGA都有内嵌的块RAM(BlockRAM)。 FPGA内部嵌入可编程RAM模块,大大拓展了FPGA的应用范围和使用灵活性。FPGA内嵌的块RAM一般可以灵活配置为单端口RAM(SPRAM)、双端口RAM(DPRAM)、伪双端口RAM(PseudoDPRAM)、CAM(ContentAddressableMemory)、FIFO(FirstInFirstOut)等常用存储结构。所谓CAM,即内容地址存储器。CAM这种存储器在其每个存储单元中都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM是一种根据地址读、写数据的存储单元;而CAM和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。不同器件厂家或不同器件族的内嵌块RAM的结构不同,Xilinx常见的块RAM大小是4Kbit和18Kbit两种,Lattice常用的块RAM大小是9Kbit,Altera的块RAM最为灵活,一些高
端器件内部同时含有3种块RAM结构,分别是M512RAM
(512bit)、M4KRAM(4Kbit)和M-RAM(512Kbit)。
4.丰富的布线资源
FPGA内部有着非常丰富的布线资源,这些布线资源根据工艺、长度、宽度和分布位置的不同而被划分为不同的等级,有一些是全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位/置位的布线;有一些称为长线资源,用以完成器件Bank(分区)间的一些高速信号和一些第二全局时钟信号(有时也被称为LowSkew信号)的布线。
5.底层嵌入功能单元
随着FPGA的发展,这些模块被越来越多地嵌入到FPGA的内部,以满足不同场合的需求。目前大多数FPGA厂家都在FPGA内部集成了DLL或者PLL硬件电路,用以完成时钟的高精度、低抖动的倍频、分频、占空比调整、移相等功能。
Altera芯片集成的是PLL,Xilinx芯片主要集成的是DLL,Lattice的新型FPGA同时集成了PLL与DLL以适应不同的需求。目前,越来越多的高端FPGA产品将包含DSP或CPU等软处理核,从而FPGA将由传统的硬件设计手段逐步过渡为系统级设计平台。
6.内嵌专用硬核
FPGA中的内嵌专用硬核主要是为某些特定应用场合开发的,例如针对某些高端通信应用场合所需的SERDES(串并收发单元),Altera在其StratixGX器件族内嵌了3.1875Gb/s的SERDES,Xilinx的对应器件族是VirtexⅡPro和VirtexProX,而Lattice支持SERDES的器件族有SC系列和FPSC系列。2.4.2Altera公司的FPGA器件
Altera公司自1992年推出第一款FPGA产品FLEX8000至今,不断秉承创新理念,推出了近20个系列的FPGA产品,表2-4列出了Altera公司FPGA产品一览表。
1. Stratix系列
Stratix器件于2002年推出,采用1.5V、0.13μm全铜SRAM工艺,为满足高带宽系统的需求进行了优化。Stratix器件提供了时钟管理、数字信号处理(DSP)应用、差分和单端I/O标准。此外,Stratix器件具有片内匹配和远程系统升级能力。Stratix器件系列是功能丰富的高带宽系统方案,开创了可编程芯片系统(SoPC)方案的新纪元。StratixFPGA系列的特性见表2-5。
2. Cyclone系列
Cyclone系列FPGA于2002年12月推出,采用基于成本优化的全铜1.5VSRAM工艺,相对竞争对手的FPGA仅有其一半的成本,且依然提供了强大的功能。Cyclone系列具有最高达
20060个逻辑单元和288Kb的RAM,除此之外,Cyclone系列的FPGA还集成了许多复杂的功能。
Cyclone系列FPGA提供了全功能的锁相环(PLL),用于板级的时钟网络管理和专用I/O接口,这些接口用于连接业界标准的外部存储器器件。Altera的NiosⅡ系列嵌入式处理器的IP资源也可以用于Cyclone系列FPGA的开发。设计者只需下载Altera提供的完全免费的QuartusⅡ网络版开发软件就可以立即进行Cyclone系列FPGA的设计和开发。Cyclone系列FPGA的主要特性见表2-6。2.5可编程逻辑器件的编程与配置
CPLD器件编程和FPGA器件配置可以使用专用的编程器完成,也可以使用下载编程电缆完成。如Altera公司的ByteBlasterMV,它与Altera器件的接口一般采用10芯连接器,连接器顶视图如图2-20所示,ByteBlasterMV10芯接口引脚信号见表2-7。图2-20连接器顶视图2.5.1CPLD器件的编程
在系统编程(ISP)技术是20世纪80年代末Lattice公司首先提出的一种先进的编程技术。所谓“在系统编程”,是指对器件、电路板或整个电子系统的逻辑功能可随时进行修改或重构的能力。这种重构或修改可以在产品设计、制造过程中的每个环节进行,甚至在交付用户之后仍可进行。利用ISP编程时,不需要使用编程器,只需要通过编程电缆将计算机系统与目标器件相连,直接在目标系统或印刷线路板上进行编程。这种方式有利于提高系统的可靠性,便于系统板的调试和维修。
ISP主要用于CPLD器件的编程,图2-21是AlteraCPLD器件MAX7000的ISP编程连接示意图,其中,ByteBlasterMV通过并口与计算机相连。图2-21MAX7000的ISP编程连接示意图需要注意的是,MAX7000系列CPLD是通过JTAG接口对器件进行在系统编程的。在图2-21中,使用了JTAG的TCK、TDO、TMS、TDI这四条信号线与ByteBlasterMV的10芯接口相连。
JTAG接口是由IEEE联合测试行动组(JTAG)于20世纪80年代开发的,称为IEEE1149.1-1990边界扫描测试技术规范。利用JTAG测试口作为编程口,一方面可以省去专用的编程口,减少系统的引出线;另一方面由于JTAG本身是工业标准,用它来编程有利于各可编程逻辑器件编程接口的统一,从而产生了IEEE编程标准——IEEE1532。
同样,也可以使用JTAG链对多个支持JTAG接口ISP的CPLD器件进行编程,多CPLD芯片ISP编程连接示意图如图
2-22所示。图2-22多CPLD芯片ISP编程连接示意图2.5.2FPGA器件的配置
1.概述
Altera为其FPGA器件提供了若干种配置方式,不同的器件可能采取不同的配置方式。但总的来说,主要有以下三种配置方式:
(1) FPGA主动(active)方式。所谓“主动”,是指由目标FPGA来主动输出控制和同步信号。主动方式又分为AS(主动串行)、AP(主动并行)两种。
(2) FPGA被动(passive)方式。所谓“被动”,是指由系统中的其他设备发起并控制配置过程。这些设备包括配置芯片、单板上的微处理器、CPLD等智能设备。FPGA在配置过程中始终处于被动地位,只是输出一些状态信号来配合配置过程。被动方式又可细分为PS(被动串行)、FPP(快速被动并行)、PPS(被动并行同步)、PPA(被动并行异步)、PSA(被动串行异步)五种方式。
2.配置过程
图2-23显示了FPGA配置循环波形图。从图中可以看出FPGA上电后首先进入配置模式,当最后一个数据载入到FPGA后,进入初始化状态,在初始化完成后,进入用户模式状态。在配置模式和初始化状态下,用户I/O均处于高阻状态,只有进入用户模式状态下,用户I/O才能按照用户设计的功能工作。图2-23FPGA配置循环波形图无论采取何种方案配置FPGA,其配置流程基本相同,通常分为复位、配置和初始化三个步骤。FPGA配置流程如图
2-24所示,FPGA上电后,当其nCONFIG管脚被拉低时,器件处于复位状态。这时所有的配置RAM被清空,当FPGA的nCONFIG管脚出现一个从低到高的跳变后,进入配置状态。同时芯片还会去采样配置模式(MSEL)管脚的信号状态,决定采取何种配置方式。在接收配置数据的过程中,配置数据由DATA管脚送入,而配置时钟信号由DCLK管脚送入,配置数据在DCLK的上升沿被锁存到FPGA中。当配置数据被全部写入到FPGA后,FPGA上的CONF_DONE信号就会被释放,初始化过程开始,但芯片并未开始工作。
INIT_DONE是初始化完成的标志信号。在初始化过程中,内部逻辑、内部寄存器和I/O寄存器将被初始化,I/O驱动器将被使能。当初始化完成后,器件上漏极开路输出的INIT_DONE管脚被释放,同时被外部的上拉电阻拉高。这时,FPGA进入用户模式,所有的内部逻辑以及I/O都按照用户的设计运行。图2-24FPGA配置流程图
3.配置方式
1)使用下载电缆配置FPGA
PS方式下可以利用PC通过ByteBlaster等下载电缆对FPGA器件进行在线配置,配置过程与上类似。PS方式下ByteBlaster配置电路如图2-25所示。图2-25PS方式下ByteBlaster配置电路
2)使用微处理器配置FPGA
FPGA有一个显著的缺点就是保密性不强。在有些应用场合,设计的保密性和可升级性非常重要。用微处理器来配置FPGA能够很好地解决这个问题。微处理器配置FPGA电路如图2-26所示。图2-26微处理器配置FPGA电路图利用微处理器配置FPGA时,为了启动配置,微处理器必须向nCONFIG提供一个由低到高的跳变。当nCONFIG变高时,器件脱离复位状态并释放漏极开路管脚nSTATUS,一旦nSTATUS释放成功,FPGA就可以开始接收数据。当nSTATUS被拉高时,微处理器应该在DATA0管脚上一次放
置1比特的配置数据并且必须首先传送LSB比特。这时,FPGA就可以从DATA0管脚接收数据,当DCLK时钟上升沿到来时,数据就被锁存进FPGA中。数据接收完成后,FPGA释放CONF_DONE信号,CONF_DONE由低变高,配置完成,进入初始化状态。当INIT_DONE由低变高时,初始化完成,进入用户模式状态。进入用户模式后,通过将nCONFIG管脚拉高来启动重配置。
3)使用JTAG配置FPGA
使用JTAG配置FPGA,有四个必需的信号(TDI、TDO、TMS、TCK)以及1个可选信号(TRST)。其中,TDI用于测试数据的输入;TDO用于测试数据的输出;TMS是模式控制管脚,决定JTAG电路内部的TAP状态机的跳转;TCK是测试时钟,其他信号线必须与之同步。用户可以通过Altera的下载电缆或微处理器等智能设备从JTAG口配置FPGA,JTAG配置FPGA电路如图2-27所示。图2-27JTAG配置FPGA电路图2.6可编程逻辑器件的选择
2.6.1可编程逻辑器件选择的依据
(1)器件的货源和开发工具的支持。目前,主要的FPGA供应商有Xilinx公司、Alt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版建筑垃圾清运及资源化利用合同3篇
- 二零二五年度招投标保证担保合同协议书范本3篇
- 2025年度水电设施节能减排承包服务合同4篇
- 二零二五版MCN达人内容创作合作合同3篇
- 二零二五年度房产交易资金监管协议4篇
- 2025年度模具行业市场调研与分析合同4篇
- 二零二五版交通事故致人受伤后续治疗费用补偿合同3篇
- 二零二五版煤矿安全生产标准化转让合同规范3篇
- 二零二五年度城市公交车车体广告租赁服务协议4篇
- 2025年智慧农业设施建设项目合同3篇
- 劳务协议范本模板
- 2024年全国职业院校技能大赛高职组(生产事故应急救援赛项)考试题库(含答案)
- 2025大巴车租车合同范文
- 老年上消化道出血急诊诊疗专家共识2024
- 人教版(2024)数学七年级上册期末测试卷(含答案)
- 2024年国家保密培训
- 2024年公务员职务任命书3篇
- CFM56-3发动机构造课件
- 会议读书交流分享汇报课件-《杀死一只知更鸟》
- 重症血液净化血管通路的建立与应用中国专家共识(2023版)
- 果壳中的宇宙
评论
0/150
提交评论