复杂可编程逻辑器件CPLD的基本结构

文章出处:czhlcai 发布时间: 2008/12/08 | 6911 次阅读

 

  1.基于乘积项的CPLD结构

  CPLD的结构是基于乘积项(Product-Term)的,现在以Xilinx公司的XC9500XL系列芯片为例介绍CPLD的 基本结构,如图1所示,其他型号CPLD的结构与此非常类似。

  CPLD可分为3部分:功能模块(Function Block)、快速互连矩阵(FastCONNECT Ⅱ SwitchMatrix)和I/O控制模块。每个功能模块包括可编程与阵列、乘积项分配器和18个宏单元,功能模块的结 构如图2所示。快速互连矩阵负责信号传递,连接所有的功能模块。I/O控制模块负责输人输出的电气特性 控制,比如可以设定集电极开路输出、三态输出等。图1中的I/O/GCK,I/O/GSR,1/0/GTS是全局时钟、全 局复位和全局输出使能信号,这几个信号有专用连线与CPLD中每个功能模块相连,信号到每个功能模块的 延时相同并且延时最短。


图1 基于乘积项的CPLD内部结构


图2 功能模块的结构

  宏单元是CPLD的基本结构,由它来实现基本的逻辑功能。图3所示为宏单元的基本结构。图3中左侧是乘 积项阵列,实际就是一个与或阵列,每一个交叉`点都是可编程的,如果导通就实现“与”逻辑,与后面的乘积项分配器一起完成组合逻辑。图3右侧是一个可编程的触发器,可配置为D触发器或T触发器,它的时钟、清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输出给互连矩阵或输出到I/0脚。


图3 CPLD的宏单元结构

  2.CPLD逻辑实现原理

  下面以一个简单的电路为例,具体说明CPLD是如何利用以上结构实现逻辑的,电路如图4所示。

  假设组合逻辑的输出为f,则f=(A十B)* C *(!D)=A * C*!D+B*C *!D(以!D表示D的“非”),CPLD将以图5的方式来实现组合逻辑f。

  A,B,C,D由PLD芯片的引脚输人后进入互连矩阵,在内部会产生A,A,B,B,C,C,D,D 8个输出。图5中每一个叉表示相连(可编程熔丝导通),所以得到:f=fl+12=(A* C *!D)+(B*C*!D),这样就实现了组合逻辑。图4中,D触发器的实现比较简单,直接利

             
 图4 简单逻辑电路                                                                                                               图5 CPLD的逻辑实现

  用宏单元中的可编程D触发器来实现。时钟信号CLK由I/O脚输入后进人芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。可编程触发器的输出与I/O脚相连,把结果输出到芯片引脚。这样CPLD就完成了图4所示电路的功能。以上这些步骤都是由软件自动完成的,不需要人为干预。

  图4的电路是一个很简单的例子,只需要一个宏单元就可以完成。但对于一个复杂的电路,一个宏单元是不可能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到互连矩阵,再作为另一个宏单元的输入。这样CPLD就可以实现更复杂的逻辑。

  这种基于乘积项的CPLD基本都是由E2PROM和Flashェ艺制造的,一上电就可以工作,无须其他芯片配合。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com

转载自:http://www.dzsc.com/data/html/2008-12-8/74636.html

复杂可编程逻辑器件CPLD的基本结构的更多相关文章

  1. 自己动手写处理器之第二阶段(1)——可编程逻辑器件与PLD电路设计流程

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第五篇,我尽量每周四篇         通过上一章的介绍,读者应该知道CPU内部有一些主要的电路,比方:译码电路.运算电路.控 ...

  2. FPGA学习之基本结构

    如何学习FPGA中提到第一步:学习.了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程.既然要开始学习FPGA,那么就应该从其基本结构开始.以下内容是我 ...

  3. CPLD和FPGA的区别(转)

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

  4. cpld fpga 区别

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

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

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

  6. 转载论文关于fir滤波器的fpga实现

    摘 要 本文讨论的FIR滤波器因其具有严格的线性相位特性而得到广泛的应用.在工程实践中,往往要求信号处理具有实时性和灵活性,本论文研究FIR的FPGA解决方案正体现了电子系统的微型化和单片化. 本论文 ...

  7. IC 小常识

    IC产品的命名规则: 大部分IC产品型号的开头字母,也就是通常所说的前缀都是为生产厂家的前两个或前三个字母,比如:MAXIM公司的以MAX为前缀,AD公司的以AD为前缀,ATMEL公司的以AT为前缀, ...

  8. FPGA各大厂商,不可不知

    引言: FPGA市场前景诱人,但是门槛之高在芯片行业里无出其右.全球有60多家公司先后斥资数十亿美元,前赴后继地尝试登顶FPGA高地,其中不乏英特尔.IBM.德州仪器.摩托罗拉.飞利浦.东芝.三星这样 ...

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

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

随机推荐

  1. 11、Django实战第11天:templates模板继承

    Django模板的继承,它首先定义一个整体的框架(父类),然后动态的部分(子类)只需要重写自己本身的代码就可以了. 1.在templates目录下创建base.html 2.把org-list.htm ...

  2. 洛谷 - Sdchr 的邀请赛 T1 取石子

    比赛的时候都推出来了和 质因子的指数和有关,硬是没做出来QWQ,我傻死算了 但其实这是一个结论题,因为这本来就是阶梯NIM游戏的模型.阶梯NIM游戏是指,有 n+1 阶台阶(0 ~ n),每阶上都有若 ...

  3. 使用gettext提取c#中的多语言占位符(nopCommerce示例篇)

    i18n国际化通常的作法是使用gettext,即在源码中使用特殊的关键字来标识这个字符串将可能被翻译,如 @if (Model.IsCustomerForumModerator) { <li c ...

  4. 消息队列系列(三):.Rabbitmq Trace的使用

       一.什么是Trace        Trace是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试.排错.可通过插件形式 提供可视化界面   二.Trace实现概况 ...

  5. RenderMonkey基本使用方法【转】

    RenderMonkey基本使用方法 楔子: 差不多从年中开始由于工作需要,开始研究Direct3D,这是继大二开始自学DX开始,睽违了6年后再重新学习DX.虽然时间很久了,但是幸亏还是有点基础,所以 ...

  6. IDEA Maven 下载jar

    转载地址:https://www.cnblogs.com/hongwz/p/5456578.html 本文主要介绍通过配置Maven来下载需要用的jar包. 比如我现在用到把字符串转成json对象,这 ...

  7. 键值对操作 上(Spark自学五)

    键值对RDD是Spark中许多操作所需要的常见数据类型. “分区”是用来让我们控制键值对RDD在各节点上分布情况的高级特性.使用可控的分区方式把常在一起被访问的数据放在同一个节点上,可以大大减少应用的 ...

  8. Can we say objects have attributes, states and behaviors?

    15down votefavorite 3 I was reading through Oracle's introduction to OOP concepts and I came across ...

  9. JAVA实现https单向认证

    //关于http 须要两个jar包 httpclient-4.0.jar httpcore-4.0.1.jar private static final HttpClient httpClient = ...

  10. 自己定义modal动画

    在非常多场景中.我们都须要实现各种动画.这回我们来尝试搞一下控制器间跳转的modal动画. - (void)touchesBegan:(NSSet<UITouch *> *)touches ...