PLD,CPLD,FPGA区别[通俗易懂]

PLD,CPLD,FPGA区别[通俗易懂]入门以后可以学习Xilinx的ISE,Altera的QuartusII学习CPLD初学者,建议选用LATTICE,这家公司在此方面有优势主流还是Altera和Xilinx,毕竟是最大的两家PLD公司(Cyclone   Spartan) PLD,CPLD,FPGA有何不同?不同厂家的叫法不尽相同,  PLD(ProgrammableLogicDevice)是可编程逻辑器件的总称

大家好,又见面了,我是你们的朋友全栈君。

入门以后可以学习Xilinx的ISE,Altera的QuartusII
学习CPLD初学者,建议选用LATTICE,这家公司在此方面有优势
主流还是AlteraXilinx,毕竟是最大的两家PLD公司(Cyclone    Spartan)

 

PLD,CPLD,FPGA有何不同?

不同厂家的叫法不尽相同,
   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.

【结构上的主要区别:】

1:逻辑块的粒度不同.

逻辑块指PLD 芯片中按结构划分的功能模块,它有相对独立的组合逻辑阵列,块间靠互连系统联系.FPGA 中的CLB 是逻辑块,其特点是粒度小,输入变量为4~8 ,输出为1~2 ,因而只是一个逻辑单元,每块芯片中有几十到近千个这样的单元. CPLD中逻辑块粒度较大,通常有数十个输入端和一、二十个输出端,每块芯片只分成几块. 有些集成度较低的(如ATV2500) 则干脆不分块. 显然,如此粗大的分块结构使用时不如FPGA 灵活.

2:逻辑之间的互连结构不同

CPLD 的逻辑块互连是集总式的,其特点是等延时,任意两块之间的延时是相等的,这种结构给设计者带来很大方便; FPGA 的互连则是分布式的,其延时与系统的布局有关,

【应用范围也有所不同】:

逻辑系统通常可分两大类型:

一类是逻辑密集型: 如高速缓存控制、DRAM 控制和DMA 控制等,它们仅需要很少的数据处理能力,但逻辑关系一般都复杂

另一类是数据密集型: 数据密集型需要大量数据处理能力,其应用多见于通讯领域.

为了选择合适的PLD 芯片,应从速度与性能、逻辑利用率、使用方便性、编程技术等方面进行考查:

(1)  速度与性能: 数据密集型系统,比如,通讯中对信号进行处理的二维卷积器. 在实现这一算法的逻辑系统中,每个单元所需要的输入端较少,但需要很多这样的逻辑单元. 这些要求与FPGA 的结构相吻合. 因为FPGA 的粒度小,其输入到输出的传输延迟时间很短,因而能获得高的单元速度.而控制密集型系统通常是输入密集型的,逻辑复杂,CLB 的输入端往往不够用,需把多个CLB 串行级联使用,同时CLB 之间的连接有可能通过多级通用PI 或长线,导致速度急剧下降. 因而实际的传输延迟时间要大CPLD. 比如,实现一个DRAM 控制器,它由四个功能块组成:刷新状态机、刷新地址计数器、刷新定时器和地址选择开关,需要的输入端有几十个,显然用CPLD 更合适.

(2)  逻辑利用率: 逻辑利用率是指器件中资源被利用的程度. CPLD 逻辑寄存器少,FPGA 逻辑弱而寄存器多,这正好与控制密集型系统与数据密集型系统相对应. 比如, 规模同为6000PLD 门的is2pLSI1032 有192 个寄存器;而XC4005E 有616 个寄存器. 因此从逻辑利用率角度,对于组合电路较复杂的设计,宜采用颗粒较粗的CPLD ;对于时序电路中<strong class=”kgb” οnmοuseοver=”isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer=”_u89E6_u53D1_u5668″;KeyGate_ads.ShowGgAds(this,”_u89E6_u53D1_u5668″,event)” style=”border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline” οnclick=”javascript:window.open(“http://www.google.com/pagead/iclk?sa=l&ai=B2R8cxK-JR5WxJ4bU7APN-LDTCpiBlTOIz87RBPDWtnmA4gkQARgBIK-aqgkoAjABOAFQ7tXJy_7_____AWCd0dSBsAWgAaqp9v4DqgEKMTAwMDAxNjAwMsgBAcgC6MOOAdkDBTOEgsn71OjgAxA&num=1&adurl=http://toolbar.google.com/T4/intl/zh-CN/%3Futm_campaign%3DzhCN%26utm_source%3DzhCN-ha-ww-google%26utm_medium%3Dha%26utm_term%3D%25E5%25B7%25A5%25E5%2585%25B7%26tbbrand%3DGZAZ”);GgKwClickStat(“触发器”,”toolbar.google.com/zh-CN”,”afs”,”1000016002″);” οnmοuseοut=”isShowGg = false;InTextAds_GgLayer=”_u89E6_u53D1_u5668″”>触发器较多的设计,宜采用用细颗粒的FPGA.

(3)  使用方便性: 使用方便首先要考虑性能的可预测性,在这点上CPLD 优于FPGA. 对于CPLD ,通常只要输入、输出端口数,内部门和触发器数目不超过芯片的资源并有一定裕量,总是可以实现的. 而FPGA ,则很难预测,因为完成设计所需的CLB 逻辑级数是无法事实确定的,只有靠多次试验才能得到满意的结果.

(4)  编程技术: FPGA 编程信息存放在外部<strong class=”kgb” οnmοuseοver=”isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer=”_u5B58_u50A8_u5668″;KeyGate_ads.ShowGgAds(this,”_u5B58_u50A8_u5668″,event)” style=”border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline” οnclick=”javascript:window.open(“http://www.google.com/aclk?sa=l&ai=B1ew7xK-JR7u4GI7A7AOR_dD0CpiBlTOIz87RBPDWtnmwkB8QAhgCIK-aqgkoBzAAOAFQ7tXJy_7_____AWCd0dSBsAWgAaqp9v4DqgEKMTAwMDAxNjAwMsgBAcgC6MOOAdkDh9tSt2kzi63gAxA&num=2&q=http://toolbar.google.com/T4/intl/zh-CN/%3Futm_campaign%3DzhCN%26utm_source%3DzhCN-ha-ww-google%26utm_medium%3Dha%26utm_term%3D%25E5%25B7%25A5%25E5%2585%25B7%26tbbrand%3DGZAZ&sig=AGiWqtxr8Pe3djJpSHAxCjJpS8g-dlKFEA”);GgKwClickStat(“存储器”,”toolbar.google.com/zh-CN”,”afs”,”1000016002″);” οnmοuseοut=”isShowGg = false;InTextAds_GgLayer=”_u5B58_u50A8_u5668″”>存储器,要附加存储器芯片,其保密性差,断电后数据易丢失. CPLD 采用最佳的E2CMOS 技术。

 

 

———————–

尽管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大,且集成度越高越明显。

——————————————————

 

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块连接起矗?钩商囟üδ艿牡缏贰2煌?Ъ疑??腇PGA在可编程逻辑块的规模,内部互连线的结构和采用的可编程元件上存在较大的差异。较常用的有Altera、Xinlinx和Actel公司的FPGA。FPGA一般用于逻辑仿真。电路设计工程师设计一个电路首先要确定线路,然后进行软件模拟及优化,以确认所设计电路的功能及性能。然而随着电路规模的不断增大,工作频率的不断提高,将会给电路引入许多分布参数的影响,而这些影响用软件模拟的方法较难反映出来,所以有必要做硬件仿真。FPGA就可以实现硬件仿真以做成模型机。将软件模拟后的线路经一定处理后下载到FPGA,就可容易地得到一个模型机,从该模型机,设计者就很直观地测试其逻辑功能及性能指标。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136207.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 业务逻辑漏洞

    业务逻辑漏洞目录什么是业务逻辑漏洞:业务逻辑漏洞产生的核心原因:应用中的缺陷通常分为两种类型:逻辑漏洞主要产生的位置登录处存在的逻辑漏洞1.可以暴力破解用户名或密码:2.session没有清空:业务办理处存在的逻辑漏洞水平越权篡改手机号验证码处存在的逻辑漏洞登录验证码未刷新手机或邮箱验证码可爆破手机或邮箱验证码回显到客户端修改response包绕过判定支付处存在的逻辑漏洞修改商品编号金额修改商品数量修改通过前端限制限购商品充值中放弃订单

  • Jave运算符和MySQL运算符总结

    Jave运算符和MySQL运算符总结

  • phpstorm 激活码密钥无效(JetBrains全家桶)

    (phpstorm 激活码密钥无效)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • laravel5 报错419,form 添加crrf_field 后让然失败,本地环境配置问题

    laravel5 报错419,form 添加crrf_field 后让然失败,本地环境配置问题

  • FFmepg_ffmpeg下载

    FFmepg_ffmpeg下载FFMpeg0.6版源码下载:来自:http://sourceforge.net/projects/mplayer-win32/files/FFmpeg/FFmpeg-svn-24623.7zffmpeg-r24623.tar.bz2我收集到的相关开发资料:(均来自网络) FFMpeg中apiexample_c例子分析——解码分析.txtffmpeg初级教程.rarff

  • (二)缺陷报告「建议收藏」

    (二)缺陷报告「建议收藏」当测试人员发现一个缺陷,需要填写一份“缺陷报告”来记录这个缺陷,并通过这个缺陷报告告知开发人员所发生的问题–缺陷报告是测试人员和开发人员交流沟通的重要工具。案例1:张三在测试案例1-2-1程序时,发现除数为0时程序异常退出,向开发组提交一份缺陷报告。一、缺陷报告的组成:①缺陷编号(DefectID):提交缺陷的顺序②缺陷标题(summary):简明扼要的描述缺陷③缺陷…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号