简介
FPGA和CPLD的一个重要区别是LAB(Logic Array Block),FPGA的LAB是基于LUT的逻辑单元,CPLD的LAB是基于乘积项和宏单元。FPGA的LAB以网格阵列排列,随器件密度线性增长。CPLD的LAB围绕中心全局互连排列,随着器件中逻辑数量的增加,呈指数增长。 CPLD互连包括LAB本地可编程阵列及中心可编程互连。 FPGA器件除了包括本地互连,用于各个LAB,但是和LAB逻辑分开,器件还包括行列互连,这些互连跨过阵列中的多个LAB,以及整个芯片的长宽。

CPLD
CPLD是基于乘积项技术(Product-Term)、EPPROM或FLASH工艺;直接烧写程序掉电后程序不会消失;有擦写寿命,并且一般宏单元在512以下。比如ALTERA的MAX3000/5000/7000/9000和CLASSIC系列)。

CPLD可分为三块结构:可编程逻辑阵列LAB(Logic Array Block,由若干宏单元(LMC,Logic Maro Cell)组成),可编程内部连线(PIA)和I/O控制块(IO Control Block)

宏单元是CPLD的基本结构,由它来实现基本的逻辑功能。LMC内部主要包括与阵列、或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。

每个宏单元都与GCLK(全局时钟)、OE(输出使能)、GCLR(清零)等控制信号直接相连,并且延时相同。各宏单元之间由固定长度的金属线互连,这样保证逻辑电路的延时固定。

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

I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。

可编程内部连线的作用是在各逻辑宏单元之间以及逻辑宏单元和I/O单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自输入端的信号,并将宏单元的信号送往目的地。这种互连机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部的设计。

FPGA
FPGA是基于查找表(Look-Up-Table,LUT)技术、SRAM工艺(可迅速反复地编程);直接烧写程序掉电后程序丢失;理论上擦写100万次以上;一般使用需要外挂EEPROM,可以达到几百万门电路。比如ALTERA的APEX、FLEX、ACEX、STRATIX、CYCLONE等等系列,Xilinx的Spartan、Artix、Kintex、Virtex、UltraScale、UltraScale+等等系列。

FPGA由可编程逻辑功能块(CLB)、输入/输出模块(IOB)及可编程互连资源(PIR)等三种可编程电路和一个SRAM结构的配置存储单元组成

CLB是实现逻辑功能的基本单元,CLB主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB主要由查找表LUT构成,查找表是FPGA最根本的逻辑单元。我们设计的逻辑电路最终都是通过EDA工具把所有可能的结果计算出来然后储存在查找表里面。每次根据输入信号查找对应的结果,然后输出就可以了。也就是说FPGA的工作更像是一个RAM,根据不同的输入信号(地址)输出相应的数据。

IOB主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能,主要完成芯片上的逻辑与外部引脚的接口。

可编程互连资源(P IR)包括各种长度的连线线段和一些可编程连接开关,通过自动布线实现各种电路的连接 ,实现FPGA内部CLB之间或IOB之间以及CLB与IOB之间连接起来,构成特定功能的电路。

对比

属性 CPLD FPGA
内部结构 Product-Term 乘积项 Look-Up Table LUT
程序存储 内部EEPROM SRAM, 外部EEPROM/FLASH
资源类型 组合电路丰富 触发器丰富
使用场合 组合逻辑 时序逻辑
基本逻辑组成 LAB由宏单元构成 LAB由LE或ALM构成
建立逻辑功能 乘积项 LUT或ALUT
逻辑布局 LAB围绕中心全局互连 LAB本地和行/列/分段/整片互连
集成度
布线结构 连续式 分段式
引脚延时 时序延时是均匀的和可预测的 延时不可预测
保密性 可加密 一般不可加密
使用灵活性 通过修改具有固定内连电路的逻辑功能来编程(在逻辑块下编程) 通过改变内部连线的布线来编程(在逻辑门下编程,更灵活)

最新工艺的CPLD也是基于SRAM工艺,结构上和资源上越来越和FPGA趋同。主要差异在于:CPLD通过集成片内FLASH实现掉电不丢失数据,FPGA需要外部FLASH加载。

FPGA和CPLD的区别相关推荐

  1. FPGA与CPLD的区别

    CPLD和FPGA两者的区别 CPLD和FPGA都是我们经常会用到的器件.有的说有配置芯片的是FPGA,没有的是CPLD;有的说逻辑资源多的是FPGA,少的是CPLD;有的直接就不做区分,把他们都叫做 ...

  2. FPGA与CPLD之区别

    CPLD和FPGA两者的区别 CPLD和FPGA都是我们经常会用到的器件.有的说有配置芯片的是FPGA,没有的是CPLD;有的说逻辑资源多的是FPGA,少的是CPLD;有的直接就不做区分,把他们都叫做 ...

  3. 学习笔记——FPGA与CPLD的联系与区别

    一.概念介绍 1.FPGA: (1)概念:FPGA的内部基本结构为门阵列构成静态存储器(SRAM).该SRAM可构成函数发生器,即查找表(LUT),通过查找表可实现逻辑函数功能. (2)逻辑单元:在F ...

  4. FPGA和CPLD芯片选型介绍(一)

    两类芯片现状对比 FPGA和CPLD的区别: 1.CPLD的逻辑阵列使用可重复编程的EEPROM或Flash技术来实现(乘积项结构):而FPGA利用SRAM技术(查找表). 2.由于是EEPROM或者 ...

  5. ARM、DSP、FPGA的特点和区别

    说明ARM.DSP.FPGA的异同点 ARM(AdvancedRISCMachines) 是微处理器行业的一家知名企业,设计了大量高性能.廉价.耗能低的RISC处理器.相关技术及软件.ARM架构是面向 ...

  6. (03)FPGA与CPLD区别

    (03)FPGA与CPLD区别 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA与CPLD区别 5)结语 1.2 FPGA简介 FPGA(Field Progra ...

  7. (34)FPGA面试题FPGA和CPLD有哪些区别

    1.1 FPGA面试题FPGA和CPLD有哪些区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题FPGA和CPLD有哪些区别: 5)结束语. 1.1.2 ...

  8. FPGA与CPLD的概念及其区别

    一.FPGA与CPLD的基本概念  1.CPLD  CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的 ...

  9. 【嵌入式】单片机,FPGA,CPLD,PLC,DSP之间的关系与区别

    前言   最近在学PLC,联想到此前非常熟悉的单片机,以及有所耳闻的FPGA,CPLD,DSP等名词,于是就想到找到它们之间的区别.下面是找到的比较好的资料. 参考资料 PLC与工业控制计算机各有什么 ...

最新文章

  1. 2020-09-18
  2. c1 c2在c语言中,c1和c2科目一样吗
  3. STL之Map和MFC之CMap比较学习
  4. easyUI下datagrid嵌套显示
  5. 剑指Offer09. 用两个栈实现队列
  6. N1刷音乐服务器系统,NAS也要发烧-Melco N1A音乐服务器
  7. 自定义ViewGroup (2)支持滑动,并处理多指触摸可能产生的跳动问题
  8. CF1399E2 Weights Division (hard version)
  9. 自定义scrollview右侧的滑动条
  10. 边缘检测——sobel索伯算子 数学原理和应用
  11. Matplotlib库简介
  12. 项目中碰见的错误(三) 对路径的访问被拒绝
  13. 计算机桌面图标快捷键,windows7打开计算机的快捷键是什么
  14. Windows下错误码全解析
  15. Python爬虫进阶必备 | 关于MD5 Hash 的案例分析与总结
  16. JS数组的几种遍历方法
  17. 正交基与非正交基在信号表达上的区别
  18. Ruby 教程,数组学习,数组基本操作
  19. oracle中如何写函数【oracle技术】
  20. 如何选择一个合适高效率的光纤熔接机--TFN FM-82

热门文章

  1. BIGEMAP如何将高程数据转成南方CASS的DAT格式
  2. 安卓期末大作业——Android数独游戏
  3. AF BAF tuning <5>
  4. C++ 关键字 typeid, typename
  5. JAVA23种设计模式学习,源码+案例分析+类图讲解
  6. CentOS7.2(单网卡iptables)做DNAT访问弹性IP地址端口转发到后端无公网IP的服务器不同端口
  7. 程序员找工作经历,一个人在上海工作的艰辛
  8. 深入分析: Vista后Windows 微软需要思考什么
  9. 学习笔记-Burp Suite
  10. nagios通过python获取ESXi硬盘SMART信息