SOC课件-第三章-VLSI集成电路_第1页
SOC课件-第三章-VLSI集成电路_第2页
SOC课件-第三章-VLSI集成电路_第3页
SOC课件-第三章-VLSI集成电路_第4页
SOC课件-第三章-VLSI集成电路_第5页
已阅读5页,还剩132页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SoC技术原理与应用主讲:郭

单位:四川大学计算机学院电话/p>

E-

2007

年4月第三章VLSI集成电路主要内容

引言数字IC设计

模拟IC设计射频IC设计

IC设计与EDA工具

VerilogHDL设计简介

可测性设计可编程逻辑器件

IC的制造过程3.1、引言

自60年代开始,集成电路〔IC〕经历了小规模〔SSI〕、中规模〔MSI〕、大规模〔LSI〕,开展到目前的超大规模〔VLSI〕和甚大规模集成电路〔ULSI〕。器件特征尺寸不断缩小,从亚微米〔最小特征尺寸≤1µm〕、深亚微米DSM〔最小特征尺寸≤0.5µm〕到超深亚微米VDSM〔最小特征尺寸≤0.25µm〕,其主要特点包括:

(1)特征尺寸越来越小(2)芯片面积越来越大

(3)单片上的晶体管数越来越多

(4)时钟速度越来越快

〔5〕电源电压越来越低〔6〕布线层数越来越多〔7〕

I/O引脚越来越多从几十个引脚到最多1200个引脚,目前大局部IC的封装在100~300个引脚。集成电路工艺技术的高速开展,超深亚微米成为目前的主流工艺技术,使更多的IC采用超深亚微米工艺,到2004年接近90%的IC使用0.25um以下工艺,平均门数超过2百万,使得超深亚微米VLSI集成电路的设计面临一些新的问题和挑战,迫切需要在理论及技术上进行创新,探索新的超深亚微米VLSI集成电路设计/验证方法、流程及EDA技术。DSM时代特征尺寸减小,时钟频率提高使互连线〔Interconnect〕延时大于门延时,各种噪声的影响明显加剧,从而使传统IC设计方法面临各种问题。不同的学术及技术领域对这些问题有着不同的认识和表达方式,对于前端设计部门最为直接的问题是设计时序收敛难度加大。图3-7所示的设计中,在使用Wireload模型〔WLM:WireLoadModel〕综合后,设计到达600MHz,在布局完成后,最高性能到达500MHz。使用特定统计Wireload模型反复综合后使设计到达550MHz,仍不能满足要求。新网表在次布局后,为500MHz。布局的In-PlaceOptimization〔IPO〕将性能提升到550MHz,如此需要屡次反复才能到达时序收敛。设计时序的不收敛导致了前端设计与后端设计的结果严重不一致,投片不可能成功,设计人员面临不可预知需要多少次反复才能消除逻辑设计期望与ASIC厂商物理综合设计人员所能提供的时序方面的差异。随着工艺技术的不断开展,这种反复的次数不断增加,使设计周期越来越长,开发本钱越来越高,几乎到达不可接受的状况。造成这一问题的根源主要是由于Wireload模型不准确。传统的综合基于统计Wireload模型,Wireload模型是对装入互连电阻和电容的统计估算。这种统计估计是基于对采用给定库进行屡次设计的平均,同样寄生参数的估计也被用于所有类似扇出网,因而缺乏实现细节需要的精确互连延迟,不能精确表达互连延迟,后端综合修复工具不能提供足够的优化技术来纠正许多时序问题。在DSM工艺下互连线延时十分严重,并引入多种噪声,设计人员不得不在逻辑、时序和物理工具之间不断反复,以到达需要的电路性能,设计工具对于互连延迟不同的表达方式更恶化了这一问题。在传统IC设计环境中,设计人员通常采用以下技术手段来解决时序收敛问题:〔1〕使用保守的库和流程。〔2〕Floorplan和创立定制的Wireload模型。〔3〕在布局/布线工具中,使用有限的优化技术进行修复。但这些手段不能从根本上解决VDSMIC设计所面临的问题,为此近年来学术以及EDA技术界对VDSM工艺下各种噪声的特性以及有效的设计工具等问题进行了深入的分析和研究,并提出了一些解决方案及针对VDSNIC设计的EDA工具。电路延时有门延时和互连线延时两类,它们均与金属线的长度和宽度、多晶硅的宽度和长度、氧化层的厚度等参数有关。以前互连线延时没有受到重视,但统计结果说明,在VDSM工艺下的互连线延时占到总延时的80~90%。有关互连线延时和噪声的情况较为复杂,对于它们的来源、特性及模型描述是现代VDSMIC领域中研究的一个热点。在VDSMIC设计中另一个重要的问题是低功耗设计。自上世纪70年代起,就开始了对CMOS电路功耗的理论分析,并逐渐受到重视。近年来,由于芯片集成度和工作时钟频率的迅速提高,低功耗设计已成为VDSMIC设计中与性能和面积同等重要的一个因素。特别是对于电池供电的便携式产品,如移动终端、PDA及笔记本电脑等,其芯片及系统的设计都是围绕低功耗要求来进行的。CMOS数字集成电路的功耗由三局部组成:〔1〕动态功耗:为CMOS门电路0/1状态转换所需要的能量,实质上是PMOS及NMOS晶体管等效电容C的充放电,〔2〕内部短路功耗:CMOS电路如果以下条件成立Vtn<Vin<Vdd-|Vtn|〔其中Vtn是NMOS的门限电压,Vtp是PMOS的门限电压〕时,在Vdd到地之间的NMOS和PMOS会同时翻开,这就产生了短路电流。在门的输入端上升或者下降的时间比其输出端的上升或者下降时间快的时候,短路电流现象会更为明显。为了减少平均的短路电流,尽量保持输入和输出在同一个沿上。一般来说,内部短路电流功耗不会超过动态功耗的10%,同时,如果在一个节点上,Vdd<Vin+|Vtn|的时候,短路电流会被消除。〔3〕静态漏电功耗:静态漏电是指二极管在反向加电时,晶体管内部出现的漏电现象,在MOS中主要指的是从衬底的注入效应和亚门限效应,它们与工艺无关。漏电所造成的功耗很小,不是功耗优化的重点。因此,在电路组态结构方面尽可能少采用传统的CMOS电路结构,因为互补电路结构每个门输入端具有一对PMOS和NMOS管,形成较大的容性负载,CMOS电路工作时对负载电容开关充放电功耗占整个功耗的百分之七十以上。为此,深亚微米的电路结构组态多项选择择低负载电容的电路结构组态,如开关逻辑、Domino逻辑以及NP逻辑,使速度和功耗得到较好的优化。在IC设计中,功耗优化设计主要是根据以上理论原理,在以下几个方面进行优化:〔1〕RTL级代码优化:不同的RTL代码,会产生不同的功率损耗,因为RTL代码最终会实现为电路。不同的电路风格和电路结构会对功率产生相当深远的影响。〔2〕后端综合与布线优化:综合与布线是将RTL代码综合成真实电路,一段RTL代码所对应的电路可以有多种形式。而CMOS电路的功耗与电容的充放电有很大关系,在后端综合与布线中,可以采取一些措施减少电容,优化电路,减少电路的操作,选择节能的单元库,修改信号的相关关系,再次综合减少毛刺的产生概率。〔3〕通过降低工作电压来降低器件的功耗,IC的工作电压逐步从5V降到3.5V、2.5V、1.8V等。但这种降低是有限度的,因为过低的工作电压会使功率馈入发生困难。〔4〕采用门控〔ClockedGate〕,对于系统中暂不工作的模块,可将其时钟关闭,需要工作时再将其唤醒。由于CMOS电路的静态功耗很小,因而可有效地降低整个系统的功耗。对于VDSMIC低功耗设计除了以上优化方法外,目前进入更高一级的研究,主要有系统级功耗管理策略、软件程序结构及软件代码优化等,特别是良好的系统功耗管理方案对于降低SoC芯片及系统功耗将取得非常明显的效果。比较成熟的方法是采用空闲〔Id1e〕模式和低功耗模式,在没有软件任务执行的情况下使系统处于等待状态或处于低电压和低时钟频率的低功耗模式。另外,采用可编程电源也是获得高性能和低功耗的一种有效方法。IC按电路性能分为数字IC、模拟IC和射频IC,下面分别对这三类IC基于VDSM的设计做一个简要的介绍,有关的根底知识,如电路与系统、数字逻辑、半导体器件、射频与微波电子学、Verilog语言等,本书将不做过多的介绍。3.2数字IC设计

数字和模拟的区别主要表达在对信息的编码上,数字电子学使用离散值表示信息而模拟电子学采用连续信号表示信息。离散的意思指分开的或别离的,与连续的或相连的相对。数字IC和模拟IC的区别是:数字电路工作在CMOS管的线性区和截止区,模拟电路工作在CMOS管的饱和区,在CMOS管的Vg加不同的偏置电压〔或信号电压〕,使得CMOS管工作在不同的工作区域,因此,数字IC和模拟IC的电源局部是不同的,如5VTTL电平,电平0~0.8V表示逻辑“0”,电平2~5V表示逻辑“1”,电平0.8~2V在数字IC中属于“X”态,但恰恰是模拟IC的Vg电压范围。当代数字IC品种繁多,按其设计和制造情况来区分,可分为以下四类IC:(1)标准集成电路这类产品不需要用户进行任何设计工作,可直接从市场上购置使用,可分为以下两类:1.标准集成电路系列:这类电路由IC制造商开发并大量生产,可用于各种场合,是一种通用性强的产品。这类产品品种繁多,用户在使用这类电路进行系统设计时,难以用一、二种规格的产品到达设计要求,往往需要较多的器件和较大的PCB面积,因此,需要较高的开发和生产本钱。2.软件组态标准电路:这类电路主要是各种通用微处理器、微控制器和DSP等,这种电路要靠一定的软件来完成所需的功能,应用比较灵活,但这种器件与其它器件的配合需要用户设计专门的接口电路,其工作方式主要为分时串行方式,速度较慢。(2〕全定制IC〔Full-customIC〕在全定制IC技术中,设计者需要建立完整的幅员,良好的幅员一般用速度和尺寸等特性来定义,这个任务通常称为物理设计。全定制IC技术的优点表达在功率、性能和大小等方面的高效性,将需要互连的晶体管放置在相邻位置,用很短的导线来连接,可以产生良好的性能和功耗,并且,只有电路需要的晶体管才会出现在IC上,不会产生由于有未用晶体管而造成的芯片面积浪费现象。全定制IC技术的主要缺点是其过高的非重发性设计〔NRE:NoRepeatEngineering,又译非经常性工程〕本钱和较长的上市时间。NRE代表在IC最终从芯片制造厂制造出来以前客户需要投入的所有本钱,这些本钱包括工程资源、昂贵的软件设计工具、用来制造芯片不同金属层的昂贵光刻掩膜组以及初始原型器件的生产本钱,这些NRE本钱可能从数十万美元至数百万美元。〔3〕半定制IC〔Semi-customIC〕在这种技术下,设计者不需要建立全定制的幅员,而是将事先制作好的幅员连接起来,这种半定制的IC称为ASIC〔ApplicationSpecificIntegratedCircuit〕,即单用途处理器。半定制IC技术主要有门阵列〔GateArray〕和标准单元〔StandardCell,如门电路、触发器等〕两种类型,与全定制IC技术相比,主要优点是NRE本钱较低和上市时间较快,因为需要建立的幅员和掩膜较少。而与可编程逻辑器件IC技术相比,半定制在性能、功率和大小等方面具有较高的效率。由于有良好的效率及较低的NRE本钱,半定制IC技术是目前最流行的IC技术。〔4〕可编程逻辑器件可编程逻辑器件,简称PLD〔ProgrammableLogicDevice〕,IC的所有逻辑门已完成幅员制作,其在IC上的放置位置已经明确,设计者的工作就是以所需电路的方式连接逻辑门〔布线〕。它是一种能将系统结构实现在IC上而不需制造IC的技术,可在现场进行编程的IC技术,这里的现场指实验室或办公室,编程不是指编写在微处理器上执行的软件,而是指配置逻辑电路和互连开关,以实现所需的结构电路。PLD可分为SPLD〔SimplePLD简单PLD,只能完成简单的组合电路〕、CPLD〔ComplexPLD复杂PLD,一般包含锁存器,还可以实现时序电路〕和FPGA〔FieldProgrammableGateArray现场可编程门阵列,一种更模块化、规模更容易控制的PLD设计方法,由可编程逻辑块的阵列组成,可编程逻辑块之间通过可编程互连块连接〕。VLSI设计一般采用层次式设计,它是VLSI设计中最广泛使用的方法,可以简化VLSI设计的复杂性,分为自顶向下和自底向上两种方法。层次化设计分为以下几个层次〔如表3-1所示〕:〔1〕系统级:系统标准化说明〔SystemSpecification〕,即系统的功能,包括系统功能、性能、物理尺寸、设计模式、制造工艺、设计周期和设计费用等。〔2〕算法级:将系统功能的实现方案设计出来,通常是给出系统的时序图及各子模块之间的数据流图。〔3〕存放器传输级〔RTL:Register-Transferlevel〕:将系统功能结构化,以存放器和传输来表示。〔4〕门级:将系统功能逻辑结构化,通常以文本〔VerilogHDL或VHDL〕、原理图、逻辑图表示设计结果,有时也采用布尔表达式来表示设计结果。〔5〕电路级:将逻辑设计表达式转换成电路实现。〔6〕幅员级〔物理级〕:物理设计或称幅员设计是VLSI设计中最费时的一步,将电路设计中的每一个元器件,包括晶体管、电阻、电容、电感等以及它们之间的连线转换成集成电路制造所需要的幅员信息。典型的RTL级数字IC设计流程如图3-8所示从图3-8可以看出,对于任何ASIC产品的开发,最初总是从市场上得到需求的信息或产品的概念,根据这些概念需求,IC工程师可以逐步完成IC规格的定义和总体方案设计,总体方案设计定义了芯片的功能、模块划分、模块功能和模块之间的时序关系等内容。在总体方案经过充分讨论或论证后,开始ASIC产品的研发。IC的开发阶段包含了设计输入、功能仿真、综合、DFT、形式验证、静态时序分析、布局布线和ECO等内容。在过去很长一段时间内,硬件描述语言只是用来验证设计的思路是否正确,设计者往往需要手工将硬件语言的描述转换为门级网表的形式。随着计算机技术和EDA软件工具的开展,尤其是综合工具的出现,在电路设计方面,实现了从硬件描述语言到门级网表的自动转换〔或称编译〕等自动综合能力。所谓综合器,也可称设计编译器,根据面积、速度、功耗、时序等约束条件,完成可综合的RTL描述到综合库单元之间的映射,得到一个门级网表等。一般的逻辑综合过程如图3-9所示,输入为可综合的RTL代码、约束条件和单元库〔即工艺库〕,输出的是门级网表。在逻辑综合过程中,为优化输出和工艺映射的需要,一定要有相应的约束条件以实现对设计实体的控制。同时,在根据约束条件进行逻辑综合时,单元库将提供综合工具所需的全部半导体工艺信息,即单元库不仅包含ASIC单元的逻辑功能、单元的面积、输入到输出的时序关系、输出的扇出限制和对单元的时序检查等。综合器内部可内嵌静态时序分析工具,可以根据综合约束来完成门级网表的时序优化和面积优化。逻辑综合的过程一般包含三个阶段:〔1〕展平〔Flattern〕:将Verilog语言的RTL描述转换为未优化的门级布尔逻辑方程描述。〔2〕优化:执行优化算法,化简布尔方程。〔3〕设计实现:按约束要求,采用相应的工艺库,将优化的布尔方程描述映射为实际的逻辑门电路。目前,大多数IC设计引入了可测试结构设计,一般在电路初步综合后可进行DFT设计。典型的DFT电路包括存储单元的内建自测BIST电路、扫描链电路和边界扫描电路。BIST电路是为了测试而设计的专门电路,它可以来自半导体生产厂商,也可以用商用的工具自动生成。扫描电路一般是用可扫描的存放器代替一般的存放器,由于带扫描功能的存放器的延迟与一般的存放器并不一致,所以在综合工具进行时序分析时最好能够考虑这种“附加”的延迟。边界扫描电路主要用来对电路板上的连接进行测试,也可以将内部扫描链的结果从边界扫描电路引出。形式验证是一种静态的验证手段,根据电路结构静态地判断两个设计在功能上是否等价,从而判断一个设计在修改前和修改后其功能是否保持一致。它无须测试向量,但是在运用形式验证时,必须有一个参照设计和一个待验证的设计。参照设计是我们认为功能上完备无缺的设计,它可以是用高级语言,如C、C++实现的,也可以是集成电路的建模语言SystemC,或者是用验证语言Vera或SpecmanE实现的,但就现实而言,多数形式验证过程中的参照设计就是我们的RTL设计,一般是用Verilog或VHDL实现的。利用形式验证还可以进行RTL-GATE比照,我们可以验证插入DFT前后的电路网表功能上是否一致,生成时钟树前后的电路网表功能上是否一致,布局布线前后的电路网表在功能上是否一致等。静态时序分析是IC开发流程中非常重要的一环。通过静态时序分析,工程师一方面可以了解到关键路径的信息,分析关键路径的时序;另一方面,工程师还可以了解到电路节点的扇出情况和容性负载的大小。IC的后端设计包括布局、插入时钟树、布线和物理验证等内容。ECO〔EngineeringChangOrder〕就是工程更改命令,一般的设计流程并不需要这个步骤。ECO的发生是指在已经输出幅员GDSII数据后,设计者又发现某个非常小的硬件缺陷〔Bug〕,而且解决这个问题又只需要在非常小的范围内更改金属连线关系,或者利用幅员上冗余的逻辑门来修正设计中的小问题。传统的更改一般由工程师手工修正,目前,一些幅员工具内嵌了ECO算法实现,这样我们就可以利用幅员工具来自动完成。虽然数字IC的用量占多数,但模拟IC仍有相当大的生存空间:〔1〕首先,数字技术是一种人工编码技术,而自然界的监测对象和控制对象,如声、光、温度等全是连续变化的模拟量,而数字技术不可能直接监测和直接控制,实现这一接口功能的正是模拟电路。〔2〕数字信号只能有线传输〔利用双绞线、同轴线、光缆等〕,采用射频载波的调制和解调,才能完成无线发射和接收,这又是非模拟电路不可的用场。〔3〕任何数字系统都必须有电源的控制和管理,在移动式数字系统中,电源控制和电源管理的问题更加突出。3.3模拟IC设计集成化的模拟电路设计和采用分立器件的模拟电路设计有显著的区别:〔1〕采用分立器件设计的电路所用的有源及无源元器件并不都制造在同一块衬底上,而集成化的电路那么是做在同一块芯片上的,所有有源和无源元器件的几何形状、尺寸和位置都在集成电路设计师的支配和控制下,这就赋予他在设计过程中新的、充分的自由度。〔2〕集成电路设计师不可能搭试验线路板,他只能应用模拟方法确认他的设计,确认性能是否能到达要求。〔3〕集成电路设计师在选用元器件时要受到一定限制,他所选用的元器件必需和他采用的集成电路工艺相兼容。模拟集成电路设计可划分为假设干阶段〔如下图〕目前模拟IC开展的趋势包括:(1)嵌入式模拟IC和高性能模拟IC。(2)采用标准CMOS工艺设计制造ADC、DAC、RF电路等典型模拟电路和混合信号电路已经成为业内热点。〔3〕CMOS工艺设计模拟IC的工作难度,高于设计数字IC和混合信号IC。〔4〕混合信号〔MixedSignal〕IC。数字、模拟电路的混合信号IC设计成为ASIC/SoC设计中常常需要的技术,尤其是通信领域混合信号IC设计方法也由原来的功能设计向功能组装的方向开展。3.4射频IC设计

射频/微波集成电路,是在半绝缘半导体衬底上用一系列的半导体工艺方法制备出无源器件〔如电容、电感〕和有源元器件〔如双极晶体管、MOS晶体管〕,并连接起来构成应用于微波〔甚至毫米波〕频段的功能电路。其特点是将PCB板的分立元件集成在微小的芯片之中,这样缩小了电路的体积,降低了电路本钱,提高了电路的可靠性,且其工作频率较高,容易实现宽频带和大信息的传送。射频/微波集成电路设计需要的多学科的相关知识,处于新兴的学科前沿,其与各学科的关系可以用图3-11来表示:射频集成电路本身不同于常规的数字和模拟集成电路,其设计流程如图3-12所示,射频集成电路设计流程包括:〔1〕首先要有一个根本的电路设计的构架,即电路的根本拓扑结构。〔2〕然后将电路结构分别导入Cadence和ADS中进行射频相关的各种参数的模拟分析,尤其是其中的关键的阻抗参数、S参数和噪声特性。在分析中利用Cadence在时域模拟的优点与ADS在频域分析的长处,共同得到优化的电路及其具体的元件参数,在电路仿真中必须考虑封装所能引入的引线、压焊点的模型。〔3〕仿真中所采用的工艺元件及工艺库模型必需考虑射频电路的特点,直接采用一些公司提供的SPICE模型模拟电路会影响电路模拟的准确性,并且注意工艺库必需随工艺线的提供及时更新。(4)利用芯片代工加工方便Cadence的幅员工具,将电路转化为幅员,并设计相应的参数化单元。在幅员设计中,必须考虑射频电路的特点,特别关注射频信号的通路。〔5〕完成幅员后,对其进行设计规那么等的验证,在幅员中进行寄生参数提取,并将提取的参数进行再仿真。由于所取的参数可以同时用于Cadence和ADS,可以同时在两种工具上对电路再仿真〔即后仿真〕。(6)最后,将再次优化的电路生成幅员并经验证后生成幅员GDSII文件交付Foundry投片。该流程综合了模拟电路的设计方法,其中,增加了与射频相关的ADS相验证的模拟,是将Cadence与ADS的优势相互结合。因此,可以有效提高设计的准确性。

3.5IC设计与EDA工具

EDA〔ElectronicDesignAutomation〕工程是以计算机为工作平台,以EDA软件工具为开发环境,以电子化系统设计为应用方向的电子产品自动设计过程,包括IC设计自动化、可编程器件设计自动化、电子系统设计自动化、PCB设计自动化、功能仿真、故障测试、形式验证自动化等,不包含电子产品生产自动化,其相应产品化的工具是信息产业的重要根底〔如图3-13所示〕。EDA工程学科,是近几年迅速开展起来的计算机软/硬件和微电子学交叉的现代电子设计学科,涉及到计算机操作系统、数据库、编译原理、计算数学、人工智能、电路理论、微电子集成电路设计等领域,是信息产业开展的核心技术之一。集成电路产业是以市场、设计、制造和应用为主要环节的系统工程,设计是连接市场和制造之间的桥梁,是集成电路产品开发的入口,成功的产品来源于成功的设计,成功的设计取决于优秀的EDA设计工具。IC设计的EDA软件工具开展过程包括:〔1〕第一代:在集成电路产业开展初期20世纪70年代,随着中小规模集成电路的开发应用,用传统的手工制图的方式设计PCB和集成电路已无法满足设计精度和效率的要求。因此,工程师开始进行二维平面图形的计算机辅助设计〔CAD:ComputerAidedDesign〕,以便解脱繁杂的幅员设计工作,这就诞生了第一代EDA工具。这个阶段的特征是采用小型计算机,主要针对物理级的设计,软件功能为交互图形编辑和设计规那么检查,集成电路设计附属于半导体工业。这样的CAD系统为IC设计师提供方便的幅员编辑、设计验证和数据转换等功能,如以Computer-vision为代表的CAD系统,支持幅员图形编辑及PCB绘图。〔2〕第二代:20世纪80年代为了适应电子产品在规模和制作上的需要,出现了以计算机仿真和自动步线为核心技术的第二代EDA工具,产生了计算机辅助制造〔CAM:ComputerAidedManufacturing〕、计算机辅助测试〔CAT:ComputerAidedTest〕和计算机辅助工具〔CAE:ComputerAidedEbgineering〕等概念。为设计师提供了方便的原理图编辑、仿真和物理幅员的布图和验证功能,如以Applicon、Calma、CV为代表的幅员编辑和DRC,以Mentor、Daisy、Valid为代表的CAD系统,从原理图输入、模拟、分析、到自动布图及验证的全过程支持。〔3〕第三代:20世纪90年代出现了以HDL高级语言描述、系统级仿真和综合技术为特征的第三代EDA工具,极大地提高了系统设计的效率,使广阔的电子设计工程师开始实现“概念驱开工程”的梦想。设计师摆脱了大量的具体设计工作,而将精力集中于创造性的方案与概念构思上,从而大大提高了设计效率,缩短了产品的研制周期,如以Cadence、Synopsys、Avanti、Mentor、Viewlogic等为代表的EDA系统,对IC设计的整个流程提供支持,甚至包括系统级的设计工具。〔4〕第四代:目前正在紧锣密鼓地进行。由于集成电路的工艺水平已经进入超深亚微米〔<0.25微米〕,在0.8微米工艺以下,连线延迟已占总延迟的70%,因而计算工作量要比微米及亚微米增大。设计工具改进所增加的设计能力必须超过工艺增长速度,才能适应工艺的快速开展,正在研制面向VDSM+SoC的新一代EDA系统。在利用EDA工具进行IC设计时,首先需要解决的问题是利用适当的方式描述系统的功能,并输入到计算机中,以便计算机进行识别,然后,根据设计约束进行相关的自动设计。这种描述硬件功能的方式就是硬件描述语言〔HDL:HardwareDesccription〕,可分为文字语言〔WordHDL〕和图形语言〔GraphicHDl〕。图形语言即广泛使用的逻辑电路图和状态流程图,是为广阔IC设计人员所熟悉的描述方法。在现有的EDA工具中,两种描述方法均可采用。比较而言,计算机对于图形语言的识别比较困难,同时,图形描述难以抽象,很难清晰描述不同层次的IC系统。而由文字符号构成的形式语言,已在计算机系统中广泛应用,相应的编译技术十分成熟,计算机执行这种文字符号组成的形式语言程序具有很高的工作效率。因此,在EDA工具中,文字描述语言应用得最为普遍。一般地,硬件描述语言HDL都是指文字硬件描述语言WHDL。EDA工具的集成设计环境是指运用各种EDA工具,按设计流程进行进行工程设计的环境。由于各个EDA工具开发商在不同的设计环节有不同的特长,其EDA工具也具有不同的特色,如Synopsys公司的逻辑综合工具DC,逻辑综合效率高,占用资源少,以及逻辑仿真工具VCS,时序仿真较精确,设计工程能工作于较高的工作频率,在业界享有盛名;Candence公司的EDA工具长于模拟IC设计,Verilog语言仿真工具Verilog-XL功能和性能也相当不错,Mentor公司的EDA工具长于幅员设计和后端验证。由于EDA处理算法复杂,需要高性能的计算支持,目前多数大型EDA工具都运行在Unix平台上,包括IBMAIX、HPHP-UX、SunSolaris和Linux等;为降低EDA费用,在Windows平台上单机可运行的EDA工具也越来越多,如Workview和ModelSim等。EDA软件作为大型、复杂的软件系统,主要采用C、C++和Java等语言在Unix或Linux平台上开发,是一个高投入、高风险和专利门槛较高的产品,根本由几家大的公司垄断,后来者很难进入,我国在这方面差距较大。选择优秀、适用的EDA工具,构成适宜的EDA工程集成设计环境,是工程开发工程师的首要任务之一。选择优秀的EDA工具有以下几个约束条件:〔1〕EDA工具的使用授权限制。〔2〕设计语言、设计数据和设计格式的兼容问题。〔3〕EDA工具与计算机和操作系统的兼容问题。〔4〕是否具有IDE环境,工具界面是否友好等。〔5〕设计工程的实际需要限制。3.6VerilogHDL设计简介

硬件描述语言有多种,自20世纪80年代后期起,逐步开始推广使用。应用比较普遍的有:美国国防部提出的VHDL、Candence公司开发的Verilog、MentorGraphics公司开发的BLM和DATAI/O公司的ABEL等,目前已成为国际标准的硬件描述语言只有VHDL和Verilog两种。VHDL的英文全称是VeryhighspeedintegratedcircuitHardwareDescriptionLanguage,即超高速集成电路硬件描述语言,是美国国防部为支持超高速电路〔VHSIC:VeryHighSpeedIntegratedCircuit〕设计工程的研发于20世纪80年代初提出的,采用ADA语言的语法,其目的是为了在各个开发商之间统一设计标准,便于资源共享。1986年,IEEE标准化组织开始审订VHDL,并于1987年12月通过了标准审查,宣布实施,即IEEESTD1076-1987。1993年又对VHDL做了进一步修订,形成了新的标准,即1076-1993,目前多数VHDL设计采用此标准。VeirlogHDL最初由GatewayDesignAutomation〔GDA〕公司的PhilMoorby首创,采用C语言的语法,1989年Candence收购了GDA公司,VerilogHDL遂成为Candence公司EDA工具的硬件描述语言。1995年,VerilogHDL成为IEEE的标准,即VerilogHDL1364-1995,正式成为一种IC开发的商用硬件描述语言。为了改进设计的准确性以满足VDSM设计的需要,Verilog1364-2001增加了系统级建模的功能,提高了ASIC时序准确性,对VerilogPLI进行改进后,可以提供更强的模拟控制功能,同时提高了交互性能。中国国家质量技术监督局于2001年4月9日发布了“中华人民共和国国家标准GB/T18349-2001:集成电路/计算机硬件描述语言Verilog,英文名:IntegratedCircuit/ComputerHardwareDescriptionLanguageVerilog”,并于2001年10月1日正式实施。该标准等同于IEEESTD1364-1995,旨在将Verilog作为硬件描述语言的完整国家标准VHDL和VerilogHDL都支持从行为级到门级的系统描述,适合于IC系统自顶向下的层次化设计。目前,硬件描述语言正在向模拟电路和混合信号设计的方向开展。由于Verilog语言采用C语言的语法,充分保存了C语言简洁、高效和灵活的编程风格,因而在数字IC设计者和高等院校的教学中占有绝对的多数。Verilog语言的最大特点是易学易用,如果具有一些C语言的编程经验,可以在较短的时间内学习和掌握Verilog语言,容易获得IC设计的实际经验。与之相比,VHDL的学习要困难得多,很难在较短的时间内真正掌握,而在似懂非懂的前提下进行实际电路的设计,对培养良好的设计风格反而会产生不利的影响。目前,Verilog语言在实际工程应用中主要是进行RTL级的设计,以及相应的测试脚本〔TestBench〕设计。Verilog语言中多数语句是不可综合的,主要用于设计灵活的TestBench。一般地,一个典型的、可综合VerilogRTL设计主要内容包括:例化模块〔Instantiationmodules〕,包括IP核。常用的数字元件,如比较器〔Comparator,Verilog比较语句生成〕、多路复用器〔Mux,VerilogIf-else-end语句生成〕、多路输出选择器〔Demux〕、编/解码器〔Coder/Decoder〕等。I/O信号、存放器〔Reg〕信号和线〔Wire〕信号定义。信号的与、或、非、移位等算术、逻辑或布尔运算。信号的阻塞赋值和非阻塞赋值。敏感信号列表等。RTL编码类似于软件开发,通常使用的软件工程指导原那么在RTL编码时也适用,其根本的编码原那么要求RTL代码简单、结构化和规那么化,这样的代码也易于综合、复用和验证,下面给出一些根本的指导原那么,这些原那么仅仅作为参考,每个设计团队应该根据具体的设计环境、工具和产品的标准,制订自己的指导原那么。〔1〕命名习惯设计阶段的最开始应该制定一个统一的和合理的命名习惯,并由整个团队共同坚持.〔2〕RTL编码的一般指导原那么l使用简单结构和时钟方案。代码的结构应该一致,规划的划分方案使各模块规模大致相等,以实现一致性。设计的划分应该使一个单独模块中的所有逻辑使用同一个时钟或复位信号。l应该使用行首缩进以提高RTL代码的可读性。同时,为使行不致太长,缩进应该小,通常为2~3个空格。应该防止使用Tab键,因为Tab键在不同的文本编辑器中会引起文本错位。〔3〕可综合的RTL开发可综合性是指RTL代码设计符合综合工具的可综合标准,RTL代码和综合后网表的功能与设计意图一致。RTL的目标是通过综合〔Synthesize〕生成设计,每一个综合工具对Verilog结构都有它独特的口味,这些结构使综合过程有效,也简化了综合后的分析。除上面给出的一般VerilogRTL编码原那么外,VerilogRTL的开发应该面向综合。综合工具通常会以某种方式解释RTL代码,确定它意味着何种类型的逻辑。由于综合过程本身要花费很长时间,因此,静态语法检查工具Lint可以在综合前浏览RTL代码,指出综合时可能会遇到的语法问题和错误,是按照Linux/Unix软件编程工具Glint和Clint的方式命名的。竭力推荐设计者将Lint过滤过程参加到设计流程中,如在makefile中,此过程会早期发现许多设计错误和违反代码风格的地方,迫使工程师在综合前必须先检查RTL编码。3.7可测性设计

3.7.1可测性根底3.7.2可测性结构设计JTAG接口3.7.1可测性根底据近年来的统计,对IC设计进行测试与验证所花的时间占到了整个设计过程的70%左右。IC产品在生产完成之后,还要进行测试,以判断产品的功能和性能是否合格。IC的测试包括以下几类:〔1〕芯片生产后测试。〔2〕芯片封装后进行电路测试。〔3〕IC装上PCB后测试。〔4〕系统成套完成后测试。〔5〕在使用现场测试。如果IC产生故障,在不同的场合检测并排除故障,其测试本钱的开销相差巨大。根据有关统计资料说明,同样的产品,如果以芯片生产后的检测本钱为$1计,那么封装后的电路检测本钱为$10,PCB上完成检测的本钱为$100,在系统上完成需要$1000,而在现场完成同样的工作高达$104。可见,在集成电路生产和使用过程中,尽可能早地发现产品的故障,对降低生产本钱和使用本钱具有重大的意义。通常,将芯片生产后的测试和封装完成后的电路检测称为工厂测试,由IC制造商完成。芯片封装完成后的电路测试及以后各阶段的成品和半成品测试由用户完成。IC的测试通常在测试设备上进行,将被测IC放在测试仪器上,测试设备根据需要产生一系列测试输入信号,加到输入端,在电路的输出端获得输出信号,将测试的实际输出与预期输出比较,如果两者相等,说明测试通过;否那么,说明测试失败。在理想情况下,测试通过,证明产品是合格的;否那么,该产品不合格。测试结果的可靠性取决于测试信号的正确性和完整性。测试用的输入信号称为测试矢量信号或测试码。测试码的产生方法称为测试码生成,测试码可以由人工生成,也可以由计算机自动生成,然而对于复杂的大规模IC,测试码的生成是一项耗时而又烦琐的工作。对于具有n个输入的IC组合电路,每一个测试矢量可以唯一决定一个无故障输出,因而每个测试矢量都可以是一个测试。n个输入的电路,最多有2n个测试矢量。对于一个具有n个并且在电路内具有m个存放器的IC电路,最多有2n+m个测试矢量。很明显,当电路规模较大时,测试码的数目将过于庞大,使得测试实际上不可能进行。1966年,J.P.Roth提出了一个组合电路测试生成的完全算法,称为D算法。D算法从理论上首先解决了组合电路的测试生成问题,即任何一个组合电路中任意单故障都可以采用D算法找到检测该故障的测试码。D算法是一种完备的、便于计算机实现的算法。随后,许多学者对D算法进行了改进,以克服D算法对解空间盲目搜索的缺点。1982年,P.Goel提出的PODEN算法和1983年H.Fajiwara、T.Shimono提出的面向扇出的FAN算法都是较好的改进算法,已经能够解决几千门组合电路的自动测试生成问题。上述算法都属于启发式方法。还有一类方法是F.F.Sellers等提出的布尔差分法,以及随机产生法等。相比之下,时序电路测试生成的研究进展比较缓慢。20世纪80年代后期以来,时序电路的测试生成取得了一些进展,较著名算法的有ESSENTIAL算法等。当一个IC系统设计完成后,需要对其进行功能仿真和验证。在仿真时,需要对被测系统的输入端施加一系列测试码,测试码的设计应以最小的测试码集合以获得最高的故障覆盖率。故障覆盖率是在测试码生成之后检验其正确性的指标,其值为:假设故障率到达95%以上,即可认为该测试码已到达要求。随着IC系统的日益复杂,集成规模日趋庞大,测试生成处理开销巨大。此外,与IC的内部接点相比,I/O引脚要少得多,根本无法将所有需要鼓励和观察的节点全部引出。很明显,如果只考虑改进测试方法,测试问题将成为十分困难的问题,远不能适应电路集成度增长的开展要求。积极的方法是在电路设计阶段就考虑电路的测试问题,即在设计电路逻辑功能的同时,为今后能够进行高效的测试提供方便,这就是可测性设计。图3-15表示了测试开销与芯片集成规模之间的关系,图中曲线UD表示无约束设计,直线HD表示可测性设计。普通设计方法中,测试开销将随着IC电路规模的增大呈指数规律上升,以至当电路规模大于某种程度时,测试事实上将成为不可能。采用可测性设计后,测试开销与集成规模呈线性增长关系。因此,对于VLSIIC设计,可测性设计是必不可少的。在可测性设计中,需要解决的另一个问题是如何评估一个设计完成的电路的测试难易程度,即可测性分析。可测性分析是对一个设计完成的电路或待测电路不进行故障模拟就能定量地估计其测试难易程度的一类方法,包括以下三方面的内容:〔1〕可控制性〔Controllability〕:通过电路的原始输入向电路中的某个节点赋规定值〔0或1〕难易程度的度量。〔2〕可观察性〔Observability〕:通过电路的输出了解电路中某个节点值的难易程度。〔3〕可测性〔testability〕:可控制性和可观察性的结合,是电路中故障检测难易程度的度量。可测性分析是对可控制性、可观察性和可测性的定量分析,其计算复杂度不应高于测试生成复杂性,否那么就失去了实际价值。此外,可测性分析的结果应具有足够的精确性,即通过可测性分析获得的结果,应能真实反映电路中故障检测的难易程度。目前存在多种可测性分析算法,如基于传递因子法的TEMS算法、CAMELOT算法;基于本钱分析法的TEST/80算法、SCOAP算法等;以及基于信号概率法的PREDICT算法、STAFAN算法等。

引发IC发生故障的原因千差万别,故障的形式多种多样。为了便于分析和判断故障,需要将故障的特征进行抽象和分类,将在某一层次呈现同样效果的故障归并成一类,并使用同一种描述方法,这种故障描述方式称为故障模型。故障模型应具备精确性和易处理性两个特点,以便准确地反映某一类故障对电路和系统的影响,并进行各种运算处理。按照系统构成的不同层次,可以建立不同层次的故障模型,如功能块故障模型、逻辑门级故障模型和晶体管级故障模型,其中逻辑门级故障是一类主要的故障,可分为以下几类:〔1〕固定故障〔Stuck-atFault〕:最常见的逻辑故障,指电路中某个信号线〔输入/输出〕的逻辑电平固定不变,可分为单固定故障和双固定故障。〔2〕桥接故障〔BridgingFault〕:两根或者多根信号线连接在一起而引起的电路发生的故障称为桥接故障。桥接故障有明显的规律性,即在搭线处实现线逻辑,正逻辑时实现的是线与功能,负逻辑时实现的是线或功能。〔3〕固定开路故障〔Stuck-openFault〕:是CMOS电路特有的一种故障,与固定故障不同,固定故障将故障门作为组合电路处理,而固定开路故障具有时序电路的特征。〔4〕时滞故障〔DelayFault〕:固定故障和桥接故障是一种静态故障,而时滞故障是一种动态故障,这种故障在低频时工作时正常,随着信号频率的提高,元件的延迟时间有可能超过规定的值,从而导致时序配合上的错误,使电路的功能出错,这种故障称为时滞故障。〔5〕冗余故障〔RoundanceFault〕:除了上述故障外,还有一类故障,要么它是不可激活的,要么是无法检测出来的,这类故障称为冗余故障。这种故障的特点是通常不影响电路的逻辑功能。故障模拟是测试生成中不可缺少的辅助工具,是指在输入矢量中插入故障,应用故障模拟算法,测试输入矢量的故障覆盖率。如果故障覆盖率到达要求,那么所用的输入矢量作为故障字典,供测试时使用。常用的故障模拟方法包括:〔1〕并行故障模拟:指计算机的字长有几位,那么充分利用计算机字长的每一位对几个输入组合并进行模拟,然后,根据电路的正常状态和故障状态的输出值,判断哪一组输入为测试该故障的测试码。〔2〕演绎故障模拟:对电路的故障进行演绎运算,求出可以测试故障的一种测试方法。演绎故障模拟法从电路原始输入端上的故障表开始演绎运算,直到求出该电路的原始输出端的故障表,一次就可以计算出该测试码能够检测的全部故障。这一过程可以利用故障表传播原理完成。〔3〕同时故障模拟:与演绎故障模拟的根本思想是一致的,都使用了故障表的传播,但在这一方法中,故障电路和正常电路同时处理,因此,称为同时故障模拟。在同时故障模拟中,用模拟代替了集合运算,从而减少了运算量。3.7.2可测性结构设计

测试码自动生成需要复杂的计算,在大规模IC中,往往包含有大量的时序电路和存放器,使得测试码生成问题更为复杂。因此,只在测试码生成方法上进行研究,不能适应IC技术的开展。采用可测性设计〔DFT:DesignforTest〕是一个积极而又具有良好前景的开展方向。所谓可测性设计,就是在IC设计阶段就考虑电路的可测性,使设计得到的系统容易被测试,容易找到测试码。可测性设计的主要目的不是FunctionalTesting,而是ManufacturingTesting,验证IC内部的电路结构是否有制造缺陷。采用可测性的设计方法可以给测试工作带来很多益处,如减少测试时间、简化测试过程和提高故障覆盖率等。在可测性设计中,应注意以下几个问题:〔1〕测试矢量尽可能少。〔2〕容易生成测试矢量。〔3〕测试码生成时间少。〔4〕对其它电路的影响最小。可测性设计的理论根底是可控制性和可观察性。对于测试而言,可控制性就是使得IC中各节点的电平值易于被外部信号控制,以便能够方便地对故障敏化。可观察性就是能够方便地从外部输出端口观察内部故障的情况。换言之,要使内部故障能够传播到输出端。对于时序电路来说,如果能够方便地控制和观察IC内部存储元件的状态,那么时序电路测试生成所面临的问题是处理组合电路,从而从根本上减轻测试生成的负担。目前主要采用四种方法:〔1〕专门测试设计专门测试设计〔Ad-hocTesting〕是针对某一特定电路对其进行修改,以便进行测试。常用方法包括大型时序电路的分块方法、增加测试点、参加多路选择器和提供状态复位等。一般地说,专门测试设计技术是设计者常年设计积累的设计技巧,对于解决复杂电路的测试是相当有效的。

〔2〕扫描测试技术扫描〔Scan〕测试技术是可测性设计的一种方法,可应用于任何规那么的IC,扫描设计能够提供较高质量的测试码,使测试设计过程自动化,并全面缩短测试运行时间。为了充分利用扫描设计技术的潜力,在设计时必须严格遵守可测性设计规那么。此外,扫描测试技术需要额外的硬件开销,即插入扫描存放器链。在扫描设计中,应用最广泛的是由IBM公司首创的电平敏感扫描设计,有两个根本原那么:第一,电路是电平敏感的,采用电平触发代替边沿触发,可以克服竞争问题;第二,所有的存放器都可以转变成移位存放器。在LSSD中,根本单元是移位存放锁存器〔SRL:ShiftRegisterLatch〕,即扫描存放器,在被测电路的周围插入扫描存放器,将这些存储单元连成扫描路径,形成一个扫描链〔ScanChain〕,改善IC内部电路测试工作的可控制性和可观察性,提高测试工作的效率。〔3〕内建自测试内建自测试〔BIST:Built-inself-test〕技术是指在芯片内部产生测试码,并对测试结果进行分析的测试技术。因此,内建自测试必须附加两个额外电路:鼓励生成器和响应分析器〔如图3-16所示〕。通常由伪随机序列发生器产生内测试码,并使用一个特征分析器观察输出信号。伪随机序列发生器是一个线性反响移位存放器〔LFSR:LinerFeedbackShiftRegister〕,按一个长度为N的生成多项式产生伪随机序列。嵌入式RAM存储器是最难测试的电路之一,因为存储器的测试通常要求大量的测试码来激活存储器,并将存储器的单元内容读出来与标准值进行比较。因此,存储器的测试通常采用BIST的结构。有的存储器BIST测试采用并行的方法来降低测试时间和测试消耗,并行的方法就是用单个的读操作或写操作来访问整行单元,对于一个N行N列的存储器测试时间就会降低N倍。〔4〕系统级测试技术边界扫描测试〔BoundaryScanTest〕技术是一种基于扫描测试方法的系统级测试技术,由于边界扫描测试结构依靠移位存放器实现,而这些移位存放器放置在IC元件边界的I/O引脚处,所以这种测试方法称为边界扫描测试。它是一种扩展的自治测试技术,在测试时不需要其它的测试设备。边界扫描测试有两大优点:〔1〕方便芯片的故障定位,迅速准确地测试两个芯片引脚的连接是否可靠,提高测试检验效率。〔2〕具有JTAG接口的芯片,内置一些预先定义好的功能模式,通过边界扫描通道来使芯片处于某个特定的功能模式,以提高系统控制的灵活性和方便系统设计。下面对JTAG接口做进一步详细的介绍。3.7.3JTAG接口

JTAG接口是数字系统中已经广泛使用的一种可测性设计方法,主要完成边界扫描测试功能,测试IC间的连通性、IC引脚间的连通性和内部模块逻辑功能,主要用于测试IC之间或PCB之间的连接是否存在故障,但同时也为IC本身测试提供了通路和手段。JTAG接口通过在芯片的每个I/O引脚附加一个边界扫描单元〔BSC:BoundaryScanCell〕以及一些附加的测试控制逻辑实现的,BSC主要是由边界扫描存放器组成的,将这些存储单元连成扫描路径,构成扫描链。这些边界扫描存放器位于外部引脚和内部逻辑之间,可以在状态控制器〔TAP〕的控制下,对外部引脚和内部逻辑采集或施加信号,从而完成对系统的测试〔如图3-17所示〕。每个I/O引脚都有一个BSC,每个BSC有两个数据通道:一个是测试数据通道,测试数据输入TDI〔TestDataInput〕、测试数据输出TDO〔TestDataOutput〕;另一个是正常数据通道,正常数据输入NDI〔NormalDataInput〕、正常数据输出NDO〔NormalDataOutput〕〔如图3-18所示〕。在正常工作状态,输入和输出数据可以自由通过每个BSC,正常工作数据从NDI进,从NDO出。在测试状态,可以选择数据流动的通道:对于输入的IC引脚,可以选择从NDI或从TDI输入数据;对于输出的IC引脚,可以选择从BSC输出数据至NDO,也可以选择从BSC输出数据至TDO。图3-19所示是边界扫描测试应用的示意图。为了测试两个JTAG设备的连接,首先将JTAG设备1某个输出测试脚的BSC置为高或低电平,输出至NDO,然后,让JTAG设备2的输入测试脚来捕获从引脚输入的NDI值,再通过测试数据通道将捕获到的数据输出至TDO,比照测试结果,即可快速准确的判断这两脚是否连接可靠。JTAG控制器的电路结构如图3-20所示,主要由四个局部组成:(1)测试存取口测试存取口〔TAP:TestAccessPort〕是边界扫描测试电路与外部的接口,包括以下5个控制信号:lTCK〔TestClock〕:边界扫描时钟,用于控制JTGA存放器和TAP控制器的时钟。lTMS〔TestModeSelect〕:JTAG测试模式选择,当该信号有效时,IC处于测试模式,否那么是正常工作模式。lTDI〔TestDataInput〕:串行边界扫描输入数据,JTAG指令和数据均由此输入。TAP控制器的状态及指令存放器的内容决定哪个存放器接受TDI的数据。在TCK的上升沿,TDI的数据装入存放器。lTDO〔TestDataOutput〕:串行边界扫描输出数据,输出存放器由TAP控制器的状态和指令存放器的内容确定。TDO在TCK的下降沿改变状态,并仅在数据输出时有效,其余时间TDO均是高阻态。lTRST〔TestReset〕:任选信号,JTAG测试逻辑复位,用于异步复位TAP控制器,低电平有效。当TRST输入为低电平时,芯片进入正常工作状态,JTAG测试逻辑无效。〔2〕TAP控制器TAP控制器〔TAPController〕是边界扫描测试核心控制器。在TCK和TMS的控制下,可以选择使用指令存放器扫描或数据存放器扫描,以及控制边界扫描测试的各个状态。TMS和TDI是在TCK的上跳沿被采样,TDO是在TCK的下降沿变化。TAP控制器的状态机如图3-21所示,TAP控制器的状态机只有6个稳定状态:测试逻辑复位〔test2logic2reset〕、测试/等待〔run2test/idle〕、数据存放器移位〔shift2DR〕、数据存放器移位暂停〔pause2DR〕、指令存放器移位〔shift2IR〕、指令存放器移位暂停〔pause2IR〕,其它状态都不是稳态,而只是暂态。在上电或IC的正常运行时,必须使TMS在最少持续5个TCK保持为高电平,那么TAP进入测试逻辑复位态。这时,TAP发出复位信号使所有的测试逻辑不影响IC的正常运行。假设需要进行边界扫描测试,可以在TMS与TCK的配合控制下,退出复位,进入边界扫描测试需要的各个状态。〔3〕指令存放器IEEE1149.1规定,指令存放器〔IR:InstructionRegister,包括指令译码器〕的长度至少为2比特,并且至少能对3条指令进行译码,包括:lBYPASS:一条移位存放器旁路指令,用1位存放器旁路芯片上所有的串行数据存放器。这个操作允许不经过串行扫描链上所有芯片内的移位存放器的逐级移位而进行某些特殊的芯片测试,BYPASS的硬指令是全0〔也有全1的〕。lEXTEST:外测试指令,机器码全1〔也有全0的〕,允许芯片外印刷线路板的测试。lSAMPLE/PRELOAD:采样或预装入指令,这条指令将边界扫描存放器置于数据存放器链中〔即边界扫描存放器与芯片的I/O引脚相连〕,并采样或预装入芯片I/O引脚上的信号。〔4〕数据存放器数据存放器〔DR:DataRegister〕用以存放测试数据〔如测试矢量〕和测试结果,由边界扫描存放器、内部数据存放器和1位旁路〔Bypass〕存放器组成。边界扫描存放器是一类特殊的数据存放器,其根本单元由双重边沿触发的触发器和两个多路选择器组成,可以执行移位操作,并可以和其它器件构成扫描链路。IEEE1149.1标准规定,必须具有的两个数据存放器是边界扫描存放器〔BoundaryScanRegister〕和旁路〔Bypass〕存放器,其它的存放器是任选的。由指令存放器选择某个特定的数据存放器作为边界扫描测试存放器,当一个扫描路径选定后,其它的路径处于高阻态。边界扫描存放器是由围绕IC引脚的一系列的边界扫描单元BSC组成的,正是由它来实现测试引脚信号的输入/输出;旁路存放器只由一个扫描存放器位组成,中选择了旁路存放器,TDI和TDO之间只有一位存放器,实际上没有执行边界扫描测试,旁路存放器的作用是为了缩短扫描路径而对不需要进行测试的IC进行旁路。虽然JTAG接口最初开发出来是为了监测IC和电路连接,但为了节约IC引脚资源,许多公司对这种串行接口的用途进行了扩展,主要包括:〔1〕CPLD和FPGAISP〔InSystemProgramming在系统可编程〕的支持目前,许多CPLD和FPGA厂家利用JTAG确定的四个引脚〔TDI、TDO、TMS、TCK〕的测试存取口〔TAP〕作为ISP开发接口,内部设计了支持ISP的控制电路,使CPLD和FPGA芯片编程也有标准可循,通过此接口将硬件网表“烧”到芯片里,如Xilinx公司的Virtex和Spatan系列的FPGA芯片。〔2〕嵌入式软件OCD〔On-ChipDebugging片上调试〕的支持许多CPU设计厂商〔如ARM公司的ARM系列CPU〕为将来调试嵌入式软件的方便,在CPU内部设计了EICE〔EmbeddedIn-CircuitEmulator嵌入式在线仿真器〕模块,利用JTAG的测试存取口〔TAP〕,提供OCD支持,用低端适配器就可以将JTAG接口和主工作站以及前端调试软件连接起来,不需要专门的程序以及额外的通信端口,这些接口在底层方面的操作差异较大,但是给用户软件调试提供了许多的便利。3.8可编程逻辑器件逻辑器件〔LogicDevice〕指能够完成数字布尔逻辑功能的器件〕,可分为两大类:固定逻辑器件和可编程逻辑器件〔PLD:ProgrammableLogicDevice〕。一如其名,固定逻辑器件中的电路是永久性的,它们完成一种或一组功能,一旦制造完成,就无法改变,如各种数字IC芯片。另一方面,可编程逻辑器件是能够为客户提供范围广泛的多种逻辑容量、特性、速度和电压参数的标准成品部件,而且此类器件可在任何时间改变,像软件编程一样灵活和方便,从而完成许多种不同的硬件功能。固定逻辑器件和PLD各有自己的优缺点,如:〔1〕固定逻辑设计更适合大批量应用,因为它们能够经济地大批量生产。对有些需要极高性能的应用,固定逻辑也是最正确的选择。〔2〕可编程逻辑器件提供了一些优于固定逻辑器件的重要优点,包括PLD在设计过程中为客户提供了更大的灵活性,因为对于PLD来说,设计反复只需要简单地改变编程文件就可以了,容易实现现场的产品增加新功能或者进行升级。同时,PLD不需要客户支付高昂的NRE本钱和购置昂贵的掩膜组,允许客户在需要时仅订购所需要的数量。〔3〕当前,许多IC设计公司将数字IC设计到Foundry厂家最终流片前,通常都会采用PLD〔如FPGA〕对IC设计进行最后的功能验证。集成电路技术的开展,尤其是VLSI技术的开展,为可编程逻辑器件的开展奠定了坚实的根底。从20世纪70年代末产生了第一代PLD,到现在的二十多年里,可编程逻辑器件经历了四个阶段,取得了长足的开展。可编程逻辑器件的最初出现,是为了用一种可以由用户再构造的器件取代品种繁多的中小规模逻辑电路。而今,可编程逻辑器件品种齐全,单片集成规模〔以用户可用门计〕从数百门到数兆门以上,器件的工作频率在50MHz以上,相当多的产品到达100MHz以上,可以实现从功能电路到SoC各种层次的电子系统,成为当今电子系统中一类广泛应用的微电子器件,也是SoC的一种低本钱的易行的设计实现手段。可编程逻辑器件的各种产品中,除早期的PLD用双极性工艺制造外,现今的PLD产品几乎无一例外地采用CMOS工艺制作。PLD最初是由PROM开展而来,以后CMOS技术的开展,E2PROM、FlashROM、SRAM以及反熔丝技术等取代早期的熔丝技术,成为PLD生产技术的主流。经过二十多年的开展,不但在结构上进行了重大改进,而且在工作速度、功耗和工艺等方面均有显著的改善。近年来,各主要PLD生产厂商竞相研发高密度可编程逻辑器件〔HDPLD:HighDensityProgrammableLogicDevice,单片集成度在1000个标准门以上〕,单片集成度由原来的数百门开展到数十万甚至数百万门,芯片引脚也由20~24个开展到400~1000个,有的公司推出内含处理器的PLD,以提供更强大的功能。目前,HDPLD的主要厂商集中在美国,比较著名的有Xilinx、Lattice、Actel、Altera、AMD和QuickLogic等。近年来,由于PLD技术的开展,尤其是HDPLD的迅速开展,其性能价格比大幅度提高,用这种器件来制作用户的专用电路,一旦编程“烧制”后,就是一种专用电路,是一种可编程的ASIC,显然可以大大地缩短试制周期,减少设计本钱。因此,PLD正在逐步取代ASIC的一些应用领域。

目前,可编程逻辑器件均采用CMOS技术制造,按其编程特性可分为以下三类:〔1〕一次编程反熔丝〔OTP〕。〔2〕可擦除、可编程逻辑器件EPLD,包括紫外线擦除和电擦除〔E2PLD〕。〔3〕基于静态存储器〔SRAM〕的编程结构。按其结构复杂度,可编程逻辑器件可分为以下三类〔1〕

SPLD一般将单片集成度在1K标准门以下的可编程逻辑器件称为SPLD〔SimplePLD简单PLD〕。SPLD由与阵列和或阵列组成,能有效地实现以“积之和”为形式的布尔逻辑函数。最初的PLD是PROM和PAL〔ProgrammableArrayLogic〕。PROM中与阵列固定,当输入变量为n时,与阵列的积项输出线为2n,而或阵列是可编程的。在许多逻辑应用场合中,并不需要每个变量均参与乘积项。为了组合逻辑的需要,创造了PAL器件。在PAL中,与阵列是可编程的,而或阵列是固定的。以后有的产品中,将与阵列和或阵列都设计成可编程的,这就是PLA〔ProgrammableLogicArray〕。后来,为使PAL能够适应更多的应用需求,又在PAL结构中参加了存放器,使其不但可以用做组合逻辑,也可用做时序逻辑。有些PAL的输出局部还参加了一些宏单元,可以灵活地变换正/负输出逻辑、存放器和三态输出等,这就是目前广泛应用的通用阵列逻辑器件〔GAL:GenericArrayLogic〕。一般地,人们将PROM、PAL和PLA统称为第一代PLD,真正用以制作ASIC的PLD是从PAL开始的,而将GAL称为第二代PLD。表3-2汇总了PROM、PAL、PLA和GAL的主要特点。〔2〕CPLDCPLD〔ComplexPLD复杂PLD〕的单片集成度在1K标准门以上,目前集成规模较高的产品已到达数万门以上,如Lattice的ISP3320达14000门、AMD的M5.512达20000门和Xilinx的XC95576达12800门,各半导体厂商还在努力研制集成规模更大的CPLD产品。通常,CPLD中含有大量触发器,规模大的电路有近千个触发器,规模小的CPLD也有数十个触发器,且I/O引脚相当多。如此巨大数量的I/O引脚和触发器,已不可能采用GAL中通用与阵列的形式连接I/O端。在CPLD结构中,广泛采用分块结构,将整个电路划分为假设干个功能块,每块中含有假设干个宏单元,每个宏单元含假设干个触发器,相邻的功能块之间相互连线。为了减少传送延迟,又放入了一个全局互联矩阵,提供各功能块之间的信号传送。新近推出的CPLD,都采用了ISP〔InSystemProgramming在系统编程〕技术。1992年,Lattice首先推出了ISP技术,突破了传统PLD的应用限制,使得ISPPLD器件可以在PCB板上设计、编程和制造,从而使得电子系统的硬件具有了“柔性”,可以像软件一样反复修改和设计。ISPPLD是第四代PLD,是当前CPLD的主流技术。目前,ISP技术不仅在PLD中得到广泛应用,而且推广到微控制器领域中。〔3〕FPGAFPGA〔FieldProgrammableGateArray现场可编程门阵列〕,又称为逻辑单元阵列〔LCA:LogicCellArray〕,于1984年由Xilinx公司推出。Xilinx公司的FPGA是一种基于SRAM的可编程器件,以后Actel公司推出了一次编程的反熔丝结构的FPGA。目前,FPGA还在继续开展中,同其它PLD相比,FPGA由大量的逻辑单元和开关矩阵组成,克服了CPLD器件由“与—或”逻辑结构和内部互连的严格限制,以及所含触发器和I/O引脚的限制。FPGA内部不仅具有可编程的I/O模块和逻辑功能块,而且由于开关矩阵实现的内部互连资源可编程,因此,具有更大的设计灵活性。但FPGA的时延性能与布局布线有关,一个设计完成后其时延性能无法预测,需要设计实现后加以验证,这与其它PLD不同〔其它PLD的时延性能是可预测的〕。目前,FPGA的集成规模已达数百万门,甚至上千万门,如Xilinx公司的XC3S5000FPGA达5M标准门。3.9IC的制造过程

集成电路的生产制造工艺复杂,整个生产过程要经过几十道加工程序。经过几十年的开展,微电子加工工艺已臻成熟,作为IC设计人员的主要任务是利用成熟的生产工艺,开发和设计各种不同用途的集成电路,但了解一些生产工艺方面的知识,对设计是有帮助的,尤其是模拟IC和射频IC设计。集成电路按其制造工艺不同,可分为双极性工艺〔包括TTL、ECL和I2L〕、PMOS工艺、NMOS工艺和CMOS工艺。由于双极性晶体管功耗较大,难以大规模集成,因此,双极性工艺主要用于中小规模集成电路的制造。PMOS工艺比较简单,成品率高,是最早获得实用的MOS工艺。但是,PMOS电路的工作速度慢,需要使用负电源,输出电平为负,难以和TTL电路连接,现在已很少使用。NMOS工艺全部采用N沟道MOS管,功耗低,工作速度较高,曾经是大规模集成电路和超大规模集成的主要制造工艺。20世纪80年代,由于高速CMOS工艺的开展,取代了NMOS的地位,成为大规模和超大规模集成电路的主要生产工艺。CMOS工艺采用互补的P沟道和N沟道MOS晶体管,是所有半导体制造工艺中功耗最小的,十分有利于大规模集成。CMOS工艺比较复杂,早期的CMOS产品工作速度比较低,其原因是MOS管中存在着一些寄生电容。为了提高CMOS器件的工作速度,出现了一种高密度短沟道CMOS〔即HMOS〕工艺,大大减少MOS管内的寄生电容。理论分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论