EDA技术实用教程(工业和信息化普通高等教育“十二五”规划教材立项项目)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-31 07:17:15

点击下载

作者:朱娜张金保王志强李建利编著

出版社:高等教育出版分社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

EDA技术实用教程(工业和信息化普通高等教育“十二五”规划教材立项项目)

EDA技术实用教程(工业和信息化普通高等教育“十二五”规划教材立项项目)试读:

前言

EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,以计算机为工作平台,用硬件描述语言 HDL 完成设计文件,融合应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品自动设计。利用 EDA 工具,可以从概念、算法、协议等开始设计电子系统,可将电子产品从电路设计、性能分析到设计出 IC 版图或 PCB版图的整个过程在计算机上自动处理完成。EDA 技术设计的标准化语言,日益强大的逻辑设计仿真测试技术已使其成为现代电子设计技术的核心。EDA 软件工具的一个重要分支PLD,是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有CPLD和FPGA两大类型,最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。VHDL语言和硬件描述语言Verilog HDL,是ASIC设计和PLD设计的主要输入工具,在ASIC设计方面平分秋色。

EDA 技术已经渗透到各行各业,在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域都有应用。几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本概念和基本原理,掌握用HDL语言编写规范,掌握逻辑综合的理论和算法,使用 EDA 工具进行电子电路课程的实验验证并从事简单系统的设计,为今后工作打下基础。科研方面主要利用电路仿真工具(multiSIM或PSPICE)进行电路设计与仿真,利用虚拟仪器进行产品测试,将CPLD/FPGA器件实际应用到仪器设备中,从事PCB设计和ASIC设计等。产品设计与制造方面,包括计算机仿真,产品开发中的EDA工具应用,系统级模拟及测试环境的仿真,生产流水线的EDA技术应用,产品测试等各个环节。ASIC和PLD设计正向超高速、高密度、低功耗、低电压方面发展。EDA技术发展迅猛,应用广泛,已涉及各行各业。

当前工科院校相关专业开设EDA 课程,多注重实用设计,面向高校及工程技术人员,但对VHDL语言规范讲解不是很细。在实际应用中,对EDA技术的全面掌握,系统高可靠性及可移植性,要求设计人员不仅熟悉设计流程,语言规范可靠,且对不同系统设计能举一反三。这显然说明教学内容与当前实际应用需求之间存在差距,不利于实用型人才培养。本书正是为解决上述问题,同时也为相关教学改革提出新的思路而编写的。

本书主要以Altera公司Cyclone系列FPGA芯片为硬件平台,VHDL语言为输入工具,基于学校培养模式,兼顾市场需求,着重语言基础及创新性培养的同时,结合具体应用对象,采用规范化语言,清晰易懂的设计流程,达到举一反三的教学效果。本书在相关章节介绍了输入语言规范化标准和常见警告消除方法,提供诸多高质量典型例程以及练习,使读者掌握相应知识点。读者能够通过完整的实例,快速、有效地掌握规范化VHDL语言及FPGA 开发流程;通过同步实验掌握各章节的重点难点,真正对相关知识做到融会贯通。本书配有电子教案,便于教师教学和相关课程的补充与完善。

本书首先介绍ISE、Quartus Ⅱ和Actel Libero IDE三种开发环境下FPGA工程的创建和调试方法;然后详细介绍VHDL的语言基础和VHDL语言规范化标准;最后以Quartus Ⅱ开发环境为基础,重点介绍NIOS软核系统设计、IP核设计以及Quartus Ⅱ工程设计的辅助设计工具。

本书可作为高等学校电子工程、通信、工业自动化、计算机应用技术、电子对抗、仪器仪表、数字信号或图像处理等学科专业与相关的实验指导课的授课教材或主要参考书,也可供从事数字电路硬件设计的工程师阅读和参考,还可作为EDA技术短训班的教材。

本书由朱娜、张金保和王志强编著,其中,第1章到第3章由朱娜编写,第5章、第7章和第8章由张金保编写,第4章和第6章由王志强编写,全书由朱娜统稿。参与本书编写工作的还有姜雪松、王素贞、渠丰沛、刘艳梅、姜雪峰、渠莉娜、杜平、尹斯星等。本书在编写过程中参考了很多专家和学者的著作以及Xilinx公司的数据手册,在此表示深深的谢意!

由于 EDA 设计技术和可编程逻辑器件发展迅速,各种相关新技术不断涌现,同时限于编者的实际开发经验和理论水平,书中难免存在一些不足之处或者错误,恳请相关专家和读者批评指正。编者2012年5月

第1章 绪论

EDA(Electronic Design Automation)技术是现代电子产品设计技术中一门综合性的新技术,代表了电子设计技术和应用技术的发展方向。本书主要介绍面向FPGA/CPLD的EDA技术应用。本章主要对EDA技术作概括性介绍,主要内容如下:(1)EDA技术的概念及发展过程。(2)EDA技术的应用。(3)FPGA/CPLD产品的概述。(4)EDA的设计基础。

1.1 EDA技术概论

【问题引出】什么叫EDA技术?

EDA技术是指以大规模可编程逻辑器件为设计载体,由硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译,逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。

为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。EDA工具的发展,又为设计师提供了全线EDA工具,这个阶段发展起来的 EDA 工具,目的是在设计前期将设计师从事的许多高层次设计工作由设计工具来完成,如可以将用户要求转换为设计技术规范,有效地处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件、算法分解设计等。由于电子技术和 EDA 工具的发展,设计师可以在不太长的时间内使用 EDA 工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。

20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发(即片上系统集成)。因此,EDA 工具是以系统级设计为核心,包括系统行为级描述与结构综合、系统仿真与测试验证、系统划分与指标分配、系统决策与文件生成等一整套的电子系统设计自动化工具。这时的 EDA 工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。例如,提供方框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言(如VHDL、Verilog或AHDL),同时含有各种工艺的标准元件库。只有具备上述功能的EDA工具,才可能使电子系统工程师在不熟悉各种半导体工艺的情况下,完成电子系统的设计。未来的EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域。随着基于EDA的SOC(单片系统)设计技术的发展,软、硬核功能库的建立,以及基于VHDL所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。

1.1.1 EDA技术及发展

【展开讲解】EDA技术的发展历史及发展趋势。

自从进入20世纪90年代以后,EDA技术的发展和普及给电子系统设计带来了革命性的变化,传统的“固定功能模块+连线”的设计方法正在逐步退出历史舞台,而基于芯片的设计方法正在成为电子系统设计的主流。在基于芯片的设计方法中,EDA技术扮演了越来越重要的角色,逐渐成为设计人员不可或缺的重要设计手段。如今无论是逻辑芯片设计还是电子系统设计,所有的设计工作都需要在计算机上借助相应的 EDA 工具进行,否则将会很难完成相应的设计任务。

目前,可编程逻辑器件和 EDA 技术的结合为电子系统的设计带来了极大的方便,它们已经逐渐成为设计人员进行硬件设计的最强有力工具。现在设计人员只要拥有一台计算机、一套相应的 EDA 开发工具和可编程逻辑器件,基本上就可以实现电子系统的设计操作。可以毫不夸张地说,任何的电子系统设计都离不开可编程逻辑器件和 EDA 开发工具。现在,很多电子系统设计相关领域的各大公司和科研单位都采用可编程逻辑器件和 EDA 工具的结合来进行相应的设计,这样可以大大缩短系统的设计周期,以适应当今品种多、批量小的电子市场的需求,提高产品的竞争能力。

下面将对EDA设计技术的相关知识进行简单介绍。

从EDA设计技术的发展历史来看,它大致经历了3个重要阶段,即第一代EDA工具的产生和发展、第二代EDA工具的产生和发展以及第三代EDA工具的产生和发展。每一代EDA工具都具有其优缺点,后一代EDA工具都是对前一代EDA工具的不断改进和功能扩展,从而不断满足各个历史时期设计人员的开发需要。(1)第一代EDA工具

随着中小规模集成电路的开发应用,传统的手工制图设计印制电路板和集成电路的方法已经无法满足设计精度和效率的要求,因此工程师们就开始进行二维平面图形的计算机辅助设计,以摆脱复杂机械的版图设计工作。

20世纪70年代,第一代EDA工具产生了,它的典型代表是风靡一时的 TANGO软件。在当时的情况下,EDA工具供应商只有很少的几家,开发技术十分不成熟,EDA工具的功能和自动化程度较低,而且产品也几乎全部面向LSI或PCB的设计,应用领域比较单一。一般来说,第一代EDA工具也称为CAD(Computer Aided Design,计算机辅助设计)。(2)第二代EDA工具

随着科学技术的不断进步和发展,许多公司如Mentor公司、Daisy Systems公司、Logic Systems公司进入了EDA工具的市场,它们开始为设计开发人员提供电路图逻辑工具和逻辑模拟工具的EDA软件,这个时期的EDA工具以数字电路分析工具为代表,主要功能是用来解决电路设计没有完成之前的功能检验问题。

20世纪80年代,第二代EDA工具产生了,它主要以计算机仿真和自动布局布线技术为核心,同时产生了CAM(Computer Aided Manufacturing,计算机辅助制造)、CAT(Computer Aided Test,计算机辅助测试)、CAE(Computer Aided Engineering,计算机辅助工程)等新概念。第二代 EDA 工具的应用软件主要有数字电路分析、模拟电路分析、印制电路板、现场可编程门阵列的布局布线等,它们以软件工具为核心,即针对产品开发分为设计分析、生产测试等多个独立的软件包,每个软件只能完成其中的一项工作,通过顺序循环完成设计的全过程。

第二代 EDA 工具的最大缺点就是不能进行系统级的仿真和综合,如果在产品发展的后期才发现设计错误,进行修改无疑是十分困难且浪费大量的人力。另外,由于软件开发商的不统一,一个工具的输出作为另外几个工具的输入需要进行界面处理,影响了 EDA 工具的设计速度。(3)第三代EDA工具

20世纪90年代后期,各大EDA厂商开始推出以高级语言描述、系统级仿真和综合技术为核心技术的第三代EDA工具,目前设计人员使用的EDA工具都属于第三代EDA工具的范畴之内。第三代 EDA 工具以逻辑综合、硬件行为仿真、参数分析和测试为重点,提供了门类齐全和满足系统设计需要的全部开发工具。例如,描述设计意图的设计输入工具、具有逻辑综合和设计优化能力的设计工具以及验证设计和评估性能的仿真工具。

第三代 EDA 工具的主要特征是自动化程度大大提高,设计人员只需要在前期进行较少的设置便可以由计算机完成整个设计,人工干预大大减少,设计效率大大提高。第三代EDA系统主要以并行设计工程的方式和系统级目标设计方法为支持。系统设计的核心是可编程逻辑器件的设计。由于可编程逻辑器件自身的可重复编写的特性,使电子设计的灵活性和工作效率大大提高。

随着科学技术的不断发展,EDA设计技术的发展趋势主要体现在以下几个方面。(1)EDA工具的PC平台化

目前,可编程逻辑器件和 EDA 技术的结合为电子系统的设计带来了极大的方便,它们已经成为设计人员进行系统设计的主要工具。在过去相当长的一段时间内,EDA工具软件价格十分昂贵,它的操作平台是工作站和UNIX操作系统,硬件环境要求高,因此大大阻碍了EDA工具的迅速普及。

最近十年内,经过 EDA 工具厂商和科技研发人员的共同努力和推广,EDA 工具的 PC平台化进展速度十分显著,如Xilinx公司的Foundation和ISE、Altera公司的MAX+plus Ⅱ和Quartus Ⅱ都是可以在Windows或者Windows NT操作系统中运行的EDA工具。这些基于PC平台的EDA工具包含有逻辑设计、仿真、综合、优化等工具,而且价格比较便宜,目前已经得到了十分广泛的应用。

可以看出,随着PC性能的不断提高,基于PC平台的EDA工具的软件功能将会更加完善和齐全。因此,EDA工具的PC平台化是EDA工具迅速普及的重要前提,同样它也是EDA设计技术发展的必然趋势。(2)EDA设计技术朝着ESDA和CE方向发展

对于现有的各种EDA工具来说,各种EDA工具通常是用来进行某一方面的系统设计,如Protel工具主要是用来进行印制电路板的设计操作。随着科学技术的发展以及缩短电子系统设计周期的要求,设计人员往往希望各种不同功能的 EDA 工具能够在统一的数据库或者管理框架下进行工作,因此提出了ESDA和CE的概念。

ESDA(Electronic System Design Automation)即电子系统设计自动化,它强调建立从系统到电路的统一描述语言,同时考虑仿真、综合与测试,把定时、驱动能力、电磁兼容特性、机械特性、热特性等约束条件加入到设计综合中,然后进行统一的设计描述和优化操作,从而提高系统设计的一次成功率。ESDA 要求系统级设计人员改变优先考虑具体实现的传统思路,而是集中精力进行系统的总体设计、综合方案比较和优化设计。可见,这将会是一种全新的设计思路。

CE(Concurrent Engineering)即并行设计工程,它要求EDA工具从管理层次上把与系统设计有关的工具、任务、时间、工艺等进行合理安排,设计人员使用统一的集成化设计环境,各个设计小组能够共享与设计相关的数据库和其他资源,这样可以同步地进行系统的设计工作。可以看出,CE 改变了在系统设计中过分依赖专业分工和设计人员专业知识的传统设计方法。(3)EDA工具应该具有编译选择能力

对于EDA工具开发厂商来说,除了简单加快软件的编译速度外,EDA设计工具还应该能够减少编译时间,而不需要考虑其编译处理的能力如何。在一个具体的设计过程中,最耗费时间的应该是布局和布线过程,如果能够减少布局和布线过程的时间,那么将会大大提高系统设计的效率。随着技术的不断发展,设计人员希望能够实现一种编译选择的方案,即 EDA工具应该具有只对上次编译后发生变化的那部分设计进行布局和布线操作的能力,即增量编译能力。可以看出,具有增量编译能力的EDA工具将是未来EDA设计技术的一个发展方向,它将会大大提高设计效率,从而缩短产品开发周期,进而提高产品的市场竞争力。

1.1.2 EDA技术应用

【展开讲解】EDA技术的主要组成方面。

EDA技术涉及面广,内容丰富,主要应从如下3个方面掌握EDA技术:大规模可编程逻辑器件、硬件描述语言和软件开发工具。其中,大规模可编程逻辑器件是 EDA 技术的主要目标器件,硬件描述语言是EDA技术的主要描述和表达方式,软件开发工具是EDA技术的开发平台。下面分别对3部分进行概要的介绍。

1.大规模可编程逻辑器件

可编程逻辑器件(PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。主要有现场可编程门阵列(Field Programmable Gate Array,FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。FPGA和CPLD器件的应用十分广泛,它们随着EDA技术的发展而成为了电子设计领域的重要角色。

FPGA/CPLD 最明显的特点是高集成度、高速度和高可靠性,其时钟延时可小至纳秒级。其并行工作方式使得在超高速应用领域和实时测控方面有着很广阔的应用前景。如果用户设计合理,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题,而且几乎可将整个系统下载于同一芯片中,真正实现片上系统,大大缩小了体积,易于管理和屏蔽,具有很高的可靠性。

FPGA/CPLD 开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构无关,设计开发成功的各类逻辑功能模块有很好的兼容性和可移植性,几乎可用于任何型号和规模的FPGA/CPLD中,使得产品设计效率大幅度提高,可以在很短时间内完成十分复杂的系统设计。

国际上生产FPGA/CPLD的主流公司主要有Xilinx、Altera、Actel和Lattice公司。(1)Xilinx公司的FPGA器件有:Spartan FPGA系列、Virtex FPGA系列、CoolRunner、XC9500XL等。(2)Altera公司的FPGA器件有:Classic、MAX、FLEX、APEX、ACEX、APEX Ⅱ、Cyclone1/2/3/4、MAX Ⅱ、Stratix1/2/3/4/6系列等。(3)Actel是反熔丝PLD技术的领导者,它们公司的器件主要有:

低功耗Flash型:LGOO系列、ProASIC3系列;

混合信号:Fusion系列;

耐辐射器件:RTAX-S系列、RTSX-SU系列;

反熔丝器件:Axcelerator、SX-A、eX、MX系列。(4)Lattice公司的ISP—PLD器件有:ispLS1系列、MachXO系列、MACH4000系列、LatticeSC/M FPGA系列、LatticeECP3 FPGA系列。

2.硬件描述语言

硬件描述语言(HDL)是EDA技术的主要组成部分,是EDA各种描述方法中最能体现优越性的一种描述方法。所谓硬件描述语言,就是用于描述设计系统的逻辑功能,实现该功能的算法、电路结构、约束条件等。常用的硬件描述语言有VHDL、Verilog、System Verilog和System C,其中System Verilog和System C还在不断完善。VHDL作为IEEE的工业标准硬件描述语言,在电子工程领域已成为通用的硬件描述语言。Verilog支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。

3.软件开发工具

目前,在国内比较流行的EDA的软件工具有Altera公司的MAX+plusⅡ和Quartus Ⅱ、Xilinx公司的ISE、Actel公司的Libero。这3个软件的基本功能相同,主要差别在于面向的目标器件不一样。它们界面友好,使用便捷,均可以语言文本、波形、EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计;具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果;在适配之后生成供时序仿真用的 EDIF、VHDL 和 Verilog这3种不同格式的网表文件。

本书主要是以Altera公司的Quartus Ⅱ 9.0为开发平台,以可编程逻辑器件为目标器件,以VHDL为硬件描述语言的EDA技术学习。

1.2 PLD及FPGA/CPLD产品概述

【问题引出】PLD技术是怎样发展的?主要有哪几类?其各自的结构和工作原理是什么?

可编程逻辑器件(Programmable Logic Devices,PLD)是20世纪70年代发展起来的一种新的集成器件,PLD是大规模集成电路技术发展的产物,是一种半定制的集成电路,结合EDA技术可以快速、方便地构建数字系统。

本节主要介绍 PLD 技术和几类常用的大规模可编程逻辑器件的结构和工作原理,并对FPGA/CPLD器件的配置器件作进一步介绍。

在20世纪80年代以后,PLD随着集成电路技术和计算机技术的发展而迅速发展。自问世以来,PLD经历了从PROM、PLA、PAL、GAL到FPGA等高密度PLD的发展过程。在此期间,PLD的集成度、速度不断提高,功能不断增强,结构趋于更合理,使用变得更加灵活方便。PLD 的出现,打破了由中小规模通用型集成电路和大规模专用集成电路垄断的局面。与中小规模通用型集成电路相比,用PLD实现的数字系统,有集成度高、速度快、功耗小、可靠性高等优点。与大规模专用集成电路相比,用PLD实现的数字系统,有研制周期短、先期投资少、无风险、修改逻辑设计方便、小批量生产成本低等优势。可以预见,在不久的将来,PLD将在集成电路市场占统治地位。

1.2.1 PLD技术及发展

【展开讲解】PLD技术的发展历程。

最早的可编程逻辑器件出现在20世纪70年代初,主要是可编程只读存储器(PROM)和可编程逻辑阵列(PLA)。20世纪70年代末,AMD公司对PLA进行了改进,推出了可编程阵列逻辑(Programmable Array Logic,PAL)器件。20世纪80年代初期,美国Lattice公司推出了一种电可擦写的比PAL使用更灵活的器件,称为通用阵列逻辑(Generic Array Logic, GAL )。随着技术的进步,生产工艺的不断改进,器件规模不断扩大,逻辑功能不断增强,各种可编程逻辑器件逐渐产生,如PROM、EPROM、EEPROM等。现在一般把超过某一集成度的PLD器件都称为CPLD。在20世纪80年代中期,美国Xilinx公司首先提出现场可编程概念并生产出了世界上第一片现场可编程门阵列(FPGA)器件。FPGA器件采用逻辑单元阵列结构和静态随机存取存储器工艺,设汁灵活,集成度高,可无限次反复编程。进入 20世纪90年代,可编程逻辑集成电路技术进入飞速发展时期,器件的可用逻辑门数超过了百万门,并出现了内嵌复杂功能模块(如RAM、CPU核、DSP核等)的片上系统(System On a Programmable Chip,SOPC)。

1.2.2 PLD技术分类

【展开讲解】PLD技术的分类方法。

可编程逻辑器件的种类很多,几乎每个大的可编程逻辑器件供应商都能提供具有自身特点的PLD器件。由于历史原因,PLD的分类方法较多也不统一,下面简单介绍4种。

1.从结构的集成度分类

从结构的集成度上一般可将PLD分为简单PLD和复杂PLD,或分为低密度PLD和高密度PLD(HDPLD)。通常,当PLD中的等效门数超过500门时认为是高密度PLD,反之是低密度PLD。传统的PAL和GAL是典型的低密度PLD,其余如EPLD、FPGA等则称为HDPLD或CPLD。

2.从结构上分类

从结构上可将PLD分为乘积项结构器件和查找表结构器件。(1)乘积项结构器件:其基本结构为“与—或阵列”的器件,大部分简单的PLD和CPLD都属于此类器件。(2)查找表结构器件:由简单的查找表组成可编辑门,再构成阵列形式。大多数 FPGA属于此类器件。

3.从可编程特性上分类

从可编程特性上可将PLD分为一次可编程和重复可编程两类。一次可编程的典型产品是PROM、PAL 和熔丝型 FPGA,其他大多是重复可编程的。其中,用紫外线擦除的产品的编程次数一般在几十次,采用电擦除方式的产品的编程次数稍多些,采用E2CMOS 工艺的产品,擦写次数可达上千次,而采用SRAM结构,则可实现无限次编程。

4.从可编程器件的编程元件上分类

最早的PLD器件(如PAL)大多采用的是TTL工艺,但后来的PLD器件(如GAL、EPLD、FPGA)都采用MOS工艺(如NMOS、CMOS、E2CIOS等)。目前,一般有下列6种编程元件。(1)熔丝型(Fuse):编程过程就是根据设计的熔丝图文件来烧断对应的熔丝进行编程,早期的PROM采用此种编程方式。(2)反熔丝型(Anti-Fuse):在编程处通过击穿漏层使得两点之间获得导通,Actel公司的某些FPGA器件采用此种编程方式。(3)EPROM型:需要有石英窗口,紫外线擦除,可多次编程。(4)EEPROM型:电可擦写编程器件,现有的大部分CPLD和GAL器件采用此类结构。(5)SRAM型:查找表结构器件,大部分FPGA器件都是采用此种编程工艺。这种编程方式在速度和编程要求上要优于前4种,但SRAM型器件的编程信息放在RAM中,断电丢失,重新上电后需要专用器件对它进行再次配置。(6)Flash型:可以实现多次可编程,同时做到掉电后不需要重新配置。

1.2.3 PLD产品可编程原理

【展开讲解】PLD产品的种类及其各类的可编程原理。

简单PLD是早期出现的可编程逻辑器件,它们的逻辑规模都比较小,结构上是由简单的“与—或”门阵列和输入/输出单元组成,常见的PLD有PROM、PLA、PAL和GAL,下面分别进行介绍。

1.可编程只读存储器(PROM)

半导体只读存储器是一种能够存储大量二进制信息的半导体器件,它是电子计算机和其他许多电子设备中常用的一种器件。通常,半导体存储器的种类很多,一般可以分为只读存储器(Read Only Memory,ROM)和随机存储器(Random Access Memory,RAM)两大类。这里,只读存储器在正常情况下只能从中读取数据,但是不能快速地随时修改或重新写入数据;随机存储器在正常工作状态下可以随时向存储单元里写入数据或读出数据。

从具体的逻辑结构上来看,只读存储器是一种可编程逻辑器件,它的电路结构框图如图1-1所示。可以看出,只读存储器包括地址译码器、存储矩阵和输出缓冲器3个部分。可见,只读存储器的逻辑电路比较简单,利用它来实现组合逻辑函数,尤其是多输出函数是十分方便的。

在只读存储器的结构框图中,地址译码器的作用是将输入的地址代码译成相应的控制信号,从而利用这个控制信号从存储矩阵中把指定的单元选出,然后把其中的数据送到输出缓冲器上。如果地址译码器具有n条地址输入线,那么译码器将会有2n条输出线,这样的译码输出线通常也称之为字线,它连接到存储矩阵的相应存储单元。

存储矩阵是由许多存储单元构成的,而每个存储单元又是由若干位基本存储单元构成的,它们是只读存储器的核心部分。通常,基本存储单元既可以采用二极管构成,也可以采用双极型三极管和CMOS管构成,其中每个基本存储单元可以存储一位二进制信息。每一个存储单元可以存放若干位二进制信息,这样的若干位二进制信息称为一个字,其位数称为字长。由于每一个存储单元或者一组存储单元对应于一个地址代码,因此可以推算,一个具有n条地址输入线、m位字长的只读存储器的存储容量为2n×m位。图1-1 只读存储器的电路结构框图

输出缓冲器是由三态门构成的,它的作用是用来驱动只读存储器的具体数据输出,这里输出缓冲器的输出线称之为位线。每当只读存储器输入一组地址信号,如果相应的译码器输出有效,这时便选中一条字线同时把这个存储单元存放的内容读出到它的输出线上。可以看出,输出缓冲器的作用体现在两个方面:一是用来提高只读存储器的带载能力;二是实现对输出数据的三态控制,目的是便于与总线进行相应的连接操作。

通过上面的分析可以得出,只读存储器实际上是一种可编程逻辑器件,它的地址译码器在结构上来说就是一个与阵列,而存储矩阵实际上就是一个或阵列。对于n位输入的二进制译码器,它通过2n个与门产生所需的译码输出,每个输出对应于一个乘积项。

综上所述,只读存储器的与阵列是固定的,只要它的地址输入数相同,它们的与阵列都是相同的。但是每种不同的只读存储器的或阵列是不同的,它们通常是根据所存储的数据信息来决定的,或者说是根据要求的逻辑关系来决定的,或阵列正是通过编程来实现不同的逻辑关系的。因此,与阵列固定、或阵列可编程是只读存储器中逻辑阵列的特点。

在数字电路中,只读存储器又可以分为掩模只读存储器、可编程只读存储器、可擦除的可编程只读存储器等几种不同的类型。

掩模只读存储器中的数据是由生产厂商在生产时写入的,数据信息只能读出而不能进行改写。由于掩模只读存储器只能在生产厂商处进行加工,成本相对较高,因此它只适用于大量生产的已经定型的产品,这样产量越大,每片 ROM 的相对成本就越低。可编程只读存储器中的数据可以由用户根据自己的具体设计需要来进行写入,但是一旦写入以后同样不可进行重写操作。可擦除的可编程只读存储器中的数据不但可以由用户根据自己的具体设计需要来进行写入,而且还可以进行重写操作,因此它具有很大的灵活性。

在开发数字系统的过程中,设计人员常常希望能够根据自己的意愿来迅速得到存储有设计所需内容的只读存储器,这种特殊的 ROM 编程可以通过可编程只读存储器来完成。一般来说,PROM的总体电路结构与普通的ROM完全相同,它也是由地址译码器、存储矩阵和输出缓冲器3个部分构成的。不同之处在于PROM在出厂时,其存储矩阵的发射极全部采用熔丝与位线进行了连接。这样,用户在使用 PROM 时只需要设法将与位线相连的熔丝烧断,即可以完成相应数据的写入操作。

可以看出,PROM与普通ROM相比具有一定的灵活性,它可以根据设计的需要来自行写入相应的存储数据。但是,由于熔丝烧断后不能进行再次连接,所以PROM的内容一经写入以后就不可能进行再次修改了,它只能进行一次写操作。可见,这种简单的PROM不能够满足数字系统设计过程中需要重复修改只读存储器内容的需要,因此就需要一种可以进行重复写入操作的可编程只读存储器。

可擦除的可编程只读存储器(EPROM)的出现解决了上面的问题,因此它在那些需要经常修改ROM内容的场合中获得了广泛应用。早期最常使用的EPROM是采用紫外线照射来进行擦除操作的,因此这种EPROM被称作UVEPROM(Ultra Violet EPROM)。如果用户想要擦除这种EPROM中的写入数据,那么需要采用紫外线来对EPROM照射一定的时间,目的是使浮栅上的电子获得能量以使它穿过绝缘层而回到衬底。通常,UVEPROM器件上具有一个用来接收紫外线照射的石英窗口,写入完成后石英窗口将会关闭以免擦除器件中的有用信息。

另外一种应用较为广泛的可擦除的可编程只读存储器是电可擦除的可编程只读存储器(Electrically EPROM,EEPROM),它通常也可以称作E2PROM。对于这种EPROM来说,它的擦除操作不需要采用紫外线照射,而只需要在漏极和源极之间加上一定的擦除电压即可。更为灵活的是,这种EPROM可以有选择地进行逐字擦除或者逐字改写,同时进行擦除操作时不需要将器件从电路中取出。

在实际的应用过程中,设计人员或者用户常常将可编程只读存储器(PROM)和可擦除的可编程只读存储器(EPROM)统称为可编程的只读存储器,即PROM。

2.可编程逻辑阵列(PLA)

在前面的介绍中,我们知道只读存储器的输入地址和存储矩阵的信息之间存在着一一对应的关系,即给定一个地址就可以选中一个存储单元。可以看出,为了实现这一点,只读存储器的与阵列必须是一个能够产生2n个输出的地址译码器。但在实际应用的过程中,不管具体设计的逻辑函数需要使用多少个最小项,这2n个最小项都是始终存在的。从芯片资源利用的角度来看,没有使用的部分最小项所占用的芯片资源是可以节省下来的。

为了提高芯片资源的利用情况,用户往往希望与阵列不需要产生所有的最小项,它只需要产生具体设计的逻辑函数所需要的乘积项即可,PLA即可实现上面的功能。从具体的结构上来看,PLA就是把ROM中的译码器改成乘积项发生器的一种可编程逻辑器件。PLA的结构特点是与阵列可编程,或阵列也可以编程。根据 PLA 的结构特点可以判断:PLA 产生的乘积项的具体数目一般总是小于2n个;另外,PLA中的每一个乘积项是根据设计的需要来进行输入信号组合的,它不一定是全部n个输入信号的组合。

在数字电路的设计中,PLA根据使用情况可以分为两大类。(1)一类是完全按照用户的要求,设计一片专用的PLA芯片或者把PLA作为某种大规模集成电路的一部分。由于输入和输出数目已由设计要求规定,所以减少所需乘积项数目成为优化的主要目标。(2)另外一类是现场可编程逻辑阵列(Field PLA,FPLA),它的最大特点是由用户自己编程写入与或阵列的内容。与第一类PLA相比,这才是一种真正的可编程逻辑器件。目前,许多芯片制造厂商都提供FPLA芯片,这种芯片的输入数目、输出数目和乘积项数目都是确定的,使用时只要不超过这些限制就可以。

这里将重点介绍 FPLA。简单的 FPLA 是由可编程的与阵列、可编程的或阵列和输出缓冲器3部分构成的,如图1-2所示。图1-2 FPLA的基本结构

由图1-2可以看出,FPLA和PROM的结构十分相似,它们的基本结构都是由与阵列、或阵列和输出缓冲器3个部分构成的。两者的不同之处体现在以下3个方面。(1)PROM的与阵列是固定的,而FPLA的与阵列则是可编程的。(2)PROM的与阵列会把输入变量的全部最小项都译出来,而FPLA的与阵列只用来产生设计需要的乘积项,因此它的乘积项要比PROM小得多。(3)采用PROM产生组合逻辑函数时,用户一般只会用到全部最小项中的某一部分,因此它的资源利用率比较低;采用FPLA产生组合逻辑函数时,可编程的与阵列只产生设计需要的乘积项,这样FPLA的与或阵列的规模将会大大减小,资源利用率很高。

对于图1-2所示的基本结构来说,它的与阵列最多可以产生8个可编程的乘积项,或阵列最多则可以产生4个组合逻辑函数。可以看出,同等规模的PROM的与阵列将会产生16 (24)个乘积项,这样如果采用PROM代替FPLA来实现相应的组合逻辑函数,那么PROM将会浪费8个乘积项的芯片资源。

如果一个实际使用的FPLA编程后的具体电路连接如图1-2所示,那么当电路中的使能信号OE = 0时,FPLA输出的4个组合逻辑函数如下所示:

y3=ABCD+

y2=AC+BD

y1=A⊕B

y0=CD+

在FPLA的基本结构中,输出缓冲器通常也是由三态门构成的,它的作用是用来驱动现场可编程逻辑阵列的具体数据输出,如图1-2所示。在某些情况下,为了便于对FPLA数据输出的极性进行控制,一些FPLA器件会在或阵列的输出端和输出缓冲器之间添加一些可编程的异或门,如图1-3所示。

在图1-3所示的输出结构中,XOR是一个对FPLA的输出极性进行控制操作的可编程逻辑单元。用户在对上面的结构进行编程操作后,如果 XOR 的熔丝连通即 XOR=0 时,那么FPLA的输出y0、y1、y2、y3将和来自于或阵列的输出s0、s1、s2、s3同相;如果XOR的熔丝熔断即XOR=1时,那么FPLA的输出y0、y1、y2、y3将和来自于或阵列的输出s0、s1、s2、s3反相。可见,采用异或门结构可以方便地对FPLA的输出极性进行控制。图1-3 带有极性控制单元的FPLA输出结构图1-4 时序逻辑型FPLA的电路结构框图

对于前面介绍的FPLA来说,可以看出它的基本结构中没有包含相应的触发器单元,因此这种结构的FPLA只能用于设计组合逻辑电路,所以基于上面结构的FPLA称为组合逻辑型FPLA。为了能够使FPLA器件设计一些时序逻辑电路,很多厂商对FPLA器件进行了一定的改进,即在FPLA内部增加了由若干触发器组成的寄存器,这种含有内部寄存器的FPLA称为时序逻辑型FPLA。简单时序逻辑型FPLA的电路结构框图如图1-4所示。

可以看出,时序逻辑型FPLA的与阵列输入包括两个部分,它们分别是FPLA的外部输入信号和触发器输出的反馈信号;同样 FPLA 的或阵列输出也包括两个部分,它们分别是FPLA的输出信号和用于触发器的激励信号。这里,假设FPLA的外部输入为n、输出数为m、乘积项的数目为d、触发器的数目为k,那么FPLA的芯片面积可以表示为如下的公式:

S =(2n+m+3k)d(对于D触发器)

S=(2n+m+4k)d(对于JK触发器)

另外,FPLA的具体大小也可以采用FPLA的外部输入数目、与阵列的输出乘积项数目和或阵列的输出数目 3 者的乘积来表示。例如,82S100 是一个双极型、熔丝编程单元的FPLA,它的逻辑大小表示为16×48×8,这表示该FPLA具有16个外部输入端口、它的与阵列中能够产生48个乘积项以及它的或阵列具有8个输出端口,即可以产生8个相应的组合逻辑函数。

3.可编程阵列逻辑(PAL)

PAL是20世纪70年代末由MMI公司率先推出的一种新的可编程逻辑器件,它也采用双极性型工业制作和熔丝编程方式。PAL的基本结构与PLA十分类似,它通常也是由与阵列、或阵列和输出电路3个部分构成的。与PLA相比,PAL具有其自身的特点,这主要体现在以下两个方面。(1)PAL中的与阵列是可以进行编程的,而或阵列则是固定不变的。(2)PAL中的输出电路结构多种多样,可以方便地构成各种时序逻辑电路。

图1-5所示为PAL的基本电路结构,它只含有一个与阵列和一个或阵列,没有附加其他的输出电路。从图1-5中可以看出,PAL的与阵列并不是固定不变的,它是由用户编程来产生设计所需的具体乘积项;而 PAL 的或阵列则是固定不变的,不但 PAL 的每个输出所能具有的乘积项数目是固定的,而且这固定数目乘积项的位置也是确定不变的。图1-5 PAL的基本电路结构

由图1-5,可以看出这个PAL具有4个输入A、B、C、D和4个输出y0、y1、y2、y3;PAL 的与阵列通过用户编程可以产生 16 个乘积项,乘积项的具体组合由用户编程来实现;PAL的或阵列将把与阵列产生的16个乘积项直接分配给4个输出端口,同时每个输出端口只能有4个乘积项,而且每个输出只能使用分配给它的4个乘积项,即或阵列是固定的、不可进行编程的。

从逻辑特性上来看,PAL器件不如PLA器件那样灵活和方便,但是它的成本较低、价格便宜、编程方便、编程器也较为便宜,另外它还具有保密位来防止非法读出,因此它在当时获得了广泛的应用。在目前常见的PAL中,输入最多的可以达到20个输入变量;与阵列逻辑最多则可以产生80个乘积项;或阵列逻辑的输出最多可以达到10个,同时或阵列分配给每个输出端口的乘积项可以达到16个。

对于PAL来说,为了扩展它的电路功能同时增加其使用的灵活性,生产厂商在很多型号的 PAL 中添加了不同形式的输出电路。根据 PAL 器件输出电路结构和反馈方式的不同,可以将 PAL 器件的输出电路分为 4 种类型,即基本的输出结构、可编程输入/输出结构、寄存器输出结构和异或输出结构。(1)基本输出结构

PAL的基本输出结构就是指PAL的输出直接由它的或阵列输出或者进行反相输出,某种场合下也会进行互补输出。或阵列直接输出的结构是一种极为简单和基本的输出结构,抽象来看实际上这种输出形式就是一个与-或门。但在实际的应用过程中,PAL的输出常常需要进行反相输出,因此对或阵列进行反相输出的PAL器件应用较为广泛。从具体的逻辑结构上来说,这种输出形式就是一个与-或-非门,它的基本电路结构如图1-6所示。图1-6 反相输出的PAL器件

通过图1-5和图1-6所示的电路结构,可以很容易地得到具有互补输出的PAL器件的电路结构,这里就不再进行赘述了。

根据上面的分析可以看出,基本输出结构的共同特点是 PAL 器件所有设置的输出端口只能用来作为输出使用,它不能反馈到PAL器件中的与阵列作为输入来使用。另外,由于具有基本输出结构的 PAL 中不包括触发器等时序电路,因此这种类型的 PAL 器件只能用来产生一些组合逻辑函数。(2)可编程输入/输出结构

在数字电路中,可编程输入/输出结构实际上是一种带有反馈的与-或输出结构,它的电路结构如图1-7所示。可以看出,这种PAL器件的输出端口是一个具有可编程控制端的三态缓冲器,三态缓冲器的控制信号是由或阵列的一个乘积项来提供的;同时,输出端口的信号又可以经过一个具有互补输出的缓冲器反馈到与阵列中。

从图1-7可以看出,可编程输入/输出结构的使用非常的灵活,这种输出结构可以用作三态门、双向门或者仅仅是作为一种输入端,具体如何使用关键取决于对结构中三态门的控制。如果输出结构中的三态门始终处于断开状态,那么这种结构的输出端实际上是作为输入端来使用的,这样 PAL 器件的输入/输出数目在一定范围内可以进行改变,从而使得器件的应用更加灵活。如果根据需要控制三态门的开或者断,那么这种结构可以用作三态输出或者用于双向输入/输出传送的场合。

另外,具有可编程输入/输出结构的 PAL 器件的输出反馈可以用于设计异步时序逻辑电路,这时器件中的三态门需要处于常开的状态。这里读者还可以注意到,可编程输入/输出结构实际上是一种与-或-非门的形式而不是一种与-或门的形式。图1-7 PAL的可编程输入/输出结构

在图1-7所示的器件编程情况下,当输入端口的变量I1=I2=1时,这时器件中的输出缓冲器G1的控制信号C1=1,因此器件的端口I/O1将处于输出工作状态;对于器件中的输出缓冲器 G3 来说,由于它的控制信号 C2=0,因此它将处于高阻状态,这时器件的端口 I/O2将会作为输入端口来使用。可以看出,端口I/O2上的输入信号将会经过具有互补输出的缓冲器G4连接到器件的与阵列中。(3)寄存器输出结构

在数字电路中,PAL器件的寄存器输出结构如图1-8所示,可见在或阵列的输出和器件的输出两者之间连接了由D触发器组成的寄存器。在寄存器输出结构中,器件中与或阵列的输出由公共的时钟信号CLK进行控制存入到相应的D触发器中,同时触发器的输出又可以反馈到与阵列中作为输入信号,而且它可以经过一个三态门进行对外输出。这里,由于所用的三态门是反相输出,因此这种输出结构也是一种与-或-非门的形式。

通过上面的分析可知,具有寄存器输出结构的 PAL 器件不仅可以用来存储与或阵列的输出状态,同时也可以很方便地用来构成各种时序逻辑电路。在图1-8所示的器件编程情况下,经过分析可以得到D1=I1和D2=Q1,这时与或阵列和D触发器D1、D2一起构成了数字电路中的移位寄存器。(4)异或输出结构

在数字电路中,PAL器件的异或输出结构如图1-9所示。可以看出,异或输出结构与寄存器输出结构基本类似,不同之处在于或阵列和寄存器之间又增加了异或门结构,这样D触发器的输入就是一种与-或-异或门的形式。

可以看出,具有异或输出结构的PAL器件可以方便地对与或阵列输出的函数进行求反操作,而且还可以实现对与或阵列的输出状态进行存储的操作。另外,这种类型的PAL器件非常易于实现展开项较多的多变量逻辑函数,如多功能计数器等。

4.通用阵列逻辑(GAL)

20 世纪80 年代初,Lattice 公司推出了另外——种新型的可编程逻辑器件—GAL(Generic Array Logic,通用阵列逻辑),它是在PAL器件基础上发展起来的新型器件。从基本结构原理上看,GAL器件仍然属于与或阵列结构的可编程逻辑器件。与传统的PAL器件相比,GAL器件具有以下两个重要特点。图1-8 PAL的寄存器输出结构图1-9 PAL的异或输出结构(1)GAL 器件采用了电可擦除的 CMOS 工艺制作,即采用电压信号可以擦除原来的信息而重新进行编程操作。一般来说,GAL器件的功耗比PAL器件低得多,只有GAL器件的四分之一左右。(2)GAL 器件采用了与阵列和输出逻辑宏单元结构代替了 PAL 器件的与或阵列结构,这样大大增加了GAL器件逻辑上的灵活性,因此,一种GAL器件可以代替许多种PAL器件来进行逻辑电路的具体设计,大大提高了器件的通用性。

在数字电路中,根据GAL的具体门阵列结构,通常可以把现有的GAL器件分成两大类:一类基本上与PAL器件相同,即它的与阵列可编程,而或阵列则是固定不变的,如GAL16V8、ispGAL16Z8等;另外一类器件基本上与PLA器件相同,即它的与阵列、或阵列都是可编程的,如GAL39V18等。

下面将以常见的GAL器件GAL16V8为例,重点介绍GAL器件的基本结构和工作原理。图1-10所示为GAL16V8的电路结构框图,可以看出它包括可编程的与阵列、输入缓冲器、输出逻辑宏单元、输出缓冲器和反馈/输入缓冲器5个部分。

器件GAL16V8共有20个引脚,其中2~9脚为输入引脚,12~19脚为输出引脚,1脚为时钟引脚,11脚为使能引脚,10脚为接地引脚,20脚为电源引脚。图1-10 GAL16V8的电路结构框图

通过图1-10可以看出,GAL16V8含有8个具有互补输出的输入缓冲器,它的功能是用来对输入引脚的信号进行缓冲和驱动;GAL16V8 含有 8 个输出缓冲器,它们是由具有控制信号的三态门来构成的,其作用是提高器件的带载能力和对输出数据进行三态控制,目的是便于与总线进行相应的连接操作。另外,GAL16V8还含有8个反馈/输入缓冲器,它们是由具有互补输出的缓冲器构成的,其作用是作为反馈或者输入信号的缓冲器。

GAL16V8的与阵列是一个具有64×32位的可编程逻辑阵列,这个与阵列可以分成8个阵列块,其中每一个阵列块具有8条行线,每一个行线与一个与门相连接。这里,一般将阵列块中最上面的一个与门输出称为第一与项。可以看出,与阵列中的32条列输入线分别同8个输入缓冲器和8个反馈/输入缓冲器的32个输出相连接,其中偶数号的列输入线分别同各个缓冲器的原变量输出端相连接,而奇数号的列输入线分别同各个缓冲器的反变量输出相连接。此外,GAL16V8的与阵列是由8个或门组成的,由于这8个或门分别画在8个输出逻辑宏单元中,因此没有在图1-10中表示出来。

下面将重点介绍GAL16V8中的输出逻辑宏单元(Output Logic Macro Cell,OLMC),设计人员通过编程可以将OLMC设置成不同的工作状态。这样可以采用同一型号的GAL器件来实现PAL器件的各种电路输出工作方式,大大提高了器件的通用性。总的来说,输出逻辑宏单元结构的作用体现在以下几个方面。(1)提供时序逻辑电路需要的触发器或寄存器。(2)提供多种输入/输出形式。(3)提供内部信号反馈。(4)分配控制信号,如寄存器的时钟和复位信号以及三态门的输出使能信号等。(5)共享乘积项。(6)控制输出逻辑极性。

图1-11所示为GAL16V8中输出逻辑宏单元的内部结构框图,可以看出OLMC主要包括1个或门、4个数据选择器、1个D触发器和一些由门电路组成的控制电路。其中或门、D触发器以及输出三态门是完成 GAL 器件的逻辑功能所必须的,而其他电路都是为了控制器件的输出特性而设置的。

可以看出,OLMC的控制电路由一组控制信号XOR(n)、AC0、AC1(n)和AC1(m)进行控制的。图1-11中XOR信号和AC1信号是每路输出各有一位,n就代表第n位,而m则代表相邻的一位,取决于n的位置,m的值可以是n+1或是n−1。AC0信号只有一个,其作用是为各路输出所共有。实际上,控制信号中还有一个信号称为SYN,但它并不参与对输出特性的控制,所以没有在图中体现出来。

XOR(n)信号通过异或门来控制输出的极性。当XOR(n)=1时,异或门相当于反相器,再经过输出门的反相,这样使得输出是高电平有效;当XOR(n)=0时,异或门不会反相,经输出门反相后,这样会使输出是低电平有效。

SYN信号反映GAL器件的工作方式,并影响到时钟输入CK和外部提供的三态门控制线OE的用法。如果所有输出都没有工作在寄存器输出方式,则SYN=1,此时的CK和OE输入端都可以当做一般的输入端来用。但只要有一个输出工作在寄存器方式,SYN就等于0,CK就必须用作时钟输入端,OE也必须用来控制输出三态门,就不能当做一般的输入端来用了。

AC0、AC1(n)和 AC1(m)信号的功能是用来控制 4 个多路选择器,从而使输出结构有多种变化。OMUX是2选1选择器,只有当AC0=1、AC1(n)=0时,它的控制信号为1,把D触发器的输出传送给输出端。其他情况下,它都是把异或门的输出接至输出端,属于组合型的输出结构。图1-11 输出逻辑宏单元的内部结构框图

PTMUX也是一个2选1选择器,它决定是把一个乘积项连接到或门输入作为第8个相或的乘积项还是把这个乘积项通过TSMUX选择器去控制三态门。只有当AC0=1、AC1(n)=1时,才会把这个乘积项用作三态门控制,这时,参与相或的乘积项最多只有7项。

TSMUX是4选1选择器,它决定用什么信号去控制输出三态门。由AC0和AC1(n)作为选择信号:当AC0=0、AC1(n)=0时,三态门将会

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载