- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 CPLD基础 不论是简单还是复杂的数字电路系统,一般都由基本门构成,如与门、或门、非门、传输门等。基本门构成的电路有两类:组合电路和时序电路。组合电路都可以采用与或门二级电路来实现,而时序电路则可以在组合电路基础上加上存储元件(如锁存器、触发器、RAM等)。基于这一基本的原理形成了可编程逻辑器件(PLD),PLD是目前集成电路中发展最快的器件之一,其应用设计不需要半导体厂家的参与,一般设计者可自行设计并应用。新买的PLD器件就犹如一张空光盘,不能直接使用,供设计者设计形成复杂的数字逻辑关系。PLD器件一般也分为两类:一类是组合逻辑功能强大的CPLD,另一类是寄存器功能较强并包含RAM的FPGA。 本章主要研究CPLD,从结构、原理到开发软件分类分别作阐述,针对CPLD的编程器制作设计做了重点介绍。 5.1 CPLD 概念 CPLD (Complex Programmable Logic Device)直译的话称为复杂可编程逻辑芯片。它也属于大规模集成电路LSI (Large Scale Integrated Circuit)里的专用集成电路ASIC (Application Specific Integrated Circuit)。适合控制密集型数字型数字系统设计,其时延控制方便。 FPGA (Field Progarmmable Gate Array)称为现场可编程门阵列,其典型产品有Xilinx公司的XC系列器件,其逻辑功能块较小,适合数据密集型系统的设计,时延设计相对复杂。 二者从严格的定义上没有太大区分,只不过是组成分类的基准不同。 二者比较详细的区别见表5.1 CPLD和FPGA两者使用很相似。在很多一般的应用CPLD已足以满足要求,在此以CPLD为主介绍它的功能及设计法。对于CPLD和FPGA的生产厂家主要有两家。它是Xilinx公司和 Altera公司。本章主要以Xilinx 公司的CPLD XC9500系列和Altera公司的MAX7000系列为例说明它们的特征和使用,同时对开发语言VHDL作说明。无论哪家公司的CPLD,均可用VHDL来设计。 5.1.1 CPLD基本结构 复杂的可编程逻辑器件CPLD规模大,结构复杂,属于大规模集成电路范围。 CPLD有五个主要部分:逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和I/O控制块。 1.逻辑阵列块(LAB) 一个逻辑阵列块由16个宏单元的阵列组成,多个LAB通过可编程阵列(PIA)和全局总线连接在一起。如图5.1全局总线从所有的专用输入、I/O引脚和宏单元馈入信号。对于每个LAB有下列输入信号。 来自作为通用逻辑输入的PIA的36个信号 全局控制信号,用于寄存器辅助功能 从I/O引脚到寄存器的直接输入通道 2.宏单元 MAX7000系列中的宏单元由3个功能块组成:逻辑阵列、乘积项选择矩阵和可编程寄存器。各部分可以被独自配置为时序逻辑和组合逻辑工作方式。其中逻辑阵列实现组合逻辑,可以为每个宏单元提供5个乘积项。乘积项选择矩阵分配这些乘积项作为到“或门”和“异或门”的主要逻辑输入,以实现组合逻辑函数,或者把这些乘积项作为宏单元中寄存器的辅助输入:如清零、置位、时钟和时钟使能控制。 每个宏单元中的触发器可以单独地编程为具有可编程时钟控制的D、T、JK或RS触发器的工作方式。触发器的时钟、清零输入可以通过编程选择使用专用的全局清零和全局时钟,或使用内部逻辑(乘积项逻辑阵列)产生的时钟和清零。触发器也支持异步清零和异步置位功能,乘积项选择矩阵分配乘积项来控制这些操作。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O引脚,以实现组合逻辑工作方式。 3.扩展乘积项 每个宏单元的一个乘积项可以反相回送到逻辑阵列。这个“可共享”的乘积项能够连到同一个LAB中的任何其它乘积项上。尽管大多数逻辑函数能够用每个宏单元中的5个乘积项实现,但在某些复杂的逻辑函数中需要附加乘积项。为提供所需的逻辑资源,可以利用另一个宏单元,MAX70000结构也允许利用共享和并联扩展乘积项,这两种扩展项可作为附加的乘积项直接送到本LAB的任意宏单元中。利用扩展项可保证在实现逻辑综合时,用尽可能少的逻辑资源实现尽可能快的工作速度。 1)共享扩展项 每个LAB有多达16个共享扩展项。共享扩展项就是由每个宏单元提供一个未投入使用的乘积项,并将它们反相后反馈到逻辑阵列,便于集中使用。每个共享扩展项可被LAB内任何(或全部)宏单元使用和共享,以实现复杂的逻辑函数。图5.3给出了共享扩展项是如何馈送到多个宏单元的。 2)并联扩展项 并联扩展项是一些宏观单元中没有使用的乘积项,并且
文档评论(0)