复杂可编程逻辑器件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. 【枚举】【二分答案】【分块答案】【BFS】【最大流】【Dinic】bzoj1189 [HNOI2007]紧急疏散evacuate

    [法一]枚举Time(0~N*M): S->'.'(1); 'D'->T(Time); '.'->'D'(dis(用BFS预处理,注意一旦到达'D',BFS就不能继续扩展了,注意di ...

  2. 【知识点总结】NOIP前夕 2014.11.4

    2014.11.4 7:33 还有三天半就要NOIP,圈一下要背的知识点: 一.数论 1.素数判断 2.筛法求素数 3.求一个数的欧拉函数值 4.预处理欧拉函数 5.卡塔兰数递推式 6.快速幂(模素数 ...

  3. 5.5(java学习笔记)TreeSet和TreeMap

    1.TreeMap TreeMap是可排序的Map类,使用这个类时,TreeMap会对存放的数据进行排序. 排序是根据key来排序的,排序规则是key实现comparable接口中的compareTo ...

  4. VHDL硬件描述语言实现数字钟

    --VHDL上机的一个作业,程序太长实验报告册上写不下了.于是就在博客上留一份吧.LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOG ...

  5. Java下List<Long>转List<String>或者List<Long>转List<Integer>

    说明:很遗憾,没有快速方法,只能遍历然后循环增加进去. 方法: for(String str : list) { int i = Integer.paseInt(str); intList.add(i ...

  6. android出现段错误时的查找定位的方法

    android出现段错误时的查找方法,例如出现log: - ::): Fatal signal (SIGSEGV) at ), thread (SurfaceFlinger) - ::): *** * ...

  7. DELPHI HMAC256

    DELPHI HMAC256   unit HMAC;interfaceuses  System.SysUtils,  EncdDecd,  IdHMAC,  IdSSLOpenSSL,  IdHas ...

  8. HTTPS.SYS怎样使用HTTPS

    HTTPS.SYS怎样使用HTTPS 参考了MORMOT的官方文档:http://blog.synopse.info/post/2013/09/04/HTTPS-communication-in-mO ...

  9. HTML5:绘制图形

    canvas绘图通过属于 canvas 的 JavaScript 方法完成 针对不支持html5的IE浏览器 <!--[if IE]> <script type="text ...

  10. Oracle Service Bus Socket Adapter调整的参数

    之前在一个客户中做压力测试时候Oracle Service Bus性能大概达到900tps左右,和客户期望的1600tps有很大差距. 在研究了Socket Adapter的工作原理之后,判断可能是O ...