FPGA与CPLD的概念及其区别[通俗易懂]

FPGA与CPLD的概念及其区别[通俗易懂]一、FPGA与CPLD的基本概念1.CPLDCPLD主要是由可编程逻辑宏单元(LMC,LogicMacroCell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。到90年代,CPLD发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性…

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

一、FPGA与CPLD的基本概念

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

尽管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所带来的好处。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136109.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tess4j正确的使用 OCR

    tess4j正确的使用 OCR在官网上下载下来的tess4j的zip,初见时看的云里雾里的,原以为是个jar,直接引用就好了,结果竟是个zip。网上查一下用法,各种说法,各种菜,全是误导,自己不懂就敢瞎说…实际上使用时需要注意一下几点:一、引jar包打开压缩包,在dist下边有tess4j的jar,这个jar包在lib下也可以找到,这是关键jar。此外还需要其他好多依赖jar包,这些都可以在lib下找到。l

    2022年5月25日
    105
  • 常见的测试用例设计方法有哪些呢?「建议收藏」

    常见的测试用例设计方法有哪些呢?「建议收藏」知乎问题:常见的测试用例设计方法有哪些呢?有什么比较好的基础理论书籍推荐吗? [我的回答]2018年8月25日测试用例设计技术和方法,其目的是为了解决测试分析与设计过程中碰到的问题,纯粹的理论只是应用技术和方法的基础,但不是目的。测试用例分析与设计过程,需要我们不断的应用结构化思维、发散性思维和可视化思维,以构建系统化的测试分析与设计框架。 我将2011年写的《软件测试设计…

    2022年6月23日
    26
  • LARGE_INTEGER解析

    LARGE_INTEGER解析 驱动开发中,我们除了可以使用LONGLONG这个表示64位结构的数据外。还可以使用一个叫做LARGE_INTEGER的数据结构来表示64位数据。它的定义如下[cpp] viewplain copytypedef union _LARGE_INTEGER {      struct {          ULONG LowPart;          LONG HighPart;      }…

    2022年7月25日
    8
  • prepareStatement语句

    prepareStatement语句JDBC中的——PreparedStatement预编译原理prepareStatement语句有三大好处:Statement.executeUpdate(“INSERTINTOtb1_students(name,age,sex,address)VALUES(‘”+var1+”‘,'”+var2+”‘,”+var3+”,'”+var4+”‘)”);​prepareStatement=connection.prepareStatement(“INSERTINTOtb1_stud

    2022年6月5日
    43
  • java吧_死磕好不好

    java吧_死磕好不好死磕Java——CAS

    2022年4月22日
    49
  • Cobbler实现CentOS自动安装

    Cobbler实现CentOS自动安装

    2021年9月15日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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