可编程逻辑器件的发展历程及概述.docx
- 文档编号:27387132
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:42
- 大小:131.97KB
可编程逻辑器件的发展历程及概述.docx
《可编程逻辑器件的发展历程及概述.docx》由会员分享,可在线阅读,更多相关《可编程逻辑器件的发展历程及概述.docx(42页珍藏版)》请在冰豆网上搜索。
可编程逻辑器件的发展历程及概述
可编程逻辑器件的发展历程及概述
发布日期:
2006-2-1 16:
25:
16 作者:
未知 出处:
不详
当今社会是数字化的社会,是数字集成电路广泛应用的社会。
数字集成电路本身在不断地进行更新换代。
它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。
但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。
系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。
由于结构的限制,它们只能完成简单的数字逻辑功能。
其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。
典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑功能。
这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。
PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输.出可以通过触发器有选择地被置为寄存状态。
PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。
还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。
PLA器件既有现场可编程的,也有掩膜可编程的。
在PAL的基础上,又发展了一种通用阵列逻辑GAL(GenericArrayLogic),如GAL16V8,GAL22V10等。
它采用了EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。
这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。
为了弥补这一缺陷,20世纪80年代中期。
Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD(plexProgrammab1eLogicDvice)和与标准门阵列类似的FPGA(FieldProgrammableGateArray),它们都具有体系结构和逻辑单元灵活、集成度高以及适用X围宽等特点。
这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。
与门阵列等其它ASIC(ApplicationSpecificIC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。
几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。
(注:
不同厂家的叫法不尽相同,Xilinx把,基于查找表技术,SRAM工艺,要外挂配置用的EEPROM的PLD叫FPGA;把基于乘积项技术,Flash(类似EEPROM工艺)工艺的PLD叫CPLD;Altera把自己的PLD产品:
MAX系列(乘积项技术,EEPROM工艺),FLEX系列(查找表技术,SRAM工艺)都叫作CPLD,即复杂PLD(plexPLD),由于FLEX系列也是SRAM工艺,基于查找表技术,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX系列产品也叫做FPGA.
(8寸硅晶片,每一个小方格经过切割,封装后就是一片芯片)
FPGA/CPLD概述
FPGA(现场可编程门阵列)与CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL,GAL等逻辑器件的基础之上发展起来的。
同以往的PAL,GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。
这样的FPGA/CPLD实际上就是一个子系统部件。
这种芯片受到世界X围内电子工程设计人员的广泛关注和普遍欢迎。
经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。
比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。
通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。
全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。
可以讲Altera和Xilinx共同决定了PLD技术的发展方向。
当然还有许多其它类型器件,如:
Lattice,Vantis,Actel,Quicklogic,Lucent等。
(99年Lattice收购了Vantis,成为第三大PLD供应商;同年Xilinx收购了Philips的PLD部门)
1998年世界十大PLD公司
排名
公司
销售额(亿美金)
市场占有率
1
Altera
5.96
30.1
2
Xilinx
5.74
29.0
3
Vantis
2.20
11.1
4
Lattice
2.18
11.0
5
Actel
1.39
7.0
6
Luccent
0.85
4.3
7
Cypress
0.44
2.2
8
Atmel
0.42
2.1
9
Philips
0.28
1.4
10
Quicklogic
0.24
1.2
资料来源:
99年4月《电子产品世界》
尽管FPGA,CPLD和其它类型PLD的结构各有其特点和长处,但概括起来,它们是由三大部分组成的,
·一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心。
·输入/输出块:
·连接逻辑块的互连资源。
连线资源:
由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接。
典型的PLD的框图
对用户而言,CPLD与FPGA的内部结构稍有不同,但用法一样,所以多数情况下,不加以区分。
FPGA/CPLD芯片都是特殊的ASIC芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:
·随着VlSI(VeryLargeScaleIC,超大规模集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成。
·FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。
所以,FPGA/CPLD的资金投入小,节省了许多潜在的花费。
·用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。
所以,用FPGA/PLD试制样片,能以最快的速度占领市场。
FPGA/CPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。
当电路有少量改动时,更能显示出FPGA/CPLD的优势。
电路设计人员使用FPGA/CPLD进行电路设计时,不需要具备专门的IC(集成电路)深层次的知识,FPGA/CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场。
PLD/FPGA 结构与原理初步
(一)
发布日期:
2006-2-1 16:
21:
35 作者:
未知 出处:
不详
一.基于乘积项(Product-Term)的PLD结构
采用这种结构的PLD芯片有:
Altera的MAX7000,MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice,Cypress的大部分产品(EEPROM工艺)
我们先看一下这种PLD的总体结构(以MAX7000为例,其他型号的结构与此都非常相似):
图1基于乘积项的PLD内部结构
这种PLD可分为三块结构:
宏单元(Marocell),可编程连线(PIA)和I/O控制块。
宏单元是PLD的基本结构,由它来实现基本的逻辑功能。
图1中兰色部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。
可编程连线负责信号传递,连接所有的宏单元。
I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。
图1左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2是全局时钟,清零和输出使能信号,这几个信号有专用连线与PLD中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。
宏单元的具体结构见下图:
图2宏单元结构
左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。
后面的乘积项选择矩阵是一个“或”阵列。
两者一起完成组合逻辑。
图右侧是一个可编程D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。
如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O脚。
二.乘积项结构PLD的逻辑实现原理
下面我们以一个简单的电路为例,具体说明PLD是如何利用以上结构实现逻辑的,电路如下图:
图3
假设组合逻辑的输出(AND3的输出)为f,则f=(A+B)*C*(!
D)=A*C*!
D+B*C*!
D(我们以!
D表示D的“非”)
PLD将以下面的方式来实现组合逻辑f:
图4
A,B,C,D由PLD芯片的管脚输入后进入可编程连线阵列(PIA),在内部会产生A,A反,B,B反,C,C反,D,D反8个输出。
图中每一个叉表示相连(可编程熔丝导通),所以得到:
f=f1+f2=(A*C*!
D)+(B*C*!
D)。
这样组合逻辑就实现了。
图3电路中D触发器的实现比较简单,直接利用宏单元中的可编程D触发器来实现。
时钟信号CLK由I/O脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。
可编程触发器的输出与I/O脚相连,把结果输出到芯片管脚。
这样PLD就完成了图3所示电路的功能。
(以上这些步骤都是由软件自动完成的,不需要人为干预)
图3的电路是一个很简单的例子,只需要一个宏单元就可以完成。
但对于一个复杂的电路,一个宏单元是不能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为另一个宏单元的输入。
这样PLD就可以实现更复杂逻辑。
这种基于乘积项的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他芯片配合。
PLD/FPGA 结构与原理初步
(二)
发布日期:
2006-2-1 16:
16:
25 作者:
出处:
一.查找表(Look-Up-Table)的原理与结构
采用这种结构的PLD芯片我们也可以称之为FPGA:
如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。
查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
下面是一个4输入与门的例子,
实际逻辑电路
LUT的实现方式
a,b,c,d输入
逻辑输出
地址
RAM中存储的内容
0000
0
0000
0
0001
0
0001
0
....
0
...
0
1111
1
1111
1
二.基于查找表(LUT)的FPGA的结构
我们看一看xilinxSpartan-II的内部结构,如下图:
xilinxSpartan-II芯片内部结构
Slices结构
Spartan-II主要包括CLBs,I/O块,RAM块和可编程连线(未表示出)。
在spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。
Slices可以看成是SpartanII实现逻辑的最基本结构(xilinx其他系列,如SpartanXL,Virtex的结构与此稍有不同,具体请参阅数据手册)
altera的FLEX/ACEX等芯片的结构如下图:
alteraFLEX/ACEX芯片的内部结构
逻辑单元(LE)内部结构
FLEX/ACEX的结构主要包括LAB,I/O块,RAM块(未表示出)和可编程行/列连线。
在FLEX/ACEX中,一个LAB包括8个逻辑单元(LE),每个LE包括一个LUT,一个触发器和相关的相关逻辑。
LE是FLEX/ACEX芯片实现逻辑的最基本结构(altera其他系列,如APEX的结构与此基本相同,具体请参阅数据手册)
二.查找表结构的FPGA逻辑实现原理
我们还是以这个电路的为例:
A,B,C,D由FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。
该电路中D触发器是直接利用LUT后面D触发器来实现。
时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。
触发器的输出与I/O脚相连,把结果输出到芯片管脚。
这样PLD就完成了图3所示电路的功能。
(以上这些步骤都是由软件自动完成的,不需要人为干预)
这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。
对于一个LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。
由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。
也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。
二.选择PLD还是FPGA?
根据上一篇PLD的结构和原理可以知道,PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。
而FPGA的一个LUT只能处理4输入的组合逻辑,因此,PLD适合用于设计译码等复杂组合逻辑。
但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。
所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。
HDL语言概述
发布日期:
2006-2-1 16:
11:
00 作者:
未知 出处:
不详
HDL概述
随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。
目前最主要的硬件描述语言是VHDL和VerilogHDL。
VHDL发展的较早,语法严格,而VerilogHDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。
VHDL和VerilogHDL两者相比,VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。
国外电子专业很多会在本科阶段教授VHDL,在研究生阶段教授verilog。
从国内来看,VHDL的参考书很多,便于查找资料,而VerilogHDL的参考书相对较少,这给学习VerilogHDL带来一些困难。
从EDA技术的发展上看,已出现用于CPLD/FPGA设计的硬件C语言编译软件,虽然还不成熟,应用极少,但它有可能会成为继VHDL和Verilog之后,设计大规模CPLD/FPGA的又一种手段。
VHDL语言简介:
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。
现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
应用VHDL进行工程设计的优点是多方面的。
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。
符合市场需求的大规模系统高效,
高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
附:
一个简单的VHDL的例子:
(12位寄存器)
---VHDLExample
--User-DefinedMacrofunction
ENTITYreg12IS
PORT(
d :
INBIT_VECTOR(11DOWNTO0);
clk :
INBIT;
q :
OUTBIT_VECTOR(11DOWNTO0));
ENDreg12;
ARCHITECTUREaOFreg12IS
BEGIN
PROCESS
BEGIN
WAITUNTILclk='1';
q<=d;
ENDPROCESS;
ENDa;
VerilogHDL简介
任何新生事物的产生都有它的历史沿革,早期的硬件描述语言是以一种高级语言为基础,加上一些特殊的约定而产生的,目的是为了实现RTL级仿真,用以验证设计的正确性,而不必像在传统的手工设计过程中那样,必须等到完成样机后才能进行实测和调试。
VerilogHDL就是在用用最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。
1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得VerilogHDL迅速得到推广应用。
1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。
1990年CADENCE公司公开发表了VerilogHDL,并成立LVI组织以促进VerilogHDL成为IEEE标准,即IEEEStandard1364-1995.
VerilogHDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把VerilogHDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。
与之相比,VHDL的学习要困难一些。
但VerilogHDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。
一个简单的VerilogHDL的例子:
(12位寄存器)
//VerilogExample
//User-DefinedMacrofunction
modulereg12(d,clk,q);
`definesize11
input[`size:
0]d;
inputclk;
output[`size:
0]q;
reg[`size:
0]q;
always(posedgeclk)
q=d;
endmodule
其他VDL语言简介:
ABEL-HDL
这是一种早期的硬件描述语言。
在可编程逻辑器件的设计中,可方便准确的描述所设计的电路逻辑功能。
他支持逻辑电路的多种表达形式,其中包括逻辑方程,真值表和状态图。
ABEL语言和Verilog语言同属一种描述级别,但ABEL语言的特性受支持的程度远远不如Verilog。
Verilog是从集成电路设计中发展而来,语言较为成熟,支持的EDA工具很多。
而ABEL语言从早期可编程逻辑器件(PLD)的设计中发展而来。
ABEL-HDL被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器的设计。
如DOS版的ABEL3.0软件可对包括GAL期间进行全方位的逻辑描述和设计,而在诸如Lattice的ispEXPERT,DATAIO的Synario,Vantis的Design-Direct,Xilinx的FOUNDATION和WEBPACK等EDA软件中,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 逻辑 器件 发展 历程 概述