复杂可编程逻辑器件(Complex Programmable Logic Device, CPLD),CPLD适合用来实现各种运算和组合逻辑(combinational logic)。一颗CPLD内等于包含了数颗的PAL(可编程阵列逻辑),各PAL(逻辑区块)间的互接连线也可以进行程序性的规划。

1984 年Altera 公司发明世界上第一款可编程逻辑器件。FPGA是1985 Xilinx公司发明的。Lattice公司发明的系统可编程(In System Program,ISP)技术极大地扩展了CPLD的应运范围。

从结构工艺讲,CPLD多为乘积项结构,具体实现上就是所谓的宏单元(Micro-cell),包含EEPROM、Flash和反熔丝等不同工艺。FPGA多为查找表(LUT)加寄存器结构,实现工艺多为SRAM,也包含Flash、Anti-Fuse等工艺。

在延时方面,CPLD的Pin to Pin 延时是固定的, FPGA的Pin to Pin 延时是不可预测的。互连结构和连线资源方面,CPLD采用集总式互连结构,相对布线资源有限,CPLD产连线式布线结构决定了它的时序延迟是均匀的和可预测的。FPGA采用分布式结构决定了其延迟的不可预测性,使时序更难规划。

目前CPLD市场主要由Altera、Xilinx、 Lattice占领。Xilinx的CoolRunner-II CPLD,Altera的MAX II,Lattice的ispMACH等都在生活中有很大的应用。

Altera的从MAX II 系列开始CPLD已经不采用传统的宏单元MC结构,而是采用查找表LUT结构,基于Flash存储器编程,系统断电时编程信息不丢失。MAX II 系列的CPLD特殊的引脚分为三类:GCLK,DEV_OE,DEV_CLRn。内部用CFM配置查找表和寄存器。除了CFM还有8192 bit的UFM,这样可以不用外接Flash。没有上电顺序要求。

对开发者而言,CPLD和FPGA区别不大,只是CPLD的资源少一些而已。总得来说,CPLD开发难度低一些,因为资源有限,不可能实现太复杂的功能。所有的资料都在官网给的技术手册中,包括Handbook,datasheet,application note等。

注:

问:Altera 的CPLD和Xilinx的CPLD的区别?

问:MAXⅡ是以LUT来做计算,请问要如何转换为传统的CPLD MICRO-CELL?

答:粗略的换算公式为:1个LE = 0.78个宏单元

参考文献:

[1] Altera CPLD的简介. http://www.hseda.com/fpga/MAX2/BANK.HTM. 2015,08,26.

[2] Complex programmable logic device. https://en.wikipedia.org/wiki/Complex_programmable_logic_device. 2015,08,26.

[3] Altera历史. https://www.altera.com.cn/about/company/technology.html. 2015,08,26.

[4] Programmable logic device. https://en.wikipedia.org/wiki/Programmable_logic_device. 2015,08,26.

[5] 百度百科. http://baike.baidu.com/link?url=Pvrhmf9R9p2NVAH3_CFe3eMCRVqcDfy3jce6wZMn0WbD1I4VOZfZpbJJSCUyglfvfQjB3znuivK2ETrNwptlgK. 2015,08,26.

CPLD的更多相关文章

  1. 关于CPLD与FPGA的对比分析

    1.PLD/FPGA/CPLD PLD(Programmable Logic Device):可编程逻辑器件,数字集成电路半成品,芯片上按照一定的排列方式集成了大量的门和触发器等基本逻辑元件,使用者按 ...

  2. Multiplexing SDIO Devices Using MAX II or CoolRunner-II CPLD

    XAPP906 Supporting Multiple SD Devices with CoolRunner-II CPLDs There has been an increasing demand ...

  3. 17.Quartus 怎么回读CPLD里面的东西

    可以使用Quartus® II Programmer的“Examine”特性回读编程目标文件(.POF)是CPLD不是FPGA 先用auto检测加没加加密位,然后执行ex,然后save,Examine ...

  4. CPLD VS FPGA

    FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的 ...

  5. FPGA/CPLD设计思想与技巧

    本文讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作.串并转换.流水线操作.数据接口同步化,都是FPGA/CPLD逻辑设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作 ...

  6. xilinx cpld XC95144XL 最小系统板

    手上有几块xilinx的CPLD芯片XC95144,闲着无聊,打样的几块板子回来玩玩. 全部引脚引出,外接4个LED灯和一个Power灯,做成了50mm*50mm的板子,省钱(O(∩_∩)O). 下面 ...

  7. CPLD的发展及趋势简介

    很多板子上,都看到过有CPLD的芯片,如我见过的一个R232电平转换小板上面就用的EPM240T控制器. 当时看到很奇怪,干啥用的,后来想想,232所需的电平不就是由EPM240T提供的嘛.想明白后就 ...

  8. CPLD和FPGA的区别(转)

    原文:http://tvb2058.spaces.eepw.com.cn/articles/article/item/15358 本文重点从CPLD的结构来讲的,从而说明其与FPGA的区别 ----- ...

  9. CPLD/FPGA厂商概述 .

    随着可编程逻辑器件应用的日益广泛,许多IC制造厂家涉足PLD/FPGA领域.目前世界上有十几家生产CPLD/FPGA的公司,最大的三家是:ALTERA,XILINX,Lattice,其中ALTERA和 ...

  10. cpld fpga 区别

    cpld fpga 区别 系统的比较,与大家共享: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和 ...

随机推荐

  1. 获取cookies的简单代码(总结待续)

    Cookie[] cookies = request.getCookies(); Cookie cookie = null; for (int i = 0; i < cookies.length ...

  2. 第一次往github上传文件步骤

    第一次往github上传文件步骤: 1> 从右上角 '+' 位置下拉菜单中,创建一个repository 2>从右上角头像位置下拉菜单 setting中设置 SSH keys 3>打 ...

  3. 「LuoguP4779」 【模板】单源最短路径(标准版)

    Description 2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 然后呢? 100→60: Ag→Cu: 最终,他 ...

  4. UI:多线程 、用GCD创建线程

    什么是应用(程序):就是我们编写的代码编译后生成的app文件 进程:凡是一个运行的程序都可以看作为一个进程,如打开的多个 word,就可以认为是一个进程的多个线程. 线程:至少有一个线程就是主线程,网 ...

  5. 各浏览器的userAgent对照表

    IE  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT6.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT5 ...

  6. UVaLive 7456 Least Crucial Node (并查集+暴力 或者 求割点)

    题意:求标号最小的最大割点.(删除该点后,指定点#sink能到达的点数减少最多). 析:由于不知道要去掉哪个结点,又因为只有100个结点,所以我们考虑用一个暴力,把所有的结点都去一次,然后用并查集去判 ...

  7. ASI框架的使用

    iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...

  8. Ubuntu18 安装jdk8

    按照网上能找到的方法,添加仓库已经不行了,具体原因如下: I look up to the webupd8 site and it seems that the ppa was discontinue ...

  9. C++ 的输出格式

    0 在C语言中很简单对输出的要求,然而在C++中有一丝的麻烦. 在下面的代码中所需要的是 #include<iostream> 基本输入/输出库 #include<iomanip&g ...

  10. 跟我一起玩Win32开发(10):绘图(C)

    今天我们来欣赏一下用于填充图形的函数,当然我不会逐个去介绍,因为我们参考MSDN直接套参数就可以了. SetDCBrushColor函数有必要扯一下,它的声明如下: COLORREF SetDCBru ...