复杂可编程逻辑器件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. java中的3大特性之多态

    一.多态:一个对象具有多种表现形态(父类的引用类型变量指向了子类的对象) 二.多态的满足条件:1.必须要有继承关系2.必须要有方法的重写 三.int[]a; //a引用类型变量-->//引用in ...

  2. 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)

    1.Comparable接口 这个接口顾名思义就是用于排序的,如果要对某些对象进行排序,那么该对象所在的类必须实现 Comparabld接口.Comparable接口只有一个方法CompareTo() ...

  3. Saga alternatives – routing slips

    In the last few posts on sagas, we looked at a variety of patterns of modeling long-running business ...

  4. USB High Speed Inter-Chip (HSIC) IP: What is it? And why should I use it?

    来源: https://www.synopsys.com/dw/dwtb.php?a=hsic_usb2_device What is HSIC? HSIC (High-Speed Inter-Chi ...

  5. linux tail 命令详解!Linux 文件内容查看工具介绍

    转:http://blog.csdn.net/carzyer/article/details/4759593 1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文 ...

  6. 阿里p6面试

    电话面试: 第一次面试关注的问题,1)java基础: jvm 内存回收,垃圾回收基本原理,Java并发包的线程池,Java8的新特性.nio 堆排序.conrenthashmap , concurre ...

  7. SpringMVC——redirect重定向跳转传值

    原文:https://my.oschina.net/u/2273085/blog/398374 spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url ...

  8. 【spring data jpa】 spring data jpa 中 时间格式设置between and 查询

    实例代码: //举报时间 Date createDate = entity.getCreateDate(); if (createDate != null){ predicates.add(cb.be ...

  9. linux 逻辑卷管理 调整分区大小

    测试机各种报错,创建个目录都报错,df看了一下,发现VolGroup-lv_root 100%,虚拟磁盘满了,怎么办呢 1,解决过程 # df -h //查看分区 # umount /home //取 ...

  10. RenderMonkey 练习 第一天 【opengl 纹理】

    础实例: 我们首先实现一个带纹理模型的显示,大体了解RenderMonkey的操作方式. 1. 打开RenderMonkey, 右击WorkSpace的Effect WorkSpace结点,选择Add ...