一种提升高性能集成电路产出的速度分级优化结构及方法与流程

文档序号:12599185阅读:450来源:国知局
一种提升高性能集成电路产出的速度分级优化结构及方法与流程

本发明涉及一种集成电路芯片速度分级优化结构及优化方法,更确切的说,是一种适用于在集成电路芯片速度分级过程中提升高性能集成电路芯片产出的速度分级优化结构及其进行优化的方法。



背景技术:

集成电路(integrated circuit)是一种微型电子器件或部件。它是经过氧化、光刻、扩散、外延、蒸铝等半导体制造工艺,把构成具有一定功能的电路所需的半导体、电阻、电容等元件及它们之间的连接导线全部集成在一小块硅片上,然后焊接封装在一个管壳内的电子器件;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗、智能化和高可靠性方面迈进了一大步。集成电路具有体积小,重量轻,引出线和焊接点少,寿命长,可靠性高,性能好等优点,同时成本低,便于大规模生产。集成电路按其功能、结构的不同,可以分为模拟集成电路、数字集成电路和数/模混合集成电路三大类。

随着集成电路制造工艺的不断进步,集成电路内部的晶体管尺寸越来越小,目前已经有7nm制程的集成电路诞生。晶体管尺寸的降低,意味着单位面积的芯片上可以集成更多的晶体管,同时也造成晶体管的阈值电压不断下降,即其功耗也在不断的降低。然而,由于晶体管的尺寸的减小,其制造工艺误差也越来越难以控制,尤其是在45nm制程以下,工艺误差尤为明显,已成为影响集成电路性能的一个主要因素。

工艺误差主要对晶体管的阈值电压、门的长度、宽度和氧化层的厚度造成影响,在性能上主要体现为晶体管的时延会随着工艺误差的大小发生波动[1]。因为这些波动,集成电路内部的某些路径的时延也会随之发生变化,与预期设计发生偏差。如原设计集成电路的工作时钟为20ns,芯片中时延最长的路径的时延为19ns,但是由于工艺误差的影响,对于不同批次的集成电路,这条路径的时延可能是21ns,也可能是15ns,这样该集成电路工作时钟就可能是20ns以上,或者20ns以下,也就意味着同一种集成电路不同个体其运行最大运行速度是不一致的。

为了更好的发挥集成电路的性能,同时提升生产厂商的利润,通常集成电路(如:微控制器,DSP,微处理器,甚至是ASIC)按照运行速度的快慢被分为若干的等级,称为速度分级(Speed Binning),例如,Altera的FPGA器件一般有6、7、8,三个速度等级。处于较高速度等级的集成电路,相较低速度等级而言,一般可以使生产厂商获得更多的利润。例如,最快的Intel Prescott和AMD64 Venice的价格是最慢的芯片的3倍左右。也就是说,在同一批次中,处于高速度等级的集成电路的比例越高,生产厂商可获取的利润越高。

因此,高效准确的对集成电路进行速度分级测试,保证没有高速度等级的集成电路被划分到低等级之中,以尽量提升高速度等级集成电路所占的比例是十分重要的。

经过对现有的技术文献进行检索发现,国内外对于集成电路速度分级的研究集中在如何高效、准确、低成本的完成速度分级,主要依靠最大工作频率测试(Fmax test)。通常。经过对现有的技术文献进行检索发现,最大工作频率测试可以分为基于功能的测试、基于结构的测试(基于扫描链路)和基于集成电路内部传感器的测试。2006年Gong M等人在Computer-Aided Design of Integrated Circuits and Systems,IEEE Transactions(计算机辅助设计集成电路和系统)发表了“Binning Optimization for Transparently-Latched Circuits(透明锁存电路的速度分级优化)”,其中提到基于功能的最大工作频率测试一般是通过不断增加集成电路的工作频率,测试其工作状态,直到芯片无法正常工作,以此获取芯片的最大工作频率。ParthBorda等人于2014年在IJRET:International Journal of Research in Engineering and Technology(国际工程和技术研究期刊)上发表了“LOC,LOS And LOEs At-Speed Testing Methodologies For Automatic Test Pattern Generation Using Transition Delay Fault Model(LOC,LOS和LOE速度测试方法利用翻转延时故障模型来产生自动测试向量)”,展示了利用集成电路中的扫描链路来进行最大频率测试的方法。在集成电路中,某些时延很长的路径一般决定其所处的速度等级,称这些路径为关键路径。近年来,通过芯片内部可以直接测量路径或者振荡环时延的传感器,辅助进行速度分级测试逐渐开始流行起来。2009年WangXiaoxiao等人在International Test Conference(国际测试会议)上发表了“A novel architecture for on-chip path delay measurement(一种新型的芯片内部路径时延测量结构)”,提出了使用集成电路内部的结构来测量其中的关键路径的时延,以此判断集成电路的速度等级的方法。上述这些方法都集中于有效的进行速度分级,并不能将原来处于较低速度等级的集成电路提升到更高的速度等级,从而提升高性能集成电路的产出。

集成电路的速度等级一般由某些关键路径决定。所谓关键路径,指的是集成电路中路径时延较大,接近所设计的系统时钟周期的路径。在集成电路制造过程中关键路径更容易受到工艺误差的影响,从而使得这些路径的时延超过预先设计的系统时钟周期,造成某些集成电路无法在预设时钟周期下工作,这些集成电路在速度分级测试中就被划分到了较低的速度等级。

高性能的集成电路即同一种集成电路中处于更高速度等级的集成电路,这些集成电路能够在更高的频率下工作,运算速度相比其他的集成电路更快。



技术实现要素:

本发明设计了一种提升高性能集成电路芯片产出的速度分级优化结构,该结构内嵌在集成电路中,能够在集成电路速度分级测试过程中将一部分处于较低速度等级的集成电路提升到更高的速度等级,从而提升高性能集成电路所占的比例,提升生产厂商的利润。

所述的集成电路芯片包含N条关键路径,关键路径A、关键路径B、……及关键路径N,它们共同构成一个关键路径集合{A,B...N},即这N条路径的时延决定了集成电路的速度等级。

本发明所设计的集成电路速度分级优化结构,其特征在于:

集成电路速度分级优化结构由N个单条路径速度分级优化结构组成,在上述的N条关键路径中每条路径都插入一个单条路径速度分级优化结构。

针对集成电路中第A条关键路径插入的单条路径速度分级优化结构标记为第一个单条路径速度分级优化结构(2A);

针对集成电路中第B条关键路径插入的单条路径速度分级优化结构标记为第二个单条路径速度分级优化结构(2B);

针对集成电路中第N条关键路径插入的单条路径速度分级优化结构标记为第N个单条路径速度分级优化结构(2N);

所述的单条路径速度分级优化结构(2A、2B、……和2N)结构是相同的,所有的单条路径速度分级优化结构共同构成集成电路芯片内部的速度分级优化结构。

单条路径速度分级优化结构由速度分级检测模块(20A)、速度分级调节模块(20B)和1比特(bit)的Flash存储空间(20C)组成。

速度分级检测模块(20A)检测所插入的关键路径的时延是否超过当前系统工作的时钟周期1/Fi,即所监测的关键路径是否在当前测试频率Fi下失效(Fi为速度等级i和速度等级i-1之间测频率分界点,且速度等级i-1为速度等级i的更高一级);若速度分级检测模块(20A)检测所插入的关键路径在Fi下失效,则速度分级检测模块(20A)同时估测此失效的路径能否通过速度分级调节模块的调节,提升到速度等级i-1。若上述两个条件都被得到满足,即检测到某条关键路径在频率Fi下失效,且调整后能正常工作,则速度分级检测模块(20A)输出的调节信号(Adapt_EN)变为高电平。

速度分级调节模块(20B)是用来调节速度分级检测模块所定位到的在频率Fi下失效的关键路径,使其能够在Fi下正常工作。即当速度分级调节模块(20B)接收到插入到同一关键路径上的速度分级检测模块输出的高电平时,就启动对所插入关键路径的调节,使其能够在频率Fi下正常工作。

1比特(bit)的Flash存储空间(20C)用来存储速度分级检测模块检测(20A)的输出,速度分级调节模块直接从Flash中读取调节信号(Adapt_EN)的值,以永久的将集成电路定位在提升之后的速度等级内,防止复位或者重新上电之后调节失效。

如图6所示,本发明所提出的集成电路芯片内部速度分级优化结构对集成电路速度等级的提升过程包含以下步骤:

本发明优化方法包括如下步骤:

步骤1,选择关键路径:通过静态时序分析确定可调节范围S0的取值,取值的准则是使单条路径速度分级优化结构可调节能力最大同时不影响关键路径以外路径的正常运行;S0为关键路径时序的可调节区域;

步骤2,集成电路速度分级优化结构的插入:单条路径速度分级优化结构被插入到步骤1所选择出来的关键路径中,通过用速度分级调节模块(20B)所需要的门替换时钟树上原有的缓冲器,可以使得整个插入过程对已经收敛的时序不产生影响;

步骤3,在频率分界(Fi)下对集成电路芯片进行测试:将已经制造出来的芯片在频率分界(Fi)下进行测试,使用基于功能的测试、基于电路结构的测试或者基于芯片内部传感器的测试;在测试过程中,通过调节恢复正常工作的关键路径被速度分级检测模块定位;

步骤4,获得原始的速度分级结果:如果被测试的集成电路芯片通过了在频率分界(Fi)下的测试,则逐步提升测试频率,直到达到最大的工作频率。但是,如果芯片在某一频率下失效,则速度分级检测模块定位通过调节恢复正常工作的关键路径;

步骤5,进行速度分级优化:速度分级检测模块(20A)输出的调节信号Adapt_EN被存储到非易失性的存储器,Flash中,同时速度分级调节模块(20B)根据Adapt_EN信号判断是否进行调节;在步骤4中定位到的关键路径被调节;

步骤6,在频率分界(Fi)下重新进行测试:被测试集成电路在频率分界(Fi)下重新进行测试;

步骤7,重新划分被测集成电路芯片的速度等级:若所有造成芯片失效的路径都被成功调节,那么该芯片可以通过测试,并被放置到更高的速度等级,成为高性能的芯片。但是,如果芯片未能通过这一测试,则Flash中的数据都将被清空,以保证芯片在已通过的速度等级下仍然能够正常工作。

步骤8:决定速度等级并计算速度分级优化率(Yield Optimization Rate):检测被测集成电路芯片的速度等级是否能通过重新测试,如步骤6所示,通过比较在步骤3和步骤6中不同速度等级芯片数量的分布,计算得到速度分级优化率。

步骤9:标定芯片的速度等级以及工作频率:考虑到芯片的老化以及各种噪声(电磁噪声、电源噪声等),芯片实际出厂的频率和测试频率应当有所区别。根据自身的标定公式以及测试频率,对芯片的工作频率进行标定。

本发明设计的集成电路速度分级优化结构的优点在于:

①所提出的结构通过将原先处在低速度等级的芯片提升到高速度等级,提升速度分级中高性能芯片的产出,并增加整体利润。

②所提出的结构可以和其他的基于功能、结构或者芯片内部传感器的速度分级测试无缝对接,不会增加额外的测试成本。

③所提出的结构是全数字的,对原来的系统的功能没有影响,同时对原来的设计和测试流程产生的影响很小。

附图说明

图1是本发明设计的集成电路速度分级优化结构的总体示意图。

图2是本发明单条路径速度分级优化结构中各子模块以及其与关键路径连接的示意图。

图3A是关键路径未失效时速度分级检测模块(20A)及关键路径上的某些信号变化的示意图。

图3B是关键路径失效但可调节时速度分级检测模块(20A)及关键路径上的某些信号变化的示意图。

图3C是关键路径未失效但输出产生扰动时速度分级检测模块(20A)及关键路径上的某些信号变化的示意图。

图3D是关键路径失效且不可调节时速度分级检测模块(20A)及关键路径上的某些信号变化的示意图。

图4是关键路径在速度分级调节模块(20B)的调节下从上游路径借取富余时间的时序示意图。

图4A是关键路径的上游路径有充足的富余时间时速度分级调节模块(20B)的插入情况示意图。

图4B是关键路径的上游路径无充足的富余时间时速度分级调节模块(20B)的插入情况示意图。

图5是集成电路芯片中某些时延接近频率分界(Fi)的路径在工艺误差的影响下的时延概率密度分布示意图。

图6是本发明所提出的集成电路芯片内部速度分级优化结构对集成电路速度等级的优化过程。

图7是单条路径速度分级优化结构对某条关键路径进行速度等级优化的波形图。

图8是集成电路速度分级优化结构对某一b19芯片进行速度分级优化前后其中路径的富余时间分布图。

图9是集成电路速度分级优化结构对于测试电路b19,在调节前后b19处于不同速度等级的集成电路芯片数目示意图。

具体实施方式

下面将结合附图和实施例对本发明做进一步的详细说明。

参见图1所示,本发明所设计的集成电路速度分级优化结构由N个单条路径速度分级优化结构(2A、2B、……和2N)组成,均可内嵌在现有集成电路芯片上。

对于集成电路的编程控制采用了Synopsys公司的Design Compiler2014,Primetime2014,ICCompiler2014和Hspice2014软件。Design Compiler是Synopsys的逻辑综合优化工具,可以把硬件描述语言(HDL)描述的电路综合为跟工艺相关的、门级电路。并且根据用户的设计要求,在时序和面积,时序和功耗上取得最佳的效果。它可以接受多种输入格式,如硬件描述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高读者设计性能。PrimeTime是Synopsys的静态时序分析软件,常被用来分析大规模、同步、数字ASIC。IC Compiler是Synopsys下一代布局布线系统,通过将物理综合扩展到整个布局和布线过程以及签核驱动的设计收敛,来保证卓越的质量并缩短设计时间。上一代解决方案由于布局、时钟树和布线独立运行,有其局限性。IC Compiler的扩展物理综合(XPS)技术突破了这一局限,将物理综合扩展到了整个布局和布线过程。IC Compiler采用基于TCL的统一架构,实现了创新并利用了Synopsys的若干最为优秀的核心技术。作为一套完整的布局布线设计系统,它包括了实现下一代设计所必需的一切功能,如物理综合、布局、布线、时序、信号完整性(SI)优化、低功耗、可测性设计(DFT)和良率优化。HSPICE是Synopsys公司为集成电路设计中的稳态分析,瞬态分析和频域分析等电路性能的模拟分析而开发的一个商业化通用电路模拟程序。它相较于伯克利的SPICE(Simulation Program with IC Emphasis)软件,MicroSim公司的PSPICE以及其它电路分析软件,又加入了一些新的功能,经过不断的改进,目前已被许多公司、大学和研究开发机构广泛应用。

参见图2所示,单条路径速度分级优化结构(2A、2B、……和2N)通过速度分级检测模块(20A)定位频率边界Fi下失效且可调节的关键路径,速度分级调节模块(20B)调节速度分级检测模块(20A)定位到的关键路径,1比特(bit)的Flash存储空间(20C)存储速度分级检测模块(20A)输出的调节信号保证调节始终成立。从而使得单条失效的路径经过调节能够在更高的频率下工作,当某个集成电路中所有失效的关键路径都被成功调节后,该集成电路就被提升到了更高一级的速度等级。本发明设计的集成电路速度分级优化结构结构简单,易于集成到已有的集成电路设计中,可和现有的速度分级测试方法想结合,对集成电路影响较小,可以一定程度上提升高性能集成电路的产出。

(一)集成电路中的关键路径

集成电路的速度等级一般由某些关键路径决定。由于工艺误差和各种噪声的影响,不同的电路的关键路径在特定速度等级边界(Binning Boundary,即相邻两个速度等级的分界频率)的失效情况各不相同,但服从一定的统计规律。因此,如果要提升集成电路的速度等级,就需要精确地定位并调节那些在频率边界上失效的关键路径。本发明主要围绕这一问题进行研究。

(二)集成电路速度分级优化结构:

参见图1所示,集成电路中有N条关键路径,如关键路径A、关键路径B……关键路径N,即关键路径集合{A,B...N}。在图1中则将关键路径A标记为1A、关键路径B标记为1B……关键路径N标记为1N。

在本发明中,参见图1所示,由于一个集成电路上有N条关键路径,则与之匹配的单条路径速度分级优化结构也有N个。即针对关键路径A插入的单条路径速度分级优化结构标记为第一个单条路径速度分级优化结构2A;针对关键路径B插入的单条路径速度分级优化结构标记为第一个单条路径速度分级优化结构2B;针对关键路径N插入的单条路径速度分级优化结构标记为第一个单条路径速度分级优化结构2N。每个单条路径速度分级优化结构的结构是相同的。这N个单条路径速度分级优化结构共同组成集成电路速度分级优化结构。

(三)任意一个单条路径速度分级优化结构

本发明设计的单条路径速度分级优化结构由速度分级检测模块(20A)、速度分级调节模块(20B)和1比特(bit)的Flash存储空间(20C)组成。

其中速度分级检测模块(20A)定位在频率边界Fi下失效且可调节的关键路径,速度分级调节模块(20B)调节速度分级检测模块(20A)定位到的关键路径,1比特(bit)的Flash存储空间(20C)存储速度分级检测模块(20A)输出的调节信号保证调节始终成立。从而使得单条失效的关键路径经过调节能够在更高的频率下工作,

速度分级检测模块(20A)

如图2所示,速度分级检测模块(20A)被插入到关键路径1X(X∈{A,B...N})的末端,并检测其输出。驱动关键路径的时钟频率为Fi。设速度分级调节模块(20B)对关键路径时序的可调节区域为S0,即图中缓冲器BUFF0的时延关键路径的输出(Data节点)直接连接到异或门XOR0的一个输入端口,并通过一个缓冲器BUFF0连接到异或门XOR0的另一个输入端口。这样,如果Data节点在S0这段时间内发生翻转(由高电平变为低电平,或者由低电平变为高电平),则门的输出变为“1”。在触发器2和之前的或门OR0构成一个“固化”装置,即如果触发器2的输出变为“1”,则其输出会持续为“1”,直到触发器2被复位。在速度分级之前,触发器2需要被复位为“0”。缓冲器BUFF1是由若干缓冲器构成。缓冲器BUFF1的时延等于缓冲器BUFF0、异或门XOR0和与门OR0总的时延,即:其作用为抵消缓冲器BUFF0、异或门XOR0和与门OR0在时延方面的影响,如此,触发器2就可以检测系统时钟采样之后的S0时间段。如若关键路径的输出(Data)在系统时钟采样后S0时间段发生翻转,则速度分级检测模块(20A)输出的调节信号(Adapt_EN)就变为“1”,即表明:

1.所检测的关键路径的时延比1/Fi长,该路径在频率Fi下无法正常工作;

2.所检测的关键路径的时延与系统时钟周期的差小于等于S0

为了能够让失效的关键路径在频率Fi下正常工作,在速度分级检测模块(20A)中的缓冲器BUFF0的时延应当与速度分级调节模块(20B)中的缓冲器BUFF2的时延相等,

图3A、3B、3C和3D展示了,关键路径1X(X∈{A,B...N})的捕获触发器的输入即关键路径的输出(Data)和时钟(CLK)的时序关系的四种可能,以及附加在关键路径上的速度分级调节模块在这四种条件下对应的输出。图3A中,Data的翻转在CLK捕获(上升沿捕获)之前,该路径没有失效,故速度分级检测模块(20A)输出的调节信号Adapt_EN的保持为低电平,标记为“0”;图3B中,Data在CLK捕获之后S0之内发生翻转并维持不变,即该路径失效但是在可调节范围之内,故速度分级检测模块(20A)输出的调节信号Adapt_EN变为高电平,标记为“1”;图3C中,Data的输出在CLK捕获之后产生短时间的扰动,但是在S0末端恢复原来的值,则判定此翻转为扰动,路径并未失效,速度分级检测模块(20A)输出的调节信号Adapt_EN仍然保持为低电平,即“0”;图3D中,Data在CLK捕获之后、也在S0之后发生翻转,则虽然该路径失效,但是并不在可调节范围之内,速度分级检测模块(20A)输出的调节信号Adapt_EN仍然维持低电平,即“0”。

速度分级调节模块20B

如图2所示,速度分级调节模块(20B)被插入到所选中的关键路径1X(X∈{A,B...N})的启动触发器0处,其作用是在调节状态下将启动触发器的时钟上升沿前移,以使关键路径的时钟周期得到延长,这样该关键路径的信号就有更多的时间进行传输。换言之,速度分级调节模块在调节模式下,可以从关键路径的上游路径借取多余的空闲时间给关键路径。速度分级调节模块中的多路选择器(MUX0)被插入到原先的启动触发器0(FF0)的时钟网络末端。为了降低插入多路选择器(MUX0)对原来收敛的时钟域产生影响,应当移除原先时钟树上的部分缓冲器。

如图2所示,时钟(CLK)穿过速度分级调节模块有两条可用路径,即:时序收敛的路径和调节之后的路径。显然,对于关键路径而言,时钟通过调节之后的路径的时钟周期比原先时序收敛的路径的时钟周期长S0。速度分级调节模块中的多路选择器(MUX0)由插入到同一条路径的速度分级检测模块(20A)输出的调节信号Adapt_EN进行控制。当速度分级检测模块(20A)发出调节信号后(即Adapt_EN为“1”),则时钟通过调节之后的路径穿过速度分级调节模块,使得关键路径的时钟周期延长。这样,关键路径就可以在频率边界Fi下正常工作。与此同时,Adapt_EN的值被写入Flash存储器(20C)中,以保证在复位或者重新上电之后,调节仍然起作用。

图4为关键路径在速度分级调节模块(20B)的调节下从上游路径借取富余时间的时序示意图。为了使上游路径在借出富余时间S0后仍然能够正常工作,需要保证上游路径的富余时间大于S0。这样,在速度分级调节模块调节时序之后,上游路径和关键路径都能够在频率边界Fi下正常工作。需要注意的是,这一条件并不是总能够得到满足。如图4A所示,如果上游路径的富余时间大于S0,则只需要插入一个速度分级调节模块;但是,如果上游路径的时序也较为紧张,无法满足上述条件,则需要插入两个速度分级调节模块从更加上游的路径借取时间,如图4B所示,一个速度分级调节模块借给关键路径的上游路径(P2)S0,保证P2有充足的富余时间可以借给关键路径,另一个速度分级调节模块将S0借给关键路径(1X)。若路径P3和P2的富余时间均小于S0,则需要考虑减小S0的值。

需要注意的是,有不止一条上游路径终止于图2的启动触发器0,因此,需要保证关键路径的上游路径中最长的一条的富余时间大于S0

1比特(bit)的Flash存储空间(20C)

如图2所示,为了永久的将芯片定位在提升之后的速度等级内,防止复位或者重新上电之后调节失效,必须要把速度分级检测模块(20A)输出的调节信号Adapt_EN的值存储在非易失性的存储器中,如Flash。Flash需要能够被片上系统(System on Chip,SoC)直接访问。每一个单条路径速度分级优化结构需要1比特(bit)的Flash存储空间(20C)。这样,速度分级调节模块(20B)可以直接从该1比特(bit)的Flash存储空间(20C)中读取处于同一单条路径速度分级优化结构中的调节信号(Adapt_EN)的值。需要注意的是,所使用的Flash只能在速度分级优化的过程中进行写入,即在这之后,速度分级检测模块(20A)就无法通过Flash间接控制速度分级调节模块(20B)。

(四)集成电路速度分级优化结构的限制和高性能集成电路产出提升比率的估测

需要说明的是本发明所提出的集成电路速度分级优化结构,并不能使所有的处在较低速度等级的芯片都提升到高一等级。图5展示了在集成电路中某些时延接近频率分界(Fi)的路径在工艺误差的影响下的时延概率密度分布示意图,每一条曲线都代表一条路径时延的分布概率。也就是说,这些路径都有一定的概率分布在频率分界(Fi)的左侧(即在频率分界(Fi)下失效)。其中,有一些路径的几乎总是落在频率分界(Fi)右侧,即这些路径导致整个芯片在频率分界(Fi)下失效的概率很小(有一条路径在下失效,则整个芯片就在频率分界(Fi)下失效)。还有一些路径,其落在频率分界线左侧的概率则不容忽视,意味着这些路径很可能造成整个芯片失效。图中蓝色阴影代表这些路径是被选中的关键路径。由上述可知,存在两种情况,使得失效的芯片经过本系统的调节仍然不能在频率分界(Fi)下正常工作:

情况一:一个处于较低速度等级(速度等级i)的芯片能够被提升到更高一级(速度等级i-1),必须要求所有的失效路径都被成功的调节。然而,由于关键路径的选取可能无法覆盖所有可能导致芯片失效的路径,如果在某芯片上存在某一条未选择的路径,其时延超过1/Fi,如图5所示的Path1,则该芯片无法被提升到速度等级i-1;

情况二:即使所有的可能导致芯片失效的路径都被选择为关键路径且插入单条路径速度分级优化结构。若关键路径的时间裕度小于-S0,如图5中的Path2所示,即某些失效的关键路径超出了可调节范围,则所在的芯片仍然无法被提升到更高的速度等级。

我们定义速度分级优化率(Yield Optimization Rate)作为将某一芯片成功提升到更高等级的概率,即某一批集成电路芯片中被提升到更高速度等级的集成电路所占总体的比例,如若所制造的集成电路芯片被分为3个速度等级,速度等级一、速度等级二和速度等级三,其中速度等级1为最快的即性能最好的一个等级,速度等级二次之,若经过速度分级优化,有a个集成电路芯片被由速度等级三提升到速度等级二,有b个集成电路芯片被由速度等级二提升到速度等级一,共有z个集成电路芯片,则此次速度分级优化率为速度分级优化率理论值的计算方法如下公式所示:

<mrow> <mi>Y</mi> <mi>i</mi> <mi>e</mi> <mi>l</mi> <mi>d</mi> <mo>_</mo> <mi>O</mi> <mi>p</mi> <mi>t</mi> <mi>i</mi> <mi>m</mi> <mi>i</mi> <mi>z</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> <mi>n</mi> <mo>_</mo> <mi>R</mi> <mi>a</mi> <mi>t</mi> <mi>e</mi> <mo>=</mo> <munderover> <mo>&Pi;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msubsup> <mo>&Integral;</mo> <mn>0</mn> <mrow> <mo>+</mo> <mi>&infin;</mi> </mrow> </msubsup> <mi>p</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> <mo>&CenterDot;</mo> <munderover> <mo>&Pi;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msubsup> <mo>&Integral;</mo> <mrow> <mo>-</mo> <msub> <mi>S</mi> <mn>0</mn> </msub> </mrow> <mn>0</mn> </msubsup> <mi>p</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> </mrow>

其中m是有一定概率落在频率分界(Fi)右侧,但没有被选中插入所设计结构的路径的数目,即如情况一阐述;n是被选中的关键路径,但是有一定概率时延太大以至于无法调节的路径数目,即如情况二所阐述。p(t)为对应路径在不同时延区域的概率密度。n是由制造不确定性所决定的,在设计阶段很难得到控制。因此,降低m并调节S0是提升速度分级优化率最佳的方式,这一部分内容将在下文详细说明。

需要注意的是工艺误差也会影响速度分级调节模块和速度分级检测模块,主要包括:

i)速度分级检测模块所能检测的范围

ii)速度分级调节模块所能调节的范围

i)和ii)应当是相同的,均为S0。然而工艺误差可能使得i)和ii)与有一定的偏差。根据生产厂商的数据库显示,应当使用制造不确定性最小的单元来搭建速度分级检测模块和速度分级调节模块,以降低工艺误差的影响。

(四)本发明进行速度分级优化包括有下列步骤:

如图6所示,本发明所提出的集成电路芯片内部速度分级优化结构对集成电路速度等级的提升过程包含以下步骤:

步骤1,选择关键路径。关键路径的集合的大小受到其所占面积的约束。但是,为了使速度分级优化率(Yield Optimization Rate)达到最大,关键路径的集合应当包含引起速度分级失效概率最大的路径。因此,在所设计的芯片的版图生成且时序收敛之后,需要对版图进行静态时序分析(Statistical Timing Analysis,SSTA)以及蒙特卡洛分析(Monte Carlo analysis),选择引起集成电路在某一速度等级失效概率最大的路径作为关键路径,在保证关键路径覆盖率的同时,降低冗余关键路径的选择。在这一步骤中,通过静态时序分析可以确定可调节范围S0的取值,其取值的准则是使单条路径速度分级优化结构可调节能力最大同时不影响关键路径以外路径的正常运行。

步骤2,集成电路速度分级优化结构的插入。单条路径速度分级优化结构在这一步中被插入到步骤1所选择出来的关键路径中,即相当于整个集成电路速度分级优化结构插入到原有的集成电路设计中。如上文所讨论,通过用速度分级调节模块(20B)所需要的门替换时钟树上原有的缓冲器,可以使得整个插入过程对已经收敛的时序基本不产生影响。同时,由于速度分级检测模块(20A)和速度分级调节模块(20B)的面积很小,也就使得整个调节结构在芯片中所占的面积很小。

步骤3,在频率分界(Fi)下对集成电路芯片进行测试。在这一步骤中,已经制造出来的芯片在频率分界(Fi)也就是速度等级边界下进行测试,可使用基于功能的测试、基于电路结构的测试或者基于芯片内部传感器的测试,以方便分级。在测试过程中,可通过调节恢复正常工作的关键路径被速度分级检测模块定位。

步骤4,获得原始的速度分级结果。在这一步骤中,如果被测试的集成电路芯片通过了在频率分界(Fi)下的测试,则可以逐步提升测试频率,直到达到最大的工作频率。但是,如果芯片在某一频率下失效,则速度分级检测模块定位可通过调节恢复正常工作的关键路径。

步骤5,进行速度分级优化。在此步骤中,速度分级检测模块(20A)输出的调节信号Adapt_EN被存储到非易失性的存储器,Flash中。同时速度分级调节模块(20B)根据Adapt_EN信号进行相应的判断(是否进行调节)。在步骤4中定位到的关键路径被调节。

步骤6,在频率分界(Fi)下重新进行测试。被测试集成电路在频率分界(Fi)下重新进行测试。

步骤7,重新划分被测集成电路芯片的速度等级。若所有造成芯片失效的路径都被成功调节,那么该芯片可以通过测试,并被放置到更高的速度等级,也就是说有一部分原先处于较低速度等级的芯片被提升到了高速度等级,成为了高性能的芯片。但是,如果芯片未能通过这一测试,则Flash中的数据都将被清空,以保证芯片在已通过的速度等级下仍然能够正常工作。

步骤8:决定速度等级并计算速度分级优化率(Yield Optimization Rate)。被测集成电路芯片的速度等级可以根据其能否通过重新测试,如步骤6所示。通过比较在步骤3和步骤6中不同速度等级芯片数量的分布,可以计算得到速度分级优化率。

步骤9:标定芯片的速度等级以及工作频率。考虑到芯片的老化以及各种噪声(电磁噪声、电源噪声等),芯片实际出厂的频率和测试频率应当有所区别。生产厂商根据自身的标定公式以及测试频率,对芯片的工作频率进行标定。

如上文所述,本发明所提出的速度分级优化的流程可以在被集成到其他的最大工作频率测试中,在测试最大工作频率的同时完成集成电路芯片的速度分级优化。

实施例1

应用本发明设计的集成电路芯片内部的速度分级优化结构进行测试:

本发明所提出的集成电路芯片内部的速度分级优化结构被插入到了若干测试电路中,如OpenSPARCT2处理器中的FGU(Floating Point and Graphic Unit,浮点运算和图像处理模块)模块,ITC’99中最大的电路b19,以及ISCAS’89测试电路中的s953,s9234,s13207,s38417,和s35932。上述被插入片上调节结构的电路都经过了仿真验证,并在Altera公司28nm的FPGA上进行了验证。

首先测试单条路径速度分级优化结构。在b19电路中提取了一条路径,此路径的时延为851ps。提取的方法为:首先使用Synopsys公司的Design Compiler软件对b19测试电路进行综合,并添加时序约束,将RTL级代码转化为门级(Gate Level)网表(netlist),同时生成时序文件(Standard Delay Format,SDF)。之后,将生成的网表文件和时序文件输入到Primetime软件中,进行静态时序分析,选择一条路径作为所要测试的关键路径,修改网表,插入速度分级检测模块和速度分级调节模块,之后利用Primetime提取该路径,该路径使用HSpice语言进行描述。预设的可调节时间范围S0为23ps,此路径上游路径的富余时间为50ps(富余时间定义为驱动路径的时钟周期与路径时延的差,若富余时间为正,则该路径可以在此时钟下正常工作,否则无法正常运行)。驱动该路劲的时钟设置为1.19GHz,即两个速度等级之间的频率分界Fi设置为1.19GHz。

参照图7所示,在此路径的输入端口(启动触发器)输入测试激励,即从“0”翻转为“1”。由于这一路径的时延大于841ps(1.19GHz),在调节之前,在时钟第一次捕获该路径的输出时,此路径未能及时的将信号传递到末端,输出错误,意味着路径在此频率下是失效的。但是,在该路径失效的同时,速度分级检测模块检测到这一路径可以通过调节使其在1.19GHz下正常工作,因此其输出Adapt_EN变为“1”,即开启了速度分级优化。故而,当再次以相同的频率对此路径进行测试时,此路径能够正常工作,如图7中调节之后的波形所示。图7调节之后Adapt_EN的值一直保持为一,代表速度分级检测模块的输出被写入Flash中,在复位或者重新上电之后,可以直接控制速度分级调节模块运行。因此当施加同样的测试激励后,该路径能够在1.19GHz下正常工作。

下面验证集成电路芯片内部的速度分级优化结构将单个集成电路芯片提升到更高的速度等级。对于ITC’99中的b19测试电路,通过Primetime进行静态时序分析,我们选择了120条路径作为关键路径。根据速度分级检测模块和速度分级调节模块设计的要求,可调节范围S0等于0.3ns。之后使用HSpice仿真对b19电路在未进行调节和已进行调节的条件下,分别进行速度分级测试。如图8所示,x轴代表芯片内部路径的富余时间,Fi为两个速度等级的分界频率,即测试频率,为167MHz。如此,富余时间为0的一条竖线就代表了分界频率。路径的富余时间在调整前后分别用斜纹直方图和点状直方图来表示。可以看出,在没有速度分级优化调节时,共有94条路径分布在分界频率的左侧,意味着这些路径导致此芯片在167MHz下失效。但是,这些路径中,最小的富余时间为-0.16ns,仍然处于可调节范围(0.3ns)之内。因此,通过插入到所选择的120条路径(覆盖了这94条路径)的速度分级检测模块和速度分级调节模块的调节,芯片中路径的富余时间都大于0。即调节之后,这个芯片被成功的提升到了167MHz这一等级。

最后在不同测试电路上进行速度分级优化。按照上述步骤,所设计的速度分级优化结构在多个FPGA芯片上进行了验证。所使用的FPGA的制造工艺是28nm,以保证其具有足够大的工艺误差。每个FPGA芯片代表一个或者多个测试电路(取决于测试电路的大小),即对同一个测试电路的不同芯片进行测试。

在电路未调节和已调节两种条件下分别进行测试。以b19电路为例,共有120条路径被选择为关键路径并被插入单条路径速度分级优化结构。对于100个b19电路在调节前和调节之后速度等级的分布,可以在图9中看到。在调节之后,有两个集成电路芯片由速度等级三被提升到了速度等级二,有7个集成电路芯片被由速度等级二提升到了速度等级一。因此,对于b19而言,共有9%的芯片被本发明所提出的速度分级优化结构提升到了更高的速度等级,即其速度分级优化率为9%。

在不同测试电路上进行速度分级优化测试的结果如下表所示,及其速度分级优化率在6%-16%之间:

下表显示了在不同的测试电路中插入的单条路径速度分级优化结构的数量以及其在电路中所占的总面积的比值。可以看出,随着测试电路规模的不断增大,所设的速度分级优化结构在整个电路中所占据的面积的比值不断下降。也就是说,我们设计的结构的更加适合插入到大规模、乃至超大规模集成电路中。对于工业中使用的芯片来说,其规模远远大于我们所使用的测试电路,若是插入我们所设计的结构,其面积占用比率可低于1%。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1