CPLD和FPGA的区别(转)[通俗易懂]

CPLD和FPGA的区别(转)[通俗易懂]原文:http://tvb2058.spaces.eepw.com.cn/articles/article/item/15358本文重点从CPLD的结构来讲的,从而说明其与FPGA的区别——————————————————————————————————-…

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

原文:http://tvb2058.spaces.eepw.com.cn/articles/article/item/15358

本文重点从CPLD的结构来讲的,从而说明其与FPGA的区别

——————————————————————————————————————-

尽管FPGA和CPLD都是可编程逻辑器件,有很多共同特点,但由于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大,且集成度越高越明显。

 ——————————————————————————————————————-

随著复杂可编程逻辑器件(CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市场。许多设计人员已感受到CPLD容易使用时序可预测速度高等优点,然而,在过去由于受到CPLD密度的限制,他们只好转向FPGA和ASIC。现在,设计人员可以体会到密度高达数十万门的CPLD所带来的好处。

CPLD结构是在一个逻辑路径上采用1至16个乘积项,因而大型复杂设计的运行速度可以预测。因此,原有设计的运行可以预测,也很可靠,而且修改设计也很容易。CPLD在本质上很灵活、时序简单、路由性能极好,用户可以改变他们的设计同时保持引脚输出不变。与FPGA相比,CPLD的I/O更多,尺寸更小。

如今,通信系统使用很多标准,必须根据客户的需要配置设备以支持不同的标准。CPLD可让设备做出相应的调整以支持多种协议,并随著标准和协议的演变而改变功能。这为系统设计人员带来很大的方便,因为在标准尚未完全成熟之前他们就可以著手进行硬件设计,然后再修改代码以满足最终标准的要求。CPLD的速度和延迟特性比纯软件方案更好,它的NRE费用低於ASIC,更灵活,产品也可以更快入市。CPLD可编程方案的优点如下:
●逻辑和存储器资源丰富(Cypress Delta39K200的RAM超过480Kb)
●带冗余路由资源的灵活时序模型
●改变引脚输出很灵活
●可以装在系统上后重新编程
●I/O数目多
●具有可保证性能的集成存储器控制逻辑
●提供单片CPLD和可编程PHY方案
由于有这些优点,设计建模成本低,可在设计过程的任一阶段添加设计或改变引脚输出,可以很快上市

——————————————————————————————————————-

CPLD的结构

CPLD是属於粗粒结构的可编程逻辑器件。它具有丰富的逻辑资源(即逻辑门与寄存器的比例高)和高度灵活的路由资源。CPLD的路由是连接在一起的,而FPGA的路由是分割开的。FPGA可能更灵活,但包括很多跳线,因此速度较CPLD慢。

CPLD以群阵列(array of clusters)的形式排列,由水平和垂直路由通道连接起来。这些路由通道把信号送到器件的引脚上或者传进来,并且把CPLD内部的逻辑群连接起来。

CPLD之所以称作粗粒,是因为,与路由数量相比,逻辑群要大得到。CPLD的逻辑群比FPGA的基本单元大得多,因此FPGA是细粒的

CPLD的功能块

CPLD最基本的单元是宏单元。一个宏单元包含一个寄存器(使用多达16个乘积项作为其输入)及其它有用特性

因为每个宏单元用了16个乘积项,因此设计人员可部署大量的组合逻辑而不用增加额外的路径。这就是为何CPLD被认为是“逻辑丰富”型的。

宏单元以逻辑模块的形式排列(LB),每个逻辑模块由16个宏单元组成。宏单元执行一个AND操作,然后一个OR操作以实现组合逻辑。

每个逻辑群有8个逻辑模块,所有逻辑群都连接到同一个可编程互联矩阵。

每个群还包含两个单端口逻辑群存储器模块和一个多端口通道存储器模块。前者每模块有8,192b存储器,后者包含4,096b专用通信存储器且可配置为单端口、多端口或带专用控制逻辑的FIFO。

——————————————————————————————————————-

CPLD有什麽好处?

(1)I/O数量多

CPLD的好处之一是在给定的器件密度上可提供更多的I/O数,有时甚至高达70%。

(2)时序模型简单

CPLD优于其它可编程结构之处在于它具有简单且可预测的时序模型。这种简单的时序模型主要应归功于CPLD的粗粒度特性。

CPLD可在给定的时间内提供较宽的相等状态,而与路由无关。这一能力是设计成功的关键,不但可加速初始设计工作,而且可加快设计调试过程。

(3)粗粒CPLD结构的优点

CPLD是粗粒结构,这意味著进出器件的路径经过较少的开关,相应地延迟也小。因此,与等效的FPGA相比,CPLD可工作在更高的频率,具有更好的性能。

CPLD的另一个好处是其软件编译快,因为其易于路由的结构使得布放设计任务更加容易执行

(4)细粒FPGA结构的优点

FPGA是细粒结构,这意味著每个单元间存在细粒延迟。如果将少量的逻辑紧密排列在一起,FPGA的速度相当快。然而,随著设计密度的增加,信号不得不通过许多开关,路由延迟也快速增加,从而削弱了整体性能。CPLD的粗粒结构却能很好地适应这一设计布局的改变。

(5)灵活的输出引脚

CPLD的粗粒结构和时序特性可预测,因此设计人员在设计流程的后期仍可以改变输出引脚,而时序仍保持不变

(6)为什么CPLD和FPGA需要不同的逻辑设计技巧?

FPGA是细粒器件,其基本单元和路由结构都比CPLD的小。FPGA是“寄存器丰富”型的(即其寄存器与逻辑门的比例高),而CPLD正好相反,它是“逻辑丰富”型的。

很多设计人员偏爱CPLD是因为它简单易用和高速的优点。CPLD更适合逻辑密集型应用,如状态机和地址解码器逻辑等。而FPGA则更适用于CPU和DSP等寄存器密集型设计。

新的CPLD封装

CPLD有多种密度和封装类型,包括单芯片自引导方案。自引导方案在单个封装内集成了FLASH存储器和CPLD,无须外部引导单元,从而可降低设计复杂性并节省板空间。在给定的封装尺寸内,有更高的器件密度共享引脚输出。这就为设计人员提供了“放大”设计的便利,而无须更改板上的引脚输出。

CPLD的功耗

与同样密度的FPGA相比,CPLD的待机功耗更低。

CPLD FPGA(待机电流(在Vcc为1.8V时)
50K300μA200mA
100K600μA200mA
200K1.25mA300mA

——————————————————————————————————————-
CPLD特别适合那些要求低功耗和低温度的电池供电应用,像手持设备。

许多设计人员都熟悉传统的PLD,并喜欢这种结构所固有的灵活性和易用性。CPLD为ASIC和FPGA设计人员提供了一种很好的替代方案,可让他们以更简单、方便易用的结构实现其设计。CPLD现已达到数十万门的密度,并可提供当今通信设计所需的高性能。大于50万门的设计仍需ASIC和FPGA,但对于小型设计,CPLD不失为一个高性价比的替代方案。

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

转载于:https://www.cnblogs.com/PhiloSky/p/3369177.html

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

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

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

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

(0)


相关推荐

  • Luajit 概述「建议收藏」

    Luajit 概述「建议收藏」一、JIT即时编译器JIT:即时编译器。将频繁执行的代码,通过JIT编译器编译成机器码缓存起来,下次再调用时直接执行机器码。相比与原生Lua的逐条执行虚拟机指令效率更高。对于那些只执行一次的代码,则保持于原生Lua一样,逐条执行。JIT带来的效率提升,并不一定能抵消编译效率的下降。当虚拟机执行指令时并不会立刻用JIT进行编译。只有部分指令需要JIT进行编译,JIT将决定那些代码将被编译。延迟编译有…

  • 常用几种数据库对比

    常用几种数据库对比

  • java有序map[通俗易懂]

    java有序map[通俗易懂]我们知道TreeMap的key是有顺序的,是自然顺序,也可以指定比较函数。但TreeMap默认不是按插入的顺序。为了让Map按照插入顺序显示,可以使用LinkedHashMap吧。它内部有一个链表,保持插入的顺序。迭代的时候,也是按照插入顺序迭代,而且迭代比HashMap快。转载于:https://www.cnblogs.com/lixiaoran/p/6780898.html…

  • Linux服务器如何做raid1,Linux下制作raid1

    Linux服务器如何做raid1,Linux下制作raid1制作raid1raid1是Linux服务器最常用的一种硬盘冗余备份的方案,它能在硬盘损坏的情况下保证硬盘数据内的安全。需要至少两块硬盘,最好是完全相同的两块硬盘,所创建的若磁盘中有谁损坏,则备用盘自动替补上去。一、搭建Linuxraid1环境1.准备好要制作raid1的硬盘,至少两块,最好是两块同型号同容量的硬盘。2.用fdisk工具对硬盘进行分区(用sda做示例…

  • 【Pycharm】Pycharm专业版 社区版 教育版区别「建议收藏」

    【Pycharm】Pycharm专业版 社区版 教育版区别「建议收藏」因为刚接触python,对pythonIDE不够了解,通过各方面的查找对比最终还是选择了pycharm,对于新手来说社区版的功能足够满足需求。还可以使用sublimetext编译器(好像是收费的)进行代码编译,还有很多我这边就不一一列举了。附上PyCharm官网链接pycharm下载这篇博客来记录介绍一下pycharm各个版本的区别pycharm是一专注于python的集成开发环境,…

  • biztalk什么意思_aide教程网

    biztalk什么意思_aide教程网BizTalk开发系列(二十六) 使用Web Service

发表回复

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

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