《1、可编程逻辑基础》由会员分享,可在线阅读,更多相关《1、可编程逻辑基础(88页珍藏版)》请在金锄头文库上搜索。
1、Copyright by Beilei Xu可编程逻辑基础可编程逻辑基础玩转可编程逻辑器件,你需要玩转可编程逻辑器件,你需要掌握一门硬件描述语言,掌握一门硬件描述语言,VerilogHDL或或VHDL了解可编程逻辑器件结构、内部资源了解可编程逻辑器件结构、内部资源熟悉可编程逻辑器件设计流程,熟悉集成开发工具如熟悉可编程逻辑器件设计流程,熟悉集成开发工具如QuartusII、ISE熟悉数字电路设计基本知识熟悉数字电路设计基本知识参考资源参考资源http:/http:/opencores.orghttp:/EDA先锋工作室,王诚等编著,Altera FPGA/CPLD设计(基础篇)(高级篇),人民
2、邮电出版社,2005.为什么采用可编程逻辑器件为什么采用可编程逻辑器件减小面积,降低成本、功耗可编程逻辑器件无处不在可编程逻辑器件无处不在主要内容主要内容数字逻辑设计的历史数字逻辑设计的历史可编程逻辑器件的发展、分类、编程工艺可编程逻辑器件的发展、分类、编程工艺简单简单PLDPLD(PLAPLA、PALPAL、GALGAL)原理)原理CPLDCPLD基础基础FPGAFPGA基础基础CPLDCPLD和和FPGAFPGA对比对比设计方法和软件设计方法和软件数字逻辑设计的历史数字逻辑设计的历史开始时开始时TTL逻辑设计逻辑设计用分立的芯片实现基本逻辑功能-NAND、OR、复用器、触发器等著名的德州仪
3、器74系列通常由成本和可用的器件来决定设计选择数字逻辑设计的历史数字逻辑设计的历史采用采用TTL逻辑进行数字设计逻辑进行数字设计Final Logic ImplementationLogic Expression卡诺图真值表数字逻辑设计的历史数字逻辑设计的历史从从TTL到可编程逻辑到可编程逻辑逻辑实现的一般特性-乘积和(AND-OR门) 组合逻辑-存储结果(寄存器) 时序逻辑-连在一起如果会怎样-逻辑功能固定不变(像TTL),但是组合到一个器件中?-走线(布线)连接在一定程度上可以进行控制(编程)?数字逻辑设计的历史数字逻辑设计的历史可编程阵列逻辑(可编程阵列逻辑(PAL)可编程逻辑最简单的实
4、现逻辑门和寄存器固定可编程的乘积和阵列及输出控制可编程逻辑器件的优点可编程逻辑器件的优点需要的器件数量减少占用更少的电路板低成本节省功耗测试和调试简单设计安全性(防止逆向剖析)设计灵活性自动工具简化、合并了设计流程在系统重新编程!(在某些情况下)主要内容主要内容数字逻辑设计的历史数字逻辑设计的历史可编程逻辑器件的发展、分类、编程工艺可编程逻辑器件的发展、分类、编程工艺简单简单PLDPLD(PLAPLA、PALPAL、GALGAL)原理)原理CPLDCPLD基础基础FPGAFPGA基础基础CPLDCPLD和和FPGAFPGA对比对比设计方法和软件设计方法和软件可编程逻辑器件的发展历程可编程逻辑器
5、件的发展历程熔丝编程的PROM和PLA器件20世纪70年代AMD公司推出PAL器件20世纪70年代末Lattice公司发明电可擦写GAL器件20世纪80年代初Xilinx公司提出现场可编程概念,推出FPGA器件;Altera公司推出EPLD器件20世纪80年代中期Lattice公司提出在系统可编程技术,推出CPLD器件20世纪80年代末内嵌复杂功能模块的SOPC20世纪90年代以来各类各类PLDPLD及相关术语的英文缩写及全称及相关术语的英文缩写及全称PLD: Programmable Logic Device PLD: Programmable Logic Device 可编程逻辑器件可编程
6、逻辑器件PROMPROM:Programmable Read Only Memory Programmable Read Only Memory 可编程只读存储器可编程只读存储器PLAPLA: Programmable Logic Array Programmable Logic Array 可编程逻辑阵列可编程逻辑阵列PALPAL: Programmable Array Logic Programmable Array Logic 可编程阵列逻辑可编程阵列逻辑GALGAL: Generic Array Logic Generic Array Logic 通用阵列逻辑通用阵列逻辑CPLDCPL
7、D:Complex Programmable Logic Device Complex Programmable Logic Device 复杂可编程逻辑器件复杂可编程逻辑器件FPGA: Field Programmable Gate Array FPGA: Field Programmable Gate Array 现场可编程门阵列现场可编程门阵列SOPCSOPC: : System On a Programmable ChipSystem On a Programmable Chip可编程片上系统可编程片上系统ISPISP: In System Programmability In Sys
8、tem Programmability 在系统可编程在系统可编程PLDPLD的分类的分类一、一、按集成度分类按集成度分类PLD简单PLD复杂PLDPROMPLAPALCPLDFPGAGALPLDPLD的分类的分类二、二、从结构上分类从结构上分类乘积项结构乘积项结构: : 基本结构为基本结构为“与或阵列与或阵列”,简单简单PLDPLD和大部分和大部分CPLDCPLD都属都属于此范畴。于此范畴。查找表结构:查找表结构:由简单的查找表组成可编程门,再构成阵列形式,大多由简单的查找表组成可编程门,再构成阵列形式,大多数数FPGAFPGA属于此类器件。属于此类器件。PLDPLD的分类的分类三、三、从编程
9、工艺上划分从编程工艺上划分一次性可编程器件:一次性可编程器件:熔丝(熔丝(FuseFuse)型)型反熔丝(反熔丝(AntiAnti- -fusefuse)型)型多次可编程器件:多次可编程器件:EPROMEPROM型:型:EEPROMEEPROM型:型:SRAMSRAM型:型:FlashFlash型:型:易失性编程器件编程工艺:编程工艺:EPROMEPROM、EEPROMEEPROM、FLASHFLASH阵列交叉上的浮栅晶体管在加上编程电压后不会导通掉电后非易失已编程:未编程:编程工艺:编程工艺:SRAMSRAM掉电后易失主要内容主要内容数字逻辑设计的历史数字逻辑设计的历史可编程逻辑器件的发展、
10、分类、编程工艺可编程逻辑器件的发展、分类、编程工艺简单简单PLDPLD(PLAPLA、PALPAL、GALGAL)原理)原理CPLDCPLD基础基础FPGAFPGA基础基础CPLDCPLD和和FPGAFPGA对比对比设计方法和软件设计方法和软件简单简单PLDPLD(PROMPROM、PLAPLA、PALPAL、GALGAL)原理)原理简单简单PLDPLD的基本结构的基本结构四种简单四种简单PLDPLD电路的结构特点比较电路的结构特点比较电路符号表示电路符号表示PROMPROM、PLAPLA、PALPAL、GALGAL阵列结构阵列结构简单简单PLDPLD的基本结构的基本结构乘积项结构乘积项结构任
11、何组合逻辑函数都可以化为任何组合逻辑函数都可以化为“与或与或”表达式,因此任何组合电表达式,因此任何组合电路都可以用路都可以用“与门或门与门或门”二级电路实现。任何时序电路都可由组合二级电路实现。任何时序电路都可由组合电路加上存储元件(如寄存器)构成。电路加上存储元件(如寄存器)构成。输入电路与阵列或阵列输出电路多路反馈输入项乘积项或项输入输出用于实现组合逻辑函数由缓冲器组成,使输入信号具有足够的驱动能力并产生互补输入信号提供不同的输出和反馈方式,由寄存器、三态门等组成四种简单四种简单PLDPLD电路的结构特点比较电路的结构特点比较电路符号表示电路符号表示常用逻辑门符号与现有国际符号对照电路符
12、号表示电路符号表示PLD的互补缓冲器PLD的互补输入PLD中与阵列表示PLD中或阵列表示阵列线连接表示PROMPROM阵列结构图阵列结构图I2I1I0Q0Q1Q2或门阵列(可编程)与门阵列(固定)与阵列全译码,产生输入的全部最小项。输入变量的增加会引起存储容量按2的幂次增加。适合于存储函数和数据表格,主要用作存储器。012III012IIIPROMPROM编程实例编程实例2010IIIQI2I1I0Q0Q1Q2或门阵列(可编程)与门阵列(固定)012III012III编程连接点PLAPLA阵列结构图阵列结构图I2I1I0Q0Q1Q2或门阵列(可编程)与门阵列(可编程)PALPAL(GALGAL
13、)阵列结构图)阵列结构图I2I1I0Q0Q1Q2或门阵列(固定)与门阵列(可编程)输入行II/O可编程输入输出结构PALPAL的输出结构的输出结构固定,不能编程固定,不能编程0011输入行ICLKDOEQPALPAL的输出结构的输出结构带反馈的寄存器输出结构1GALGAL结构结构GAL22V10GAL22V10结构结构GALGAL的输出结构的输出结构输出逻辑宏单元,可编程输出逻辑宏单元,可编程GAL22V10的OLMC4选1 MUX用来选择输出方式和输出极性2选1 MUX用来选择反馈信号GALGAL输出组态示例输出组态示例例:可编程码例:可编程码S1S0=00GAL22V10输出组态示例GAL
14、GAL输出组态示例输出组态示例CLKSRARD(a) S1S000, 低电平有效CLKSRARD(b) S1S001 ,高电平有效(c) S1S010, 低电平有效(d) S1S011 ,高电平有效GAL22V10的四种输出组态主要内容主要内容数字逻辑设计的历史数字逻辑设计的历史可编程逻辑器件的发展、分类、编程工艺可编程逻辑器件的发展、分类、编程工艺简单简单PLDPLD(PLAPLA、PALPAL、GALGAL)原理)原理CPLDCPLD基础基础FPGAFPGA基础基础CPLDCPLD和和FPGAFPGA对比对比设计方法和软件设计方法和软件复杂复杂PLDPLD(CPLDCPLD、FPGAFPG
15、A)的基本结构)的基本结构基本结构:基本结构:可编程逻辑功能单元可编程逻辑功能单元可编程布线可编程布线可编程可编程IOIOCPLDCPLD简介简介从从PLDPLD到到CPLDCPLDCPLDCPLD结构特点结构特点Altera MAX7000AAltera MAX7000A结构示例结构示例采用采用JTAGJTAG进行在系统编程(进行在系统编程(ISPISP)通用通用CPLDCPLD的优点的优点从从PLDPLD到到CPLDCPLD在一个器件中,采用可编程互连和I/O,连接多个PLD(逻辑模块)普通普通CPLDCPLD逻辑模块的特性逻辑模块的特性一般是指逻辑阵列模块(LAB)含有多个宏单元(通常是
16、4到20个)本地可编程互连,类似PLD宏单元中的扩展乘积项提供可控乘积项分配和扩展,代价是额外的时延其他体系结构特性其他体系结构特性可编程互连阵列(可编程互连阵列(PIPI或或PIAPIA)-和PAL可编程阵列相似-全局布线连接器件中的任何信号和任何目的位臵-采用EPROM、EEPROM或者闪存技术进行编程I/OI/O控制模块控制模块-由PI将其和逻辑分离-I/O专用逻辑提供控制以及更多的功能-三态缓冲控制实现任意I/O引脚的输入、输出或者双向功能MAX7000AMAX7000A器件基本结构器件基本结构MAX7000AMAX7000A系列的基本结构包括系列的基本结构包括逻辑阵列块逻辑阵列块LA
17、BLAB、宏单元宏单元、扩展乘积项扩展乘积项(共享和并联)(共享和并联)、可编程连线阵列可编程连线阵列PIAPIA和和I/OI/O控制块控制块等五部分。等五部分。INPUT/GCLK1INPUT/OE2/GCLK2INPUT/OE1INPUT/GCLR n36I/O控制块宏单元334826个I/O引脚36LAB C216162166PIAI/O控制块宏单元11626个 I/O引脚LAB A216162166216I/O控制块宏单元173226个I/O引脚LAB B21616216636216I/O控制块宏单元496426个I/O引脚LAB D21621616216636216PIA可把器件中任
18、一信号源连接到其目的地每个LAB由16个宏单元组成,宏单元是基本的逻辑功能单元控制I/O引脚的输入输出方式、电压摆率等MAX7000AMAX7000A器件基本结构器件基本结构LABLAB通过通过PIAPIA和全局总线连接在一起,全局总线由所有的专用输入、和全局总线连接在一起,全局总线由所有的专用输入、I/OI/O引脚和宏单元馈给信号。引脚和宏单元馈给信号。INPUT/GCLK1INPUT/OE2/GCLK2INPUT/OE1INPUT/GCLR n36I/O控制块宏单元334826个I/O引脚36LAB C216162166PIAI/O控制块宏单元11626个 I/O引脚LAB A216162
19、166216I/O控制块宏单元173226个I/O引脚LAB B21616216636216I/O控制块宏单元496426个I/O引脚LAB D21621616216636216MAX7000AMAX7000A器件基本结构器件基本结构LABLAB的输入信号:的输入信号:1 1)来自)来自PIAPIA的的3636个通用逻辑输入信号;个通用逻辑输入信号;2 2)来自专用)来自专用输入引脚的全局控制信号,用于寄存器辅助功能;输入引脚的全局控制信号,用于寄存器辅助功能;3 3)从)从I/OI/O引脚到寄引脚到寄存器的直接输入通道。存器的直接输入通道。INPUT/GCLK1INPUT/OE2/GCLK2
20、INPUT/OE1INPUT/GCLR n36I/O控制块宏单元334826个I/O引脚36LAB C216162166PIAI/O控制块宏单元11626个 I/O引脚LAB A216162166216I/O控制块宏单元173226个I/O引脚LAB B21616216636216I/O控制块宏单元496426个I/O引脚LAB D21621616216636216MAX7000AMAX7000A器件基本结构器件基本结构LABLAB的输出:的输出:INPUT/GCLK1INPUT/OE2/GCLK2INPUT/OE1INPUT/GCLR n36I/O控制块宏单元334826个I/O引脚36LA
21、B C216162166PIAI/O控制块宏单元11626个 I/O引脚LAB A216162166216I/O控制块宏单元173226个I/O引脚LAB B21616216636216I/O控制块宏单元496426个I/O引脚LAB D21621616216636216MAX7000AMAX7000A的宏单元的宏单元每个宏单元由每个宏单元由逻辑阵列逻辑阵列、 乘积项选择矩阵乘积项选择矩阵和和可编程寄存器可编程寄存器等三个功能等三个功能块组成。块组成。36个来自PIA的信号16个扩展乘积项乘积项选择矩阵共享扩展项清除选择全局清除全局时钟VCC时钟/使能选择CLRNENAPRND/T Q去I/O
22、控制块去PIA2来自I/O引脚快速输入选择可编程寄存器寄存器旁路逻辑阵列并联扩展项(来自其它宏单元)实现组合逻辑配置宏单元为组合或时序逻辑输出可配置为由可编程时钟控制的D、T、JK或RS触发器可将时钟配置为:全局时钟、由高电平有效使能的全局时钟或乘积项时钟将乘积项分配到或门和异或门以实现组合逻辑功能,或着到寄存器的辅助输入以实现清除、预置、时钟和时钟使能等控制功能。MAX7000AMAX7000A共享扩展项共享扩展项宏单元乘积项逻辑乘积项选择矩阵宏单元乘积项逻辑来自PIA的36个信号16个共享扩展项以尽可能少的逻辑资源和延时扩充乘积项中“与”信号数MAX7000AMAX7000A并联扩展项并联
23、扩展项乘积项选择矩阵宏单元乘积项逻辑来自前一个宏单元置位清除时钟乘积项选择矩阵宏单元乘积项逻辑清除时钟去下一个宏单元来自PIA的36个信号16个共享乘积项置位以尽可能少的逻辑资源和延时扩充相“或”的乘积项数MAX7000AMAX7000A的的PIAPIA结构结构到LABPIA信号EEPROM编程单元01MAX7000AMAX7000A的的I/OI/O控制块控制块PIA电压摆率控制漏极开路控制来自宏单元快速输入到宏单元寄存器到PIA到其它I/O引脚GNDVCCOE选择多路复用器6个全局使能信号控制I/O引脚单独地配置为输入、 输出或双向工作方式采用采用JTAGJTAG进行在系统编程(进行在系统编
24、程(ISPISP)简单的4线或者5线接口移位数据,通过电路板上的一个或者多个器件(JTAG链)用于器件自测试,或ISPPLD硬件生成EEPROM编程电压,由JTAG接口进行控制通用通用CPLDCPLD的优点的优点丰富的逻辑和高级可配臵I/O可编程布线瞬时接通低成本非易失配臵可重新编程Altera CPLD-MAX II 和IIZ器件-MAX 3000系列-MAX 7000系列主要内容主要内容数字逻辑设计的历史数字逻辑设计的历史可编程逻辑器件的发展、分类、编程工艺可编程逻辑器件的发展、分类、编程工艺简单简单PLDPLD(PLAPLA、PALPAL、GALGAL)原理)原理CPLDCPLD基础基础
25、FPGAFPGA基础基础CPLDCPLD和和FPGAFPGA对比对比设计方法和软件设计方法和软件FPGAFPGA简介简介从从CPLDCPLD到到FPGAFPGAFPGAFPGA结构特点结构特点FPGAFPGA编程编程FPGAFPGA的优点的优点MAX IIMAX II器件:独特的器件:独特的CPLDCPLDASICASIC从从CPLDCPLD到到FPGAFPGA高密度CPLD需要额外的全局布线,不够灵活LAB本身重新排列到一个阵列中随着器件资源的增加,CPLD的布线通道数量指数增长,而FPGA是线性增长现场可编程门阵列现场可编程门阵列LAB排列在阵列中行列可编程互连互连可以跨过所有或部分阵列C
26、PLD LAB和和FPGA LAB对比对比FPGA LAB由逻辑单元(LE)构成,而不是乘积项和宏单元通过LE级联很容易建立复杂功能查找表(查找表(LUT)替代乘积项阵列可编程“表”建立的组合函数(级联复用器)LUT输入是复用器的选择线查找表单元实现一位全加器示例查找表单元实现一位全加器示例I000CBASI0I000OCBCABAC可编程寄存器可编程寄存器配臵为D、T、JK或RS触发器一般由全局时钟来驱动时钟通过其它逻辑或者I/O进行异步控制回馈回LUT旁路寄存器或者LUT进位和寄存器链进位和寄存器链LE之间的进位比特链寄存器输出可以链接至LAB中的其它LE寄存器,形成和LUT无关的移位寄存
27、器寄存器封装寄存器封装LUT和寄存器输出分开,形成一个LE的两路输出节省了器件资源Chip Planner中看到的中看到的LAB和和LE自适应逻辑模块自适应逻辑模块ALM基于LE,但是包括专用资源和自适应LUT(ALUT)提高了性能和资源利用率FPGA布线布线所有器件资源都可以和器件中的任何布线连接针对时序调整不一致的固定长度随着密度增加而线性增长本地互连-LE之间的连接,或者LAB中ALM之间的连接-可以包括邻近LAB的直接连接行列互连-固定长度布线段-跨过多个LAB或者整个器件FPGA I/O单元单元高级可编程模块直接连接至行或者列互连控制I/O特性-输出/输入/双向-多种I/O标准-差分
28、信号-电流驱动能力-摆率-片内匹配/上拉电阻-PCI总线使用的钳位二极管-开漏/三态-等等FPGA时钟时钟特殊结构控制并向器件中的同步逻辑扇出时钟-专用输入时钟引脚-锁相环(PLL)-延迟锁相环(DLL). 控制DQS延迟,适用于外部存储器接口-时钟控制模块. 选择时钟,送人时钟布线网络. 上电/断电时使能/禁止时钟-时钟布线网络. 特殊布线通道保留给PLL或者时钟控制模块驱动的时钟. 全局时钟网络送人整个器件. 局部或者分层网络送入某些器件区域,例如器件块等FPGA PLL基于输入时钟,产生时钟的可编程模块(时钟域)用于整个器件中,具有最小的斜移FPGA编程编程大部分FPGA使用SRAM单元
29、技术对互连和LUT功能进行编程易失!必须在上电时进行编程FPGA编程信息必须存储在某一位臵,以便在上电时对器件编程使用外部EEPROM、CPLD或者CPU来编程两种编程方法-主动:上电时FPGA自动控制编程顺序-被动:智能主机(一般是CPU)控制编程还可以通过JTAG连接进行编程其他典型的其他典型的FPGA特性特性采用专用功能硬件模块替代某些LAB存储器模块-建立板上存储器结构,以支持设计. 单端口/双端口RAM. ROM. 移位寄存器或者FIFO缓存-上电时初始化RAM或ROM内容嵌入式乘法器-适用于DSP-高性能乘法器/加法器/累加操作高速收发器FPGA的优点的优点高密度,可实现很多复杂逻
30、辑功能高性能低成本多种功能的集成支持多种I/O标准和特性快速编程Altrea FPGA-Cyclone系列-Arria系列-Stratix系列MAX II器件:独特的器件:独特的CPLD配臵性很强、基于LUT的LE像FPGALAB排列在网格阵列中像FPGA行列互连像FPGA多功能I/O单元像FPGA基于SRAM单元的编程像FPGA但是采用片上闪存ROM(非易失)来存储配臵数据不需要外部配臵器件像CPLD瞬时接通像CPLD体系结构像体系结构像FPGA,但具有,但具有CPLD的非易失性!的非易失性!ASICAltera ASIC是真正的ASIC:上电时不需要进行配臵采用FPGA器件建立并测试设计将
31、设计移植到引脚兼容、功能等价的ASIC降低了ASIC设计总成本,实现了快速周转Altera ASIC- HardCopy 系列主要内容主要内容数字逻辑设计的历史数字逻辑设计的历史可编程逻辑器件的发展、分类、编程工艺可编程逻辑器件的发展、分类、编程工艺简单简单PLDPLD(PLAPLA、PALPAL、GALGAL)原理)原理CPLDCPLD基础基础FPGAFPGA基础基础CPLDCPLD和和FPGAFPGA对比对比设计方法和软件设计方法和软件CPLD和和FPGA对比对比每类器件中的典型硬件CPLD和和FPGA对比对比特性对比相比其它器件,为什么使用某一类器件?主要内容主要内容数字逻辑设计的历史数
32、字逻辑设计的历史可编程逻辑器件的发展、分类、编程工艺可编程逻辑器件的发展、分类、编程工艺简单简单PLDPLD(PLAPLA、PALPAL、GALGAL)原理)原理CPLDCPLD基础基础FPGAFPGA基础基础CPLDCPLD和和FPGAFPGA对比对比设计方法和软件设计方法和软件设计方法和软件设计方法和软件典型的可编程逻辑设计流程典型的可编程逻辑设计流程Quartus II设计软件设计软件典型的可编程逻辑设计流程典型的可编程逻辑设计流程设计输入设计输入/RTL编码编码- 设计行为或者结构描述设计规范设计规范RTL仿真仿真- 功能仿真(Modelsim或其它仿真器)- 验证逻辑模型和数据流(没
33、有时序延时)综合(映射)综合(映射)- 将设计译为器件专用基元- 进行优化,以满足要求的面积和性能约束- Quartus II综合、Synplify/Synplify pro 、Precision Synthesis、Design Complier FPGA布局布线(适配)布局布线(适配)- 参考面积和性能约束,将基元映射到目标技术中- 指定所使用的布线资源典型的可编程逻辑设计流程(续)典型的可编程逻辑设计流程(续)时序分析时序分析- 验证是否达到性能规范- 静态时序分析门级仿真门级仿真(可选)- 时序仿真- 验证设计能否在目标技术中工作器件编程、器件编程、PC板级测试板级测试- 测试电路板设
34、计- 在电路板上对器件进行编程和测试- 使用片内工具进行调试Quartus II设计软件设计软件全集成开发工具全集成开发工具-多种设计输入方法-逻辑综合-布局布线-仿真-时序和功耗分析-器件编程推动了推动了FPGA设计方法设计方法很容易看出设计是怎样映射到很容易看出设计是怎样映射到FPGA硬件资源中的硬件资源中的免费从免费从Altera网站下载网站下载PLDPLD生产商生产商九十年代以后发展很快,是最大可编程逻辑器件供应商之一。主要产品有:MAX3000/7000,FLEX10K,APEX20K,ACEX1K,Cyclone,Stratix等。开发软件为QuartusII。FPGA的发明者,老
35、牌FPGA公司,是最大可编程逻辑器件供应商之一。产品主要有:XC9500,Coolrunner ,Spartan, Virtex等。开发软件为ISE。全球CPLD/FPGA产品60%以上是由Altera和Xilinx提供的。 可以讲Altera和Xilinx共同决定了PLD技术的发展方向。Lattice是ISP技术的发明者,ISP技术极大的促进了PLD产品的发展,与ALTERA和XILINX相比,其开发工具略逊一筹。中小规模PLD比较有特色, 1999年推出可编程模拟器件。是第三大可编程逻辑器件供应商。主要产品有ispMACH4000,EC/ECP,XO,XP以及可编程模拟器件等。反熔丝(一次
36、性烧写)PLD的领导者,由于反熔丝PLD抗辐射,耐高低温,功耗低,速度快,所以在军品和宇航级上有较大优势。ALTERA和XILINX则较少涉足军品和宇航级市场。PLDPLD生产商生产商CPLD/FPGA不是Cypress的主要业务,但有一定的用户群。专业CPLD/FPGA公司,以一次性反熔丝工艺为主,有一些集成硬核的FPGA比较有特色,但总体上在中国地区销售量不大。CPLD/FPGA不是ATMEL的主要业务,中小规模PLD做的不错。ATMEL也做了一些与Altera和Xilinx兼容的片子,但在品质上与原厂家还是有一些差距,在高可靠性产品中使用较少,多用在低端产品上。开发软件:集成开发工具开发
37、软件:集成开发工具这类软件都是由这类软件都是由PLDPLD芯片厂家提供芯片厂家提供,基本都可以完成所有的设计输入基本都可以完成所有的设计输入(原理图或原理图或HDL)HDL),综合综合,仿真仿真,布局布线布局布线,下载等工作下载等工作。Altera公司上一代PLD开发软件,使用者众多。目前Altera已经停止开发MaxplusII,而转向QuartusII软件平台。Altera公司新一代PLD开发软件,适合大规模FPGA的开发。Xilinx公司上一代的PLD开发软件,目前Xilinx已经停止开发Foundation,而转向ISE软件平台。Xilinx公司目前的PLD开发软件。Lattice公司
38、的PLD开发软件,目前最新软件改名:ispLEVERispDesignEXPERT开发软件:开发软件:HDL前端输入与系统管理软件前端输入与系统管理软件这类软件主要是帮助用户完成这类软件主要是帮助用户完成HDLHDL文本的编辑和输入工作文本的编辑和输入工作,提高输入提高输入效率效率,并不是必须的并不是必须的,更多人更习惯使用集成开发软件或者综合更多人更习惯使用集成开发软件或者综合/ /仿仿真工具中自带的文本编辑器真工具中自带的文本编辑器,甚至可以直接使用普通文本编辑器甚至可以直接使用普通文本编辑器。UltraEditUltraEdit一个使用广泛的编辑器,大部分版本并不直接支持一个使用广泛的编
39、辑器,大部分版本并不直接支持HDL,但可以将,但可以将UltraEdit安装目录下的安装目录下的VHDL93,Verilog HDL文件中的文字添加到文件中的文字添加到WORDFILE.txt中,即可支持相应的语言编辑,关键字将用不同色彩标中,即可支持相应的语言编辑,关键字将用不同色彩标出。出。HDL Turbo WriterHDL Turbo WriterVHDL/verilog专用编辑器,可大小写自动转换,缩进,折叠,格式编排专用编辑器,可大小写自动转换,缩进,折叠,格式编排很方便。可直接使用很方便。可直接使用FPGAadvantage做后端处理做后端处理,此套软件也可以编辑此套软件也可以
40、编辑C/C+,Java等多重语言。等多重语言。HDL Designer HDL Designer Series Series Mentor公司的前端设计软件,包括公司的前端设计软件,包括5个部分,涉及设计管理,分析,输入个部分,涉及设计管理,分析,输入等。等。Visial VHDL/ Visial VHDL/ Visal VerilogVisal Verilog可视化的可视化的HDL/Verilog编辑工具编辑工具,可通过画流程图等可视化方法生成一部分可通过画流程图等可视化方法生成一部分VHDL/Verilog代码,代码,innoveda公司出品。公司出品。Visual EliteVisual
41、 EliteVisial HDL的下一代产品,能辅助系统级到电路级的设计。的下一代产品,能辅助系统级到电路级的设计。开发软件:开发软件:HDL逻辑综合软件逻辑综合软件这类软件将这类软件将HDLHDL语言转化成最基本的与或非门的连接关系语言转化成最基本的与或非门的连接关系(网表网表),输出输出edfedf文件文件,导给导给PLDPLD厂家的软件进行适配和布线厂家的软件进行适配和布线。为了优化结果为了优化结果,在进行复杂在进行复杂HDLHDL设计时设计时,基本上都会使用这些专业的逻辑综合软件基本上都会使用这些专业的逻辑综合软件,而不使用而不使用PLDPLD厂家的集成开发软件中自带的逻辑综合功能厂家
42、的集成开发软件中自带的逻辑综合功能。Precision RTLPrecision PhysicalMAX+PLUS II Advanced synthsisSynplify / Synplify Pro, VHDL/Verilog综合软件,口碑相当不错。 Synplicity公司出品。LeonardoSpectrumLeonardoSpectrum,VHDL/VerilogHDL综合软件。可加较多的约束条件,可控性强。Mentor公司的子公司Exemplar Logic公司出品。Mentor公司最新的VHDL/VerilogHDL综合软件。FPGA ComplierII,VHDL/Verilo
43、g综合软件, Synopsys公司已停止发展FPGAexpress软件,而转到FPGA ComplierII平台。ALtera的一个免费HDL综合工具,安装后可以直接使用,是MaxplusII的一个插件,用这个插件进行语言综合,比直接使用MaxplusII综合的效果好。开发软件:开发软件:HDL仿真软件仿真软件对设计进行仿真校验对设计进行仿真校验,包括布局布线以前的功能仿真包括布局布线以前的功能仿真(前仿真前仿真)和布和布线以后包含延时信息的时序仿真线以后包含延时信息的时序仿真(后仿真后仿真),对于一些复杂的对于一些复杂的HDLHDL设设计可能需要这些软件专业的仿真功能计可能需要这些软件专业的
44、仿真功能。Active HDLModleSimNC-Verilog/NC-VHDL/NC-SIMVCS / SciroccoVHDL/VerilogHDL仿真软件,功能比ActiveHDL强大,使用比ActiveHDL复杂。Mentor的子公司Model Tech出品。VHDL/VerilogHDL仿真软件,人机界面较好,简单易用。Aldec公司出品。Cadence公司出品,很好的Verilog/VHDL仿真工具,其中NC-Verilog 的前身是著名的Verilog仿真软件Verilog-XL,用于Verilog仿真;NC-VHDL,用于VHDL仿真;NC-Sim,是Verilog/VHDL混合语言仿真工具。VCS是Synopsys公司的VerilogHDL仿真软件,反映不错;Scirocco是Synopsys公司的VHDL仿真软件,似乎没有VCS出名。Copyright by Beilei XuEND