一、概念介绍

1、FPGA:
(1)概念:FPGA的内部基本结构为门阵列构成静态存储器(SRAM)。该SRAM可构成函数发生器,即查找表(LUT),通过查找表可实现逻辑函数功能。
(2)逻辑单元:在FPGA器件内部,用于完成用户逻辑的最小单元。

  • 逻辑单元主要由两部分组成:查找表(LUT)、可编程寄存器。
  • 查找表用于完成用户需要的逻辑功能,一般为4输入1输出的组合逻辑。
  • 可编程寄存器可以配置成D触发器、T触发器、JK触发器、SR触发器,每个寄存器包含四个输入信号:时钟输入、时钟使能、复位输入、数据输入。


(3)工作原理:当我们设计好一个逻辑电路图之后,FPGA首先会把这个逻辑电路图的所有可能出现的结果都写如RAM当中。这样就形成了一个表。然后每输入一个信号进行逻辑运算就等于输入一个地址进行查表(和表里的事先存入的结果进行对比)找到地址的对应内容之后直接输出即可。
2、CPLD:
(1)概念:CPLD是复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,是基于乘积项的可编程器件。
(2)基本结构:CPLD的内部的基本结构是“与或阵列”,任何一个组合逻辑都可以用“与—或”表达式来描述,所以该“与—或阵列”结构有利于实现大量的组合逻辑功能。
(3)工作原理:CPLD的逻辑框图如下图所示。首先输入信号通过输入电路然后经过与阵列,因为CPLD是基于乘积项的,所以在与阵列和或阵列之间有一个乘积项,然后通过输出电路输出或者是反馈到输入电路。这是CPLD的整个过程。

  • 此种CPLD的结构主要包括宏单元,可编程的连线(PIA)和I/O控制模块,基本逻辑功能就是由宏单元来实现的。PIA可编程的连线则起到复杂信号传递,连接所有宏单元的作用,I/O控制块负责输入输出的电气特性控制。
  • INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2是全局时钟,清零和输出使能信号,这些信号有专用连线与CPLD中每个宏单元相连。

二、FPGA与CPLD的联系

  • FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。CPLD和FPGA都能实现逻辑运算。
    - 补充概念
    PAL:PAL是可编程阵列逻辑器件、数字集成电路半成品,芯片上按照一定的排列方式集成了大量的门和触发器等基本逻辑元件,使用者按照设计要求运用开发工具将这些片内的元件连接起来,此过程称为编程。
    GAL:通用阵列逻辑,英文全称:generic array logic。 GAL器件是从PAL发现过来的,其采用了EECMOS工艺使得该器件的编程非常方便,另外由于其输出采用了逻辑宏单元结构使得电路的逻辑设计更加灵活。

三、FPGA与CPLD的区别

1、诞生时间:FPGA晚于CPLD
2、适合的领域不同
FPGA:更适合做运算
CPLD:更适合做控制(内部结构决定)
3、逻辑结构不同:
FPGA:类似于门阵列,拥有较多的触发器和储存器资源,可以说FPGA就是由
CPLD:CPLD用与或阵列实现的,相当于一大块可编程的与或阵列
4、系统结构:
FPGA:有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。
CPLD:是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器组成。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。
5、内部模块不同:
FPGA:其内含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。
6、速度不同
FPGA:速度快
CPLD:速度慢
7、集成度不同
FPGA:集成度高
CPLD:集成度低

参考链接

https://blog.csdn.net/maxwell2ic/article/details/81067430

学习笔记——FPGA与CPLD的联系与区别相关推荐

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

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

  2. [学习笔记-FPGA]Vivado出现信号差分问题

    个人笔记. 用Vivado写串口时出现了[DRC IOSTDTYPE-1] IOStandard Type: I/O port sys_clk is Single-Ended but has an I ...

  3. 【学习笔记-FPGA】verilog语言中assign的使用

    个人笔记. assign在verilog语言中一般用于连接两个变量,将一个变量的值不断赋值给另一个变量,比如在顶层模块中调用另一模块的变量. 例: ///二级模块 module compile( in ...

  4. java c s 与b s架构结合使用_Java技术学习笔记:C/S 与B/S 区别

    C/S 是Client/Server 的缩写,是客户机与服务器结构的应用程序,服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Informix 或SQL ...

  5. Java技术学习笔记:C/S 与B/S 区别

    C/S 是Client/Server 的缩写,是客户机与服务器结构的应用程序,服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Informix 或SQL ...

  6. protocol学习笔记001---RPC和HTTP协议之间的区别_与各自优势

    很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...

  7. 学习笔记53—Wilcoxon检验和Mann-whitney检验的区别

    Wilcoxon signed-rank test应用于两个related samples Mann–Whitney U test也叫Wilcoxon rank-sum test,应用于两个indep ...

  8. Angular Universal 学习笔记 - 客户端渲染和服务器端渲染的区别

    https://github.com/angular/universal Universal 的命名由来: We believe that using the word "universal ...

  9. php正规则表达式学习笔记(几个常用函数的区别)

    preg_mache()函数和 preg_mache_all()函数的区别: preg_mache()只会匹配规则中的字符一次, preg_mache_all()会匹配符合条件的所有字符! 例子对比: ...

最新文章

  1. ubuntu14.04如何在线安装eclipse以及C/C++开发组件,搭建软件开发平台
  2. pycharm一键调整代码格式(快捷键)
  3. 向阿里学数字化转型,驱动业绩新增长
  4. docker本地私有仓库搭建
  5. “中国风”拯救国货彩妆?
  6. 视频PPT互动问答丨数据驱动的业务实践专题
  7. CodeForces 489A SwapSort (选择排序法)
  8. (转)马云又在押宝智能投顾!
  9. 速达服务器应用程序错误,速达软件错误集锦及解决方法
  10. 这些问题你是否也有中招?TMT行业质量报告新鲜出炉
  11. 【IdeaVR2019快捷操作(三)】-基础功能小组协作使用介绍
  12. 线性分式变换(linear fractional transformation)
  13. JavaSE学习笔记_20:Java网络编程
  14. MySQL 进阶 触发器 -- 触发器介绍、触发器语法、触发器案例
  15. 『tensorflow笔记』图变量tf.Variable的用法解析
  16. python ABCD 选项蒙题游戏
  17. 《数字图像处理(第三版)》 第二章 数字图像基础 笔记3(图像取样和量化)
  18. 前端代码 录音样式 类似微信发送语音
  19. 剖析云计算技术及架构(1)
  20. 拼多多风波不断,上市是危机还是契机?_创成汇

热门文章

  1. bzoj3698 XWW的难题
  2. 联通短消息服务器域名,中国联通域名服务器地址
  3. 火狐浏览器怎么看html码,利用火狐浏览器查看网站加载速度
  4. win7/win10 + VS2015 + cocos2dx-3.13的win32环境配置 与 项目编译时间优化和项目精简
  5. #02数据结构练习二
  6. C语言画伯德图程序,已知系统的传递函数,试绘制系统的伯德图。 (1) (2)
  7. 想剑网三妹子最多服务器,女生入坑《剑网3》,首选门派是蓬莱,但千万不要碰五毒...
  8. 研发效能度量实践者指南(万字长文)
  9. linux静音,如何在Ubuntu终端中静音/禁用硬件提示音
  10. 杭电1052-Tian Ji -- The Horse Racing 贪心算法(有思路和注释)