精华内容
下载资源
问答
  • cpld和fpga区别

    千次阅读 2018-09-21 17:57:42
    2、cpld擦写次数非常有限(100-1000),而fpga读写次数可以理解为无限次。 3、cpld容量较小,fpga容量很大。 4、一般调试阶段用fpga,实际产品用cpld。 5、cpld保密性好,速度快。 https://wenku.baidu.com/...

    1、cpld执行一次下载编程后,逻辑阵列就被保存下来;

    fpga断电后逻辑功能不能保存,需要一块配置芯片在上电后对其重新配置。

    2、cpld擦写次数非常有限(100-1000),而fpga读写次数可以理解为无限次。

    3、cpld容量较小,fpga容量很大。

    4、一般调试阶段用fpga,实际产品用cpld。

    5、cpld保密性好,速度快。

    https://wenku.baidu.com/view/742e1a1da300a6c30c229f42.html

     

    展开全文
  • CPLD_FPGA:该文件夹包含所有CPLD和FPGA代码
  • CPLD和FPGA区别

    2021-07-07 14:29:09
    下面我们整理一下CPLD和FPGA的主要区别: 1) CPLD的逻辑阵列更适合可重复编程的EEPROM或Flash技术来实现。而FPGA显然是利用SRAM技术更合适。 2) 由于是EEPROM或者Flash工艺决定了CPLD是有一定的擦写次数限制的。...

    下面我们整理一下CPLD和FPGA的主要区别:

    1) CPLD的逻辑阵列更适合可重复编程的EEPROM或Flash技术来实现。而FPGA显然是利用SRAM技术更合适。

    2) 由于是EEPROM或者Flash工艺决定了CPLD是有一定的擦写次数限制的。而FPGA在实际使用中几乎可以说是无配置次数限制。

    3) CPLD由于采用的是EEPROM或者Flash工艺所以配置掉电后不丢失,也就不需要外挂配置芯片。而FPGA采用的是SRAM工艺,配置在掉电后就没有了,因此需要一个外部配置芯片。

    4) CPLD的安全性更高。由于配置芯片的存在,FPGA的保密性就会比CPLD略差。逻辑数据有可能被读取。(当然FPGA芯片会有一定的加密措施)

    5) CPLD由于不需要上电重新配置,所以上电后可以马上工作。而FPGA上电后需要配置时间,逻辑量的大小配置方式的区别也会影响配置时间的长短。

    6) 由于CPLD的连续式布线结构,决定了它的时序延时是均匀和固定的。而FPGA采用的分段式布线结构造成了延时不固定。

    7) 由于工艺难度的差异,CPLD一般集成度较低,大多为几千门或几万门的芯片规模,做到几十万门已经很困难。而FPGA基于SRAM工艺,集成度更高,可以轻松做到几十万门甚至几百万门的芯片规模,最新的FPGA产品已经接近千万门的规模。

    8) 同样由于结构的差异,CPLD更适合完成的是复杂的组合逻辑,如编、译码的工作。而FPGA更适合做复杂的时序逻辑。换句话说就是FPGA更适合触发器丰富的逻辑结构,CPLD适合于触发器有限但是乘积项丰富的逻辑结构。

    9) 也是由于工艺的原因,一般CPLD会比FPGA的功耗高。

    展开全文
  • 第2章 CPLD和FPGA

    2010-05-15 16:11:58
    CPLD和FPGA介绍 CPLD和FPGA介绍
  • CPLD和FPGA与ASIC设计实践教程
  • cpld和FPGA开发板原理图,希望对各位有用
  • 可编程逻辑器件CPLD和FPGA的特点应用.pdf
  • CPLDFPGA区别

    2013-02-15 12:23:15
    该文档主要对CPLD和FPGA的异同点进行了归纳总结,方便想要学习逻辑的朋友。
  • cpldfpga区别

    2012-05-08 09:16:07
    cpldfpga的基础知识:包括它们的作用及区别
  • 手把手教你学CPLD_FPGA设计(十五) CPLD(FPGA)的设计应用.pdf
  • Xilinx_CPLD_FPGA资料收集 Xilinx_CPLD_FPGA资料收集
  • 市面上尤其是学校里面可以看到Xilinx公司或者Altera公司各种不同的开发板,其实只有两个大类,CPLD开发板和FPGA开发板。尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的...
  • 介绍了CPLD 和FPGA 的编程配置方式,并结合具体的器件给出了若干实例。
  • CPLD和FPGA的实验指导 对于初学者体会cpld以及veilog语言很有帮助
  • 可编程逻辑器件主要包括FPGA和CPLDFPGA是Field Programmable Gate Array缩写,CPLD是Complex Programmable Logic Device的缩写。
  • FPGA/CPLD能做什么呢?FPGA/CPLD有什么区别呢?文章为大家介绍了这些问题。
  • CPLD和FPGA区别(2)

    2011-10-05 20:12:09
    可编程逻辑器件主要包括FPGA和CPLDFPGA是Field Programmable Gate Array缩写,CPLD是Complex Promrammable Logic Device的缩写。  从可编程逻辑器件的发展历史上来讲,CPLD一般是指采用乘积相结构的基
        可编程逻辑器件主要包括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更适合完成各种算法和组合逻辑,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大,且集成度越高越明显。

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

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

     

        如今,通信系统使用很多标准,必须根据客户的需要配置设备以支持不同的标准。CPLD可让设备做出相应的调整以支持多种协议,并随著标准和协议的演变而改变功能。这为系统设计人员带来很大的方便,因为在标准尚未完全成熟之前他们就可以著手进行硬件设计,然后再修改代码以满足最终标准的要求。CPLD的速度和延迟特性比纯软件方案更好,它的NRE费用低於ASIC,更灵活,产品也可以更快入市。CPLD可编程方案的优点如下:

        ●逻辑和存储器资源丰富(Cypress Delta39K200的RAM超过480 Kb)

        ●带冗余路由资源的灵活时序模型|

        ●改变引脚输出很灵活

        ●可以装在系统上后重新编程

        ●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有什麽好处?

        I/O数量多 ?

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

        时序模型简单

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

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

        粗粒CPLD结构的优点

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

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

        细粒FPGA结构的优点

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

     

        灵活的输出引脚

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

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

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

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

        新的CPLD封装

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

        CPLD的功耗6

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

        CPLD FPGA (待機電流(在Vcc 為1.8V時))

        50K 300μA 200mA

        100K 600μA 200mA

        200K 1.25mA 300mA

        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引脚。

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

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

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

        目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。    FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。

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

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

    展开全文
  • 为了加快开发进度,更为重要的是提高设计的灵活性精确度,引入现代EDA(电子设计自动化)技术,采用VHDL硬件描述语言进行控制逻辑编程,配置于大规模可编程器件CPLDFPGA芯片上,对主电路的工作状态进行控制,以...
  • CPLDFPGA基础

    2012-08-01 22:14:22
    CPLDFPGA基础!
  • CPLDFPGA区别

    2015-12-17 14:15:15
    今天想大家分享一下关于CPLD/FPGA的概念异同点,对这个问题我看过了一些比较好的帖子,所以大家共勉。 文章转自:http://lucjn.blog.163.com/blog/static/925911520091121104935983/ FPGACPLD的概念及其...

    今天想和大家分享一下关于CPLD/FPGA的概念和异同点,对这个问题我看过了一些比较好的帖子,所以和大家共勉。

    文章转自:http://lucjn.blog.163.com/blog/static/925911520091121104935983/

    FPGA与CPLD的概念及其区别

    一、FPGA与CPLD的基本概念 

    1.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区别

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

    展开全文
  • cpld fpga 区别

    千次阅读 2013-11-01 17:50:48
    cpld fpga 区别 系统的比较,与大家共享: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种算法组合逻辑,FP ...
  • cpldfpga

    2009-05-05 18:29:18
    适合初学者掌握VHDLverlog语言,了解CPLDFPGA,从而对数字电路了解更加深刻。
  • 关于ASIC、CPLD和FPGA介绍

    千次阅读 2017-06-28 22:12:02
    关于ASIC、CPLD和FPGA介绍 ASIC(Application Specific Intergrated Circuits)即专用集成电路,是指应特定用户要求特定电子系统的需要而设计、制造的集成电路。目前用CPLD(复杂可编程逻辑器件)和FPGA(现场...
  • CPLD和FPGA都支持边界扫描(JTAG)模式,JTAG端口用于边界扫描测试、器件配置、应用诊断等,符合IEEE 1532/IEEE 1149,1规范。每个CPLD/FPGA器件都有专用的JTAG端口,JTAG端口有4个引脚,具体描述见表1。  通过...
  • 原文:... 本文重点从CPLD的结构来讲的,从而说明其与FPGA区别 -------------------------------------------------------------------------------------------------------...
  • FPGA/CPLD能做什么呢?可以毫不夸张的讲,FPGA/CPLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA/CPLD来实现。FPGA/CPLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,
  • 市面上尤其是学校里面可以看到Xilinx公司或者Altera公司各种不同的开发板,其实只有两个大类,CPLD开发板和FPGA开发板。尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,293
精华内容 2,917
关键字:

cpld和fpga的区别