搜档网
当前位置:搜档网 › CPLD和FPGA的区别

CPLD和FPGA的区别

CPLD和FPGA的区别
CPLD和FPGA的区别

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。

CPLD与FPGA的关系

早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。

CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。

CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。

FPGA工作原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。

FPGA的基本特点

1)采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。

2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

3)FPGA内部有丰富的触发器和I/O引脚。

4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的

RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA 的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA 功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

FPGA配置模式

FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。

例如,领先FPGA厂商Xilinx最近推出的Virtex-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。超大容量和密度使复杂的布线变得更加不可预测,由此带来更严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。

幸运地是,FPGA厂商、EDA工具供应商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity与Xilinx宣布成立超大容量时序收敛联合工作小组,旨在最大程度地帮助系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供应商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。

最近FPGA的配置方式已经多元化!

FPGA主要生产厂商

1、Altera

2、Xilinx

3、Actel

4、Lattice

其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。

FPGA设计的注意事项

不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。

I/O信号分配

可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原则。尽管Altera的FPGA器件没有设计指导原则(因为它实现起来比较

容易),但赛灵思的FPGA设计指导原则却很复杂。但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同步骤:

1. 使用一个电子数据表列出所有计划的信号分配,以及它们的重要属性,例如I/O标准、电压、需要的端接方法和相关的时钟。

2. 检查制造商的块/区域兼容性准则。

3. 考虑使用第二个电子数据表制订FPGA的布局,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。

4. 利用以上两个电子数据表的信息和区域兼容性准则,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。

5. 按照受限制程度重新分配信号总线。在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最合适的引脚。如果某个特定块所选择的I/O 标准需要参考电压信号,记住先不要分配这些引脚。差分信号的分配始终要先于单端信号。如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规则。

6. 在合适的地方分配剩余的信号。

在这个阶段,考虑写一个只包含端口分配的HDL文件。然后通过使用供应商提供的工具或使用一个文本编辑器手动创建一个限制文件,为I/O标准和SSO等增加必要的支持信息。准备好这些基本文件后,你可以运行布局布线工具来确认是否忽视了一些准则或者做了一个错误的分配。

这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。

你咨询一位布局专家的时间越晚,你就越有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以避免。一旦你实现了满意的信号分配,你就要用限制文件锁定它们。

-------------------

基于CMOS的设计主要消耗三类功率:内部的(短路)、漏电的(静态的)以及开关的(电容)。当门电路瞬变时,VDD与地之间短路连接消耗内部功率。漏电功耗是CMOS工艺普遍存在的寄生效应引起的。而开关功耗则是自负载电容,放电造成的。开关功耗与短路功耗合在一起称为动态功耗。下面介绍降低静态功耗和动态功耗的设计技巧。

降低静态功耗

简介

虽然静态电流与动态电流相比可以忽略不计,然而对电池供电的手持设备就显得十分重要,在设备通电而不工作时更是如此。静态电流的因素众多,包括处于没有完全关断或接通的状态下的I/O以及内部晶体管的工作电流、内部连线的电阻、输入与三态电驱动器上的拉或下拉电阻。在易失性技术中,保持编程信息也需一定的静态功率。抗熔断是一种非易失性技术,因此信息存储不消耗静态电流。

几种降低静态功耗的设计方法

?驱动输入应有充分的电压电平,因而所有晶体管都是完全通导或关闭的。

?由于I/O线上的上拉或下拉电阻要消耗一定的电流,因此尽量避免使用这些电阻。

?少用驱动电阻或双极晶体管,这些器件需维持一个恒定电流,从而增加了静态电流。

?将时钟引脚按参数表推荐条件连接至低电平。悬空的时钟输入会大大增加静态电流。

?在将设计划分为多个器件时,减少器件间I/O的使用。

eX器件LP方式引脚的使用

Actel eX系列设计了特殊的低功率“休眠”模式。在该引脚驱动至高电平800ns后,器件进入极低功率待机模式,待机电流小于100μA。在低功率模式下,所有I/O(除时钟输入外)都处于三态,而内核全部断电。由于内核被断电,触发器中存储的信息会丢失,在进入工作模式(在引脚驱动至低平200ms后)时,用户需再次对器件初始化。同样,用户也应关闭所有通过CLKA、CLKB以及HCLK输入的时钟。然而这些时钟并不处于三态,时钟就可进入器件,从而增加功耗,因此在低功率模式下,时钟输入必须处于逻辑0或逻辑1。

有时用户很难阻止时钟进入器件。在此场合,用户可使用与CLKA或CLKA相邻的正常输入引脚并在设计中加进CLKINT。这样,时钟将通过靠近时钟引脚的正常输入进入器件,再通过CLKINT向器件提供时钟资源。

采用这种输入电路后,由于常规I/O是三态的,因此用户不必担心时钟进入器件。当然,增加一级门电路会产生0.6ns的较大时钟延时,幸好这在多数低功率设计中是可以接受的。注意应将与CLKINT缓冲器相关的CLKA或CLKB引脚接地。

此外还要注意,CLKINT只可用作连线时钟,HCLK并不具备将内部走线网连接到HCLK 的能力,因而HCLK资源不能被常规输入驱动。换句话说,如果使用LP引脚就不能使用HCLK;使用HCLK时就应在外部截断时钟信号。

降低动态功耗

动态功耗是在时钟工作且输入正在开关时的功耗。对CMOS电路,动态功耗基本上确定了总功耗。动态功耗包括几个成分,主要是电容负载充电与放电(内部与I/O)以及短路电流。多数动态功率是内部或外部电容向器件充、放电消耗的。如果器件驱动多个I/O负载,大量的动态电流构成总功耗的主要部分。

对设计中给定的驱动器,动态功耗由下式计算

p=CL×V 2 DD×f

式中,CL是电容负载,VDD是电源电压,f则是开关频率。总功耗是每个驱动器功耗之总和。

由于VDD是固定的,降低内部功耗就要降低平均逻辑开关频率,减少每个时钟沿处的逻辑开关总数、减少连线网络,特别是高频信号连线网络中的电容值。对低功率设计,需要从系统至工艺的每个设计级别中采取相应预防措施,级别越高,效果越好。

FPGA与CPLD的辨别和分类

FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。

将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera 的FLEX10K或ACEX1K系列等。

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:

①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA 更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑

功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

FPGA的应用

1.电路设计中FPGA的应用

连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石.事实上在电路设计中应用FPGA的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的,往往都从事新技术,新产品的开发成功的产品将变成市场主流基础产品供产品设计者应用在不远的将来,通用和专用IP 的设计将成为一个热门行业!搞电路设计的前提是必须要具备一定的硬件知识.在这个层面,干重于学,当然,快速入门是很重要的,越好的位子越不等人电路开发是黄金饭碗.2.产品设计

把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建"首发团队"的状态,只要加入,前途光明产品设计是一种职业发展方向定位,不是简单的爱好就能做到的!产品设计领域会造就大量的企业和企业家,是一个近期的发展热点和机遇3.系统级应用

系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用Xilinx V-4, V-5系列的FPGA,实现内嵌POWER PC CPU, 然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINUX等系统这个系统也就支持各种标准外设和功能接口(如图象接口)了这对于快速构成FPGA大型系统来讲是很有帮助的。这种"山寨"味很浓的系统早期优势不一定很明显,类似ARM系统的境况但若能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种发展方向。若在系统级应用中,开发人员不具备系统的扩充开发能力,只是搞搞编程是没什么意义的,当然设备驱动程序的开发是另一种情况,搞系统级应用看似起点高,但不具备深层开发能力,很可能会变成爱好者,就如很多人会做网页但不能称做会编程类似以上是几点个人开发,希望能帮助想学FPGA但很茫然无措的人理一理思

路。这是一个不错的行业,有很好的个人成功机会。但也肯定是一个竞争很激烈的行业,关键看的就是速度和深度当然还有市场适应能力。

fpga与cpld区别

1) cpld更适合组合逻辑设计,基于乘积项结构,fpga更适合时序逻辑设计,基于查找表结构;

2) cpld的连续分布式结构使延时均匀可预测,fpga的分段分布式结构使延时不可预测;

3) fpga比cpld设计更灵活,因为fpga可以在逻辑门下编程,cpld在逻辑块下编程;

4) fpga比cpld集成度高,有更复杂布线结构和逻辑实现;

5) fpga比cpld使用复杂,fpga基与sram结构要外加配置器件,cpld基于e2prom或fastflash不要配置器件.

6) Fpga比cpld功耗小且规模越大越明显.

本文来自:我爱研发网(https://www.sodocs.net/doc/6d12097011.html,) - R&D大本营

详细出处:https://www.sodocs.net/doc/6d12097011.html,/bbs/Archive_Thread.asp?SID=10144&TID=1

1, FPGA/CPLD的原理,特点与应用

答:pal/gal是早期的可编程逻辑器件的发展形式,其特点多基于eecmos工艺,结构较为简单,可编程逻辑单元多为与,或阵列,可编程单元密度较低,仅能适用于某些简单的数字逻辑电路。它们的特点是低功耗,低成本,高可靠性,软件可编程,可重复更改等特点。

CPLD是复杂可编程逻辑器件。CPLD是在pal ,gal的基础上发展起来的,一般也采用eecmos工艺,也少数厂商采用flash工艺,其基本结构由可编程I/O单元,基本逻辑单元,布线池和其他辅助功能模块构成,CPLD可以完成设计中较复杂,较高速度的逻辑功能,cpld 的器件的供应商有altera,lattice xilinx等。

FPGA的集成度是在CPLD的基础上发展起来的新型高性能可编程逻辑器件,它一般采用SRAM工艺,也有用专用器件采用flash工艺或反熔丝工艺等。fpga的集成度很高,其器件密度从数万门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速,高密度的高端数字逻辑电路设计领域。组成部分有可编程输入/输出单元,基本可编程逻辑单元,嵌入式块ram,丰富的布线资源,底层的嵌入功能单元,内嵌专用硬核等。主要器件厂商有xilinx,altera,lattice ,actel和,atmel.

2 FPGA与CPLD的异同有哪些?

答:CPLD是复杂可编程逻辑器件。CPLD是在pal ,gal的基础上发展起来的,一般也采用eecmos工艺,也少数厂商采用flash工艺,其基本结构由可编程I/O单元,基本逻辑单元,布线池和其他辅助功能模块构成,CPLD可以完成设计中较复杂,较高速度的逻辑功能,cpld

的器件的供应商有altera,lattice xilinx等。

FPGA的集成度是在CPLD的基础上发展起来的新型高性能可编程逻辑器件,它一般采用SRAM工艺,也有用专用器件采用flash工艺或反熔丝工艺等。fpga的集成度很高,其器件密度从数万门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速,高密度的高端数字逻辑电路设计领域。组成部分有可编程输入/输出单元,基本可编程逻辑单元,嵌入式块ram,丰富的布线资源,底层的嵌入功能单元,内嵌专用硬核等。主要器件厂商有xilinx,altera,lattice ,actel和,atmel.[br]

+5 RD币

--------------------------------------------------------------------------------

ziyehanxin Post at 2006-6-26 9:54:00

Fpga/cpld逻辑设计知识

1. setup /hold time 芯片信号与时钟的关系

建立时间是触发器的时钟上升沿到来前,数据保持稳定不变的时间;保持时间是触发器的时钟上升沿到来后,数据保持稳定不变的时间.如果输入信号不满足建立保持时间就不能被这一时钟打入触发器.

2. fpga与cpld区别

1) cpld更适合组合逻辑设计,基于乘积项结构,fpga更适合时序逻辑设计,基于查找表结构;

2) cpld的连续分布式结构使延时均匀可预测,fpga的分段分布式结构使延时不可预测;

3) fpga比cpld设计更灵活,因为fpga可以在逻辑门下编程,cpld在逻辑块下编程;

4) fpga比cpld集成度高,有更复杂布线结构和逻辑实现;

5) fpga比cpld使用复杂,fpga基与sram结构要外加配置器件,cpld基于e2prom或fastflash不要配置器件.

6) Fpga比cpld功耗小且规模越大越明显.

3. 竞争冒险

信号在逻辑器件内部经过连线和逻辑单元时,都有一定的延时.延时时间受到连线长度和逻辑单元个数及环境因数有关,所以在门输入的多个信号同时发生变化时会出现尖峰信号,这

些尖峰信号称为”glitch”,如果组合逻辑中有glitch,这个电路就存在”冒险”.

所以尽量采用同步电路,信号的变化在时钟的沿,只要出现在时钟沿的毛刺不满足setup/hold都不会有问题,如果还有问题可以在输出信号的保持时间内加D触发器采样.还有尽量不要让输入信号同时变化如采用格雷码?输入.

4. 门控时钟的设计原则

时钟驱动逻辑只包含一个”与门”或”或门”;

逻辑门的输入有一个为时钟输入,其他必须满足相对这个时钟的setup/hold time;

5. 如何提高系统运行速度

时钟周期T>=Tco+Tdelay+Tsetup-Tdp;就是如何减小T,方法就是减小组合逻辑的延时Tdelay,所以出现了流水线思想,即分割大的逻辑电路为几个小的逻辑电路在中间插入flip-flop,消除时间瓶颈.

6. pld/fpga完整的开发流程

设计输入;2. .逻辑综合;3功能仿真;4.布局布线;5.时序仿真;6.程序下载

7. fpga的4种常用设计思想及技巧

1) 乒乓操作:数据流控制的处理技巧,先通过输入选择逻辑把数据流等时分配到两个数据缓冲块,再通过输出选择逻辑在以后的缓冲周期轮流从缓冲模块中读取数据送到数据流处理模块中.

2) 串并转换:复杂的可用fsm实现.

3) 流水线思想:组合逻辑分割.

4) 数据接口的同步设计:如果为同步时钟用同步ram\fifo,若为异步时钟用异步fifo.

8. 同步逻辑与异步逻辑

同步逻辑的时钟之间有固定的因果关系,异步逻辑的时钟之间没有固定的因果关系.

9. 常用的逻辑电平,ttl与cmos能互连吗?

有0.1v,4.9v,1.0v,3.5v;0.5v,2.7v,0.8v,2.0v等;ttl不能与cmos互连,但是在vcc=5v时,cmos输出到ttl输入是可以的.

10. 亚稳态

异步时钟设计的组合逻辑是出现亚稳态的主要原因,当信号违反了dff的setup/hold time 就会出现不确定电平逻辑,只要亚稳态时间小于时钟周期就可用双reg方法消除.

11.moore与mealy fsm

Moore fsm的输出只跟当前的状态有关,与当前输入信号无关;mealy fsm的输出不但与当前的状态有关,还与当前的输入信号有关.

--------------------------------------------------------------------------------

onlyking Post at 2006-7-26 14:59:00

[em10][em10][em10]

--------------------------------------------------------------------------------

peime Post at 2006-7-26 16:03:00

一、

1.CPLD

CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。到90年代,CPLD发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性。较常用的有Xilinx公司的EPLD和Altera公司的CPLD。

2. FPGA

FPGA通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程互连。可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O 块连接起来,构成特定功能的电路。不同厂家生产的FPGA在可编程逻辑块的规模,内部互连线的结构和采用的可编程元件上存在较大的差异。较常用的有Altera、Xinlinx和Actel公司的FPGA。FPGA一般用于逻辑仿真。电路设计工程师设计一个电路首先要确定线路,然后进行软件模拟及优化,以确认所设计电路的功能及性能。然而随着电路规模的不断增大,工作频率的不断提高,将会给电路引入许多分布参数的影响,而这些影响用软件模拟的方法较难反映出来,所以有必要做硬件仿真。FPGA就可以实现硬件仿真以做成模型机。将软件模拟后的线路经一定处理后下载到FPGA,就可容易地得到一个模型机,从该模型机,设计者就很直观地测试其逻辑功能及性能指标。

二、

系统的比较,与大家共享:

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:

①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显

本文来自:我爱研发网(https://www.sodocs.net/doc/6d12097011.html,) - R&D大本营

详细出处:https://www.sodocs.net/doc/6d12097011.html,/bbs/Archive_Thread.asp?SID=10144&TID=1

FPGA与CPLD

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 CPLD与FPGA的关系 早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。 CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。 CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点 1)采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和I/O引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完

CPLD与FPGA区别

CPLD和FPGA区别 可编程逻辑器件主要包括FPGA和CPLD,FPGA是Field Programmable Gate Array缩写,CPLD是Complex Promrammable Logic Device的缩写。 从可编程逻辑器件的发展历史上来讲,CPLD一般是指采用乘积相结构的基于EEPROM的器件,所以具 有非挥发的,不需要外部配置ROM,具有保密性和有限次编程次数(根据不同的结构,从100次到1万次不等)等特点,适合用在胶合逻辑(glue logic,如DSP芯片外围的译码逻辑),IO扩展,IO电平转换,FPGA 芯片配置等应用场合。如Altera的MAX7000和MAX3000系列芯片,Xilinx的XC9500和CoolRunner/II 系列芯片,Lattice的ispMACH4000/Z系列芯片都是CPLD器件,容量从32宏单元到512宏单元不等。 FPGA主要是指采用四输入查找表(LUT4)的基于SRAM的器件,因为SRAM是挥发的,掉电丢失数据, 所以FPGA需要外部配置ROM,上电的时候,从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作。具有SRAM的FPGA采用标准的CMOS制造工艺,可以随着最新的工艺而更新还代,给用户带来了实惠;衡量FPGA容量的一个基本指标是逻辑单元(Logic cell或者Logic element),由一个可编程得LUT4和一个可编程的DFF组成,LUT4完成组合逻辑功能, 而DFF用来实现时序功能。FPGA的容量从几千的逻辑单元到几十万的逻辑单元不等。如Altera的Cyclone/II/III和Stratix/II/III系列芯片,Xilinx Spartan3/3E/3A/3AN和Virtex4/5系列芯片都是FPGA器件。 随着芯片技术的发展,CPLD和FPGA的概念已经模糊在一起,如Altera和Lattice公司把小容量(小于2K 左右逻辑单元)非挥发的可编程器件归到CPLD里,如Altera的MAXII系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和FLASH的储存单元做到一个芯片里面,以及跟传统的CPLD不一样了; 总之,我们可以简单的区分FPGA和CPLD,CPLD:小容量(<2K左右LE)的非挥发的可编程器件;其它 的可编程器件都可归到FPGA。 系统的比较: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结 构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结 构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能 来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 ⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并 且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

FPGA、CPLD、ASIC、DSP、单片机的区别

1. FPGA FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。 什么是FPGA? 简单来说,FPGA就是“可反复编程的逻辑器件”。FPGA取自 Field Programmable Gate Array的首个字母,代表现场(Field)可编程(Programmable)逻辑阵列(Gate Array)。 由于在产品发售后您仍然可以对产品设计作出修改,因此我们可以顺利地对产品进行更新以及针对新的协议标准作出相应改进。相对于对售后产品设计无法进行修改的ASIC和ASSP来说,这是FPGA特有的一个优势。由于FPGA 可编程的灵活性以及近年来科技的快速发展,FPGA也正向高集成,高性能,低功耗,低价格的方向发展,并具备了与ASIC和ASSP 同等的性能,被广泛地使用在各行各业的电子及通信设备里。 FPGA与CPLD的区别 尽管很多人听说过CPLD,但是关于CPLD与FPGA之间的区别,了解的人可能不是很多。虽然FPGA与CPLD都是“可反复编程的逻辑器件”,但是在技术上却有一些差异。简单地说,FPGA就是将CPLD的电路规模,功能,性能等方面强化之后的产物。 一般而言,CPLD与FPGA之间的区别的如下所示(当然也有例外)。

5分钟学会使用CPLD(FPGA)

5分钟学会使用CPLD 当今社会,随着电子行业的发展,大规模集成电路的运用越来越普遍,用CPLD/FPGA 来开发新产品是当前很多实际情况的需求。在此本人结合到自己的所学,利用业余时间草写了一个简单的使用说明,不要求有丰富经验的大虾来驻足观望,只希望对吾辈刚入门的菜鸟们起到一个抛砖引玉的作用。由于水平有限,文中错误在所难免,望各位提出宝贵的意见。 1.首先请准备一套简单的CPLD原理图。在此我们准备了如下所示的简单一个系统图。晶体用10M的有源晶体,可以在线下载的JTAG接口。电源用5转3.3V的电源模块AS1117。1个1K的排阻。8个发光管在程序运行时轮流点亮。 2.安装XILINX的集成编译软件ISE5.0或6.0。因为ISE在运行时比较消耗计算机的内存,所以要求计算机配置符合相关的要求,高一点的配置,不至于在运行时死机。 3.准备一小段verilog hdl编写一段小代码,主要用来验证系统板的正确。 其中也可以用VHDL来编写,考虑到verilog hdl比较接近C语言,对初级学者来说,相对所花时间较短,上手较快。在此我推荐学verilog hdl。具体的参考书可以看下面的提示:

4.此我们用下面的一小段代码作为范例:其功能是驱动8个发光管轮流点亮,因为是采用了10M频率晶体的边沿触发,所以速度很快,为了使我们肉眼能够看的清楚其工作的流程,我们在里面安放了一个计数器,计数器计每次满一次就点亮一个发光管,依次类推。。。。。。其源程序如下: /* 流水灯的V erilog-HDL描述*/ module LEDWA TER(reset,CLK,LED); input reset, CLK; output [7:0] LED; reg [7:0] LED;//=8'b11111111; reg [17:0] buffer;//=0; reg exchange; always@(posedge CLK) if(reset==0) //如果复位了就熄灭全部的灯 begin LED=8'b1111_1111; buffer=0; exchange=0; end else begin if (exchange==0) begin buffer=(buffer +1); if ( buffer == 17'b111111111111111111111111) begin buffer=0; LED=(LED-1); if(LED==8'b0000_0000) begin LED=8'b1111_1111; exchange=1; end end end if(exchange==1) begin buffer=(buffer +1); if ( buffer == 17'b111111111111111111111111) begin buffer=0; LED=(LED>>1); if(LED==8'b00000000) begin LED=8'b1111_1111;

单片机、DSP、PLC、CPLD、FPGA、嵌入式的区别

所谓嵌入式,专指嵌入到其它系统内部,满足特定需求的专用计算机系统。它的概念非常广泛,只要是具有包含软硬件等计算机专有属性的系统都可以称之为嵌入式系统。 单片机是指把CPU、存储器、输入输出设备或接口集成到一片芯片内,加少量的外围电路就可以构成计算机系统的器件,目前常用的有MCS-51系列、PIC系列等器件,生产厂家很多、以8位、16位为主,一般没有操作系统,主要满足简单的控制需求。 目前以ARM为代表的32位CPU严格意义上说是一个单板机系统,可以加载Linux、WinCE等复杂的操作系统,可以满足复杂的需求。 PLC是可编程控制器,也是嵌入式系统的一种,但是一般用于电气控制,已经预制了很多程序,用梯形图等简单的编程语言就能构成系统。PLC价格昂贵、应用简单、容易上手,一般用来实现工业现场复杂情况下的控制,应用领域有限。 CPLD和FPGA以往大多用于可编程数字电路的实现,使数字电路设计趋于简单和可更改设计。这几年随之FPGA的发展,内部可以嵌入微控制器核,来构建SoC(System on Chip),但是开发难度相当大。 DSP的优势在于信号处理,运算能力强大,但控制能力一般,一般往往用于视频分析等需要进行信号复杂运算的场合。 DSP:数字信号处理器,处理器采用哈弗结构,工作频率较高,能大幅度提高数字信号处理算法的执行效率。 MCU:微控制器,主要用于控制系统,工作频率一般来说比DSP低,硬件上具有多个IO 端口,同时也集成了多个外设,主要是便于在控制系统中的应用。至于ARM处理器,个人认为是MCU的高级版本,ARM本身只是一个内核,目前已经有多个版本。 CPLD:复杂可编程逻辑器件 FPGA:现场可编程门阵列 后两者都是可编程器件,CPLD目前一半采用FLASH技术,而FPGA采用SRAM技术,这就决定了FPGA需要采用特定的配置技术。同时FPGA的规模要比CPLD大得多,但CPLD应用起来相对要简单的多

认清CPLD和FPGA

认清CPLD和FPGA CPLD和FPGA都是我们经常会用到的器件。有的说有配置芯片的是FPGA,没有的是CPLD;有的说逻辑资源多的是FPGA,少的是CPLD;有的直接就不做区分,把他们都叫做FPGA。那么两者到底有什么区别呢?下面我们就以Altera公司的CPLD和FPGA为例来说说两者的区别。 首先我们看一下CPLD的芯片结构,搞清楚CPLD是由哪几部分组成的。下图是MAX 系列CPLD的芯片结构图: 从图中可以清楚的看出来CPLD主要由三部分组成:Macro cell(宏单元),PIA(可编程连线),和IO Control Block(IO控制块)。每个宏单元都与GCLK(全局时钟)OE(输出使 能)GCLR(清零)等控制信号直接相连,并且延时相同。各宏单元之间也由固定长度的金属线互连,这样保证逻辑电路的延时固定。其中宏单元模块是CPLD的逻辑功能实现单元,是器件的基本单元,我们设计的逻辑电路就是由宏单元具体实现的。下面我们再来看看宏单元的具体结构:

一个宏单元主要包括了LAB Local Array(逻辑阵列),Product-Term Select Matrix(乘积项选择矩阵)和一个可编程D触发器组成。其中逻辑阵列的每一个交叉点都可以通过编程实现导通从而实现与逻辑,乘积项选择矩阵可实现或逻辑。这两部分协同工作,就可以实现一个完整的组合逻辑。输出可以选择通过D触发器,也可以对触发器进行旁路。通过这个结构可以发现,CPLD非常适合实现组合逻辑,再配合后面的触发器也能够实现一定的时序逻辑。 我们再来以cyclone系列为例看看FPGA的内部结构:

CPLD和FPGA的区别

《CPLD和FPGA的区别》 1).两者的区别: 最大的区别,就是CPLD进行一次下载编程(写入操作)后,其逻辑门组合方式就保存下来,不管什么时候断电,通电,他都可以执行上一次的逻辑功能。FPGA不能保存上次逻辑功能,断电后,FPGA就失去所有配置。因此FPGA通常需要带一块配置芯片,在通电后,对FPGA进行重新配置,恢复功能(重配置需要时间,CPLD通电后,马上就可以执行相应逻辑)。 CPLD的擦写次数非常有限,经过100~1000次左右的反复擦写就报废了。而FPGA可以反复擦写无限次(当然,实际上是有限的。但是在通常使用中,就算你反复擦写,大概你挂了,它还没有挂)。FPG的配置芯片擦写次数有限,而且常常只能烧写一次(OTP)。CPLD的容量一般比较小,FPGA容量很大。 综合上面所有的情况,结论是这样的,你在学习阶段,或者开发阶段,最好使用FPGA,因为可以反复擦写,不对马上重新烧写。只要不断电,你烧写下去的逻辑功能是一直可用的。定型后可以使用CPLD,可以免去FPGA。但是当你的配置容量非常大的时候,CPLD装不下,你又必须采用FPGA了,这个时候,在最后成品上需要加配置芯片(当然也用单片机模拟配置芯片,具体这个地方不介绍)。 市面上尤其是学校里面可以看到Xilinx公司或者Altera公司各种不同的开发板,其实只有两个大类,CPLD开发板和FPGA开发板。尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTF

单片机,DSP和FPGA区别以及发展前景

单片机、dsp、FPGA/CPLD的分析、比较 硬件天地2009-02-15 11:54:39 阅读367 评论0 字号:大中小订阅 引言 信息技术正在快速发展,其应用已经深入到各个领域各个方面。如今越来越多的电子产品向着智能化、微型化、低功耗方向发展,其中有的产品还需要实时控制和信号处理。电子系统的复杂性在不断增加,它迫切要求电子设计技术也有相应的变革和飞跃。使用纯SSI 数字电路设计系统工作量大,灵活性低,而且系统可靠性差。广泛使用单片机(MCU) 设计系统克服了纯SSI 数字电路系统许多不可逾越的困难,是一个具有里程碑意义的飞跃。而DSP 以其极强的信号处理功能赢得了广阔的市场,得到了广泛地应用。近年来,PLD 器件迅速发展,尤其是CPLD/ FPGA 向深亚微米领域进军,PLD 器件得到了广泛应用,以CPLD/ FPGA 为物质基础的EDA 技术诞生了。它具有电子技术高度智能化、自动化的特点,打破了软硬件最后的屏障,使得硬件设计如同软件设计一样简单。它作为一种创新技术正在改变着数字系统的设计方法、设计过程和设计观念。单片机,DSP ,PLD/ EDA 以其各自的特点满足了各种需要,正从各个领域各个层面改变着世界,它们已经成为数字时代的核心动力,推动着信息技术的快速发展。 以下,我们将对单片机,DSP ,PLD/ EDA 分别加以介绍,并作比较和分析。 单片机 单片机是集成了CPU ,ROM ,RAM 和I/ O 口的微型计算机。它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU) 。它与通用处理器不同,它是以工业测控对象、环境、接口等特点出发,向着增强控制功能,提高工业环境下的可靠性、灵活方便地构成应用计算机系统的界面接口的方向发展。所以,单片机有着自己的特点。 品种齐全,型号多样 自从INTEL 推出51 系列单片机,许多公司对它做出改进,发展成为增强型51 系列,而且新的单片机类型也不断涌现。如MOTOROLA 和PHIL IPS 均有几十个系列,几百种产品。CPU 从8 ,16 ,32 到64 位,多采用RISC 技术,片上I/O 非常丰富,有的单片机集成有A/ D ,“看门狗”,PWM ,显示驱动,函数发生器,键盘控制等,它们的价格也高低不等,这样极大地满足了开发者的

CPLD与FPGA性能特点差异

CPLD与FPGA区别 转载了网上的文章,帮大家了解下基本概念问题! 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2P

ROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 ⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。 ⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 ⑧CPLD保密性好,FPGA保密性差。 ⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

CPLDFPGA的基本知识

第一章CPLD/FPGA的基本知识 FPGA,CPLD和其它类型PLD的结构各有其特点和长处,但概括起来,它们是由三大部分组成的:(1)一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心;(2)输入/输出块;(3)连接逻辑块的互连资源,由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接。 图1.2.1 PLD的结构 对用户而言,虽然CPLD与FPGA的内部结构稍有不同,但其用法都一样,所以多数情况下,不加以区分。FPGA/CPLD芯片都是特殊的ASIC芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:(1)随着VlSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成,即片上系统SOC。 (2)FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以,FPGA /CPLD的资金投入小,节省了许多潜在的花费。 (3)用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。所以,用FPGA/PLD 试制样片,能以最快的速度占领市场。FPGA/CPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路有少量改动时,更能显示出FPGA/CPLD的优势。电路设计人员使用FPGA/CPLD进行电路设计时,不需要具备专门的IC(集成电路)深层次的知识,FPGA/CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场。(4)在线可编程技术(ISP)使得使用CPLD/FPGA的产品可以做到远程升级。 (以上内容参照西电《CPLD技术及其应用》,有改动) (三)PLD/FPGA 结构与原理初步 一. 基于乘积项(Product-Term)的PLD结构 采用这种结构的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice,Cypress的大部分产品(EEPROM工艺)。我们先看一下这种PLD的总体结构(以MAX7000为例,其他型号的结构与此都非常相似):

CPLD与FPGA的用途及区别

CPLD与FPGA的用途及区别 FPGA/CPLD能做什么呢?可以毫不夸张的讲,FPGA/CPLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA/CPLD来实现。FPGA/CPLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA/CPLD的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA/CPLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA/CPLD 还可以做数字IC设计的前端验证,用这种方式可以很大程度上降低IC设计的成本。FPGA/CPLD的这些优点使得FPGA/CPLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。FPGA/CPLD有什么区别呢?1)各个厂家叫法不尽相同:PLD(Programmable Logic Device)是可编程逻辑器件的总称,早期多EEPROM工艺,基于乘积项(Product Term)结构。FPGA (Field Programmable Gate Arry)是指现场可编程门阵列,最早由Xilinx公司发明。多为SRAM 工艺,基于查找表(Look Up Table)结构,要外挂配置用的EPROM。Xilinx把SRAM工艺,要外挂配置用的EPROM的PLD叫FPGA,把Flash工艺(类似EEPROM工艺),乘积项结构的PLD叫CPLD; Altera把自己的PLD产品:MAX系列(EEPROM工艺),FLEX/ACEX/APEX系列(SRAM工艺)都叫作CPLD,即复杂PLD(Complex PLD)。由于FLEX/ACEX/APEX系列也是SRAM工艺,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX/ACEX/APEX系列产品也叫做FPGA. 2)结构上的主要区别逻辑块的粒度不同逻辑块指PLD 芯片中按结构划分的功能模块,它有相对独立的组合逻辑阵列,块间靠互连系统联系.FPGA 中的CLB 是逻辑块,其特点是粒度小,输入变量为4~8 ,输出为1~2 ,因而只是一个逻辑单元,每块芯片中有几十到近千个这样的单元. CPLD中逻辑块粒度较大,通常有数十个输入端和一、二十个输出端,每块芯片只分成几块. 有些集成度较低的(如ATV2500) 则干脆不分块. 显然,如此粗大的分块结构使用时不如FPGA 灵活. 逻辑之间的互连结构不同CPLD 的逻辑块互连是集总式的,其特点是等延时,任意两块之间的延时是相等的,这种结构给设计者带来很大方便; FPGA 的互连则是分布式的,其延时与系统的布局有关, 3)应用范围也有所不同逻辑系统通常可分两大类型: 1、逻辑密集型: 如高速缓存控制、DRAM 控制和DMA 控制等,它们仅需要很少的数据处理能力,但逻辑关系一般都复杂2、数据密集型: 数据密集型需要大量数据处理能力,其应用多见于通讯领域. 为了选择合适的PLD 芯片,应从速度与性能、逻辑利用率、使用方便性、编程技术等方面进行考查。速度与性能: 数据密集型系统,比如,通讯中对信号进行处理的二维卷积器. 在实现这一算法的逻辑系统中,每个单元所需要的输入端较少,但需要很多这样的逻辑单元. 这些要求与FPGA 的结构相吻合. 因为FPGA 的粒度小,其输入到输出的传输延迟时间很短,因而能获得高的单元速度.而控制密集型系统通常是输入密集型的,逻辑复杂,CLB 的输入端往往不够用,需把多个CLB 串行级联使用,同时CLB 之间的连接有可能通过多级通用PI 或长线,导致速度急剧下降. 因而实际的传输延迟时间要大CPLD. 比如,实现一个DRAM 控制器,它由四个功能块组成:刷新状态机、刷新地址计数器、刷新定时器和地址选择开关,需要的输入端有几十个,显然用CPLD 更合适. 逻辑利用率: 逻辑利用率是指器件中资源被利用的程度. CPLD 逻辑寄存器少,FPGA 逻辑弱而寄存器多,这正好与控制密集型系统与数据密集型系统相对应. 比如, 规模同为6000PLD 门的 is2pLSI1032 有192 个寄存器;而XC4005E 有616 个寄存器. 因此从逻辑利用率角度,对于组合电路较复杂的设计,宜采用颗粒较粗的CPLD ,触发器较多的设计,宜采用用细颗粒的FPGA. (3) 使用方便性: 使用方便首先要考虑性能的可预测性,在这点上CPLD 优于FPGA. 对于CPLD ,通常只要输入、输出端口数,内部门和触发器数目不超过芯片的资源并有

FPGA_CPLD的发展与展望

《EDA技术》结课论文FPGA技术及发展方向 姓名:____________郭阳______ 指导教师:________卢超______ 学号:______1110064081______ 所在学院:___物理与电信工程学院 所在专业:__电子信息科学与技术 论文完成时间:_____2014-6-20___

目录 摘要 (3) 一、 CPLD/FPGA简介 (3) 二、FPGA不断扩大的应用领域 (3) 三、FPGA的发展现状 (4) 1、FPGA的硬件朝向大容量、低电压、低功耗发展 (4) 2、系统级高密度FPGA (4) 3、第三方设计使FPGA更加方便 (5) 3.1、Altium:System-On-FPGA方案 (5) 3.2、Cadence:致力于验证 (5) 3.3、Mentor:具备FPGA全流程方案 (5) 4、FPGA和ASIC出现相互融合 (6) 5、动态可重构FPGA (6) 结论 (6) 参考文献 (6)

[摘要]:CPLD/FPGA的出现为EDA的快速发展做出了巨大的贡献。与传统单片机相比,CPLD/FPGA在高频电子设计上有突出的优势。CPLD/FPGA在很短的时间内得到了空前的发展,同时在电子市场上也得到了广泛的应用。通过对CPLD/FPGA当前现状的分析,可以为其未来的发展奠定基本方向。本篇文章得出CPLD/FPGA器件会向着大容量、低电压、低功耗的方向发展。于此同时IP库也在各大厂商的推动下将得到进一步的发展。另一方面,随着技术的发展,芯片的规模将越来越大,有取代ASIC的可能性。而最新的“动态可重构技术”也为系统设计方法的转变提供了条件。 [关键字]:CPLD/FPGA 技术现状发展方向 [Abstract]: The emergence of the CPLD/FPGA made great contribution to the rapid development of EDA. Compared with the traditional MCU, CPLD/FPGA has prominent advantages in high frequency electronic design. CPLD/FPGA in a very short period of time got unprecedented development, at the same time also has been widely used in the electronic market. Through the analysis of the current status of CPLD/FPGA, to lay the basic direction of future development. This article concludes that CPLD/FPGA device will toward the direction of large capacity, low voltage, low power consumption. At the same time the IP library under the impetus of the major manufacturers will also get further development. , on the other hand, with the development of technology, the size of the chip will be bigger and bigger, have replaced the possibility of an ASIC. The latest "dynamic reconfigurable technique" also provides conditions for the transition of the system design method. [Key words]: CPLD/FPGA technical state development direction 一、 CPLD/FPGA简介 CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于 CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。较常用的有Altera公司的CPLD。 FPGA通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程互连。可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,FPGA在可编程逻辑块的规模,内部互连线的结构和采用的可编程元件上存在较大的差异。FPGA一般用于逻辑仿真。电路设计工程师设计一个电路首先要确定线路,然后进行软件模拟及优化,以确认所设计电路的功能及性能。 随着电路规模的不断增大,电路频率的不断提高,将给电路引入许多分布参数的影响,而这些影响用软件方法较难进行仿真,所以有必要进行硬件仿真。FPGA就可以进行硬件仿真以做成模型机。将软件模拟后的路径下载到FPGA,就可容易的到一个模型机。从改模型机,设计者就可以很直观的测试其逻辑功能以及性能指标。 二、FPGA不断扩大的应用领域 据Gartner Dataquest在去年美国DAC(设计自动化年会)期间公布的数据,每年采用ASIC开始进行设计的数量在逐年下降,取而代之的是ASSP(特殊应用标准产品),由于深亚微米(DSM)制程以后,ASIC的开发成本不断上升,因此标准产品中的FPGA是理想的选择之一。FPGA的应用领域不断扩大,未来,消费电子(例如HDTV、无线路由器)和汽车电子是所有应用中成长最快的。汽车行业一直在密切关注可编程逻辑器件(PLD),发掘PLD怎样帮助系统供应商和汽车制造商(原始设备生产商)获得成功。PLD凭借其较低的成本结构和较高的系统性能,进入了主流汽车市场。与ASSP解决方案不同,PLD所具有的灵活性在汽车行业中受到普遍欢迎。汽车图形处理汽车联网辅助驾驶音频处理汽车行业一直在密切关注可编程逻辑器件(PLD),发掘PLD怎样帮助系统供应商和汽车制造商(原始设备生产商)获得成功。PLD已经在信息娱乐和通信市场上得到了广泛应用,新兴的汽车辅助驾驶设计也采用了PLD。在这一领域中,某些应用发展非常迅速,包括道路偏离报警、夜视和胎压监

CPLD和FPGA区别

CPLD和FPGA区别 可编程逻辑器件要紧包括FPGA和CPLD,FPGA是Field Programmable Gate Array缩写,CPLD是Complex Promrammable Logic Device的缩写。 从可编程逻辑器件的进展历史上来讲,CPLD一样是指采纳乘积相结构的基于EEPROM 的器件,因此具有非挥发的,不需要外部配置ROM,具有保密性和有限次编程次数(依照不同的结构,从100次到1万次不等)等特点,适合用在胶合逻辑(glue logic,如DSP芯片外围的译码逻辑),IO扩展,IO电平转换,FPGA芯片配置等应用场合。如Altera的MAX7000和MAX3000系列芯片,Xilinx的XC9500和CoolRunner/II系列芯片,Lattice的ispMACH4000/Z 系列芯片差不多上CPLD器件,容量从32宏单元到512宏单元不等。 FPGA要紧是指采纳四输入查找表(LUT4)的基于SRAM的器件,因为SRAM是挥发的,掉电丢失数据,因此FPGA需要外部配置ROM,上电的时候,从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作。具有SRAM的FPGA采纳标准的CMOS制造工艺,能够随着最新的工艺而更新还代,给用户带来了实惠;衡量FPGA容量的一个差不多指标是逻辑单元(Logic cell或者Logic element),由一个可编程得LUT4和一个可编程的DFF组成,LUT4完成组合逻辑功能, 而DFF用来实现时序功能。FPGA的容量从几千的逻辑单元到几十万的逻辑单元不等。如Altera的Cyclone/II/III和Stratix/II/III系列芯片,Xilinx Spartan3/3E/3A/3AN 和Virtex4/5系列芯片差不多上FPGA器件。 随着芯片技术的进展,CPLD和FPGA的概念差不多模糊在一起,如Altera和Lattice 公司把小容量(小于2K左右逻辑单元)非挥发的可编程器件归到CPLD里,如Altera的MAXII 系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和FLASH的储存单元做到一个芯片里面,以及跟传统的CPLD不一样了; 总之,我们能够简单的区分FPGA和CPLD,CPLD:小容量(<2K左右LE)的非挥发的可编程器件;其它的可编程器件都可归到FPGA。 系统的比较:

FPGA与CPLD 总结

CPLD(complex programable logic device)复杂可编程逻辑器件 FPGA(field programable gate array)现场可编程门阵列 FPGA和CPLD的逻辑单元本身的结构与SPLD相似,即与阵列和可配置的输出宏单元组成。FPGA逻辑单元是小单元,每个单元只有1-2个触发器,其输入变量通常只有几个因而采用查找表结构(PROM形式) 这样的工艺结构占用的芯片面积小,速度高(通常只有1-2纳秒),每个芯片上能集成的单元数多,但逻辑单元功能弱。 如果想实现一个较复杂的功能,需要几个这样的单元组合才能完成(总延时是各个单元延时和互连延时的和),互连关系复杂。 CPLD中的逻辑单元是单元,通常其变量数约20-28个。因为变量多,所以只能采用PAL结构。由于这样的单元功能强大,一般的 逻辑在单元内均可实现,因而其互连关系简单,一般通过集总总线既可实现。电路的延时通常就是单元本身和集总总线的 延时(通常在数纳秒至十几纳秒),但是同样集成规模的芯片中的触发器的数量少得多。从上面分析可知道:小单元的FPGA较适合数据型系统,这种系统所需要的触发器数多,但是逻辑相对简单;大单元的CPLD较适合 逻辑型系统,如控制器等,这种系统逻辑复杂,输入变量多,但触发器需求量相对较少。 反熔丝工艺只能一次性编程,EPROM EEPROM 和FLASH工艺可以反复的编程,但是他们一经编程片内逻辑就被固定。他们都是 只读型(ROM)编程,这类编程不仅可靠性较高还可以加密。 XILINX公司的FPGA芯片采用RAM型编程,相同集成规模的芯片中的触发器数目较多,功耗低,但是掉电后信息不能保存,必须 与存储器联用。每次上电时必须先对芯片配置,然后才能使用,这似乎是RAM型PLD的缺点,但是ROM型PLD中的编程信息在使用时 是不能变化的,RAM型PLD却可以在工作时更换内容,实现不同的逻辑。 CPLD和FPGA的结构,性能对照: CPLD FPGA PROM 集成规模:小(最大数万门)大(最高达百万门) 单元粒度:大(PAL结构)小(PROM结构) 互连方式:集总总线分段总线长线专用互连 编程工艺:EPROM EEPROM FLASH SRAM 编程类型:ROM RAM型须与存储器联用 信息:固定可实时重构 触发器数:少多 单元功能:强弱 速度:高低222222222222222222222222222222222222 延迟:确定,可以预测不能确定不能预测 功耗:高低 加密性能:可加密不能加密 适用场合:逻辑型系统数据型系统 LCA(LOGIC CELL ARRAY)逻辑单元阵列 CLB(CONFIGURABLE LOGIC BLOCK)可配置逻辑模块 IOB(INPUT OUTOUT BLOCK)输入输出块

FPGA与CPLD常见术语

FPGA专业术语 1.泛类 FPGA:field programmable gate array 现场可编程门阵列 CPLD:complex programmable logic device 复杂可编程逻辑器件 (EPLD:enhanced programmable logic device 增强型CPLD) VLSIC:very large scale integrated circuit 大规模集成电路 ASIC:application specific integrated circuit 专用型集成电路 RAM:random-access memory 随机存取存储器 ROM:read-only memory 只读存储器 E2PROM:electrically erasable programmable ROM 电擦除可编程ROM SOPC:system on programmable chip 可编程片上系统 PAL:programmable array logic 可编程逻辑阵列 GAL:generic array logic 通用逻辑阵列 SRAM工艺:static RAM 静态RAM DRAM:dynamic RAM 动态RAM SDRAM:synchronous dynamic RAM 同步动态RAM NOR flash:(not or)容量小,读得快擦写得慢 NAND flash:(not and)容量大,写得快读的慢 TTL:transistor-transistor logic 三级管结构 2.FPGA结构名词 ●逻辑单元 LUT:look up table 查找表 Register:寄存器 FF:flip flop 时钟使能触发器 Latch:锁存器 LE:logic element 逻辑单元(LE = LUT + Register) (LC:logic cell 意同LE) LAB:logic array block 逻辑阵列模块(LAB = 10LE) (PFU:programmable function unit 可编程功能单元,意同LAB) ●嵌入式块RAM SPRAM:single port RAM 单端口RAM DPRAM:double port RAM 双端口RAM Pseudo RAM:伪双端口RAM CAM:content addressable memory 查找数据返回地址,功能与RAM反FIFO:first in first out 先进先出存储结构 Glue logic:粘合逻辑,基于RAM实现RAM ROM CAM FIFO结构 (LUT也可配置为RAM ROM CAM FIFO结构:distributed RAM:分布式RAM) ●布线资源 Bank:分区 Low skew:第二全局时钟 ●底层潜入单元 PLL:phase locked loop 相位锁环 DLL:delay locked loop 延时锁环

相关主题