首页> 中国专利> 抖动量估计方法、噪声量与抖动量之间的相关度计算方法

抖动量估计方法、噪声量与抖动量之间的相关度计算方法

摘要

本发明提供抖动量估计方法、同时工作信号噪声量与抖动量之间的相关度计算方法和记录介质。SSO噪声计算单元估计由作为中心的电源电压引脚周围的输入/输出引脚的同时工作而导致的同时工作信号噪声量。PLL抖动计算单元通过将所估计出的同时工作信号噪声量用作输入,并且通过参照同时工作信号噪声量与抖动量之间的相关度,从而估计在电源电压引脚出现的抖动量,所述相关度表示预先计算出的同时工作信号噪声量与抖动量之间的相关度。

著录项

  • 公开/公告号CN101470149A

    专利类型发明专利

  • 公开/公告日2009-07-01

    原文格式PDF

  • 申请/专利权人 富士通株式会社;

    申请/专利号CN200810161509.9

  • 发明设计人 香崎康夫;

    申请日2008-09-24

  • 分类号G01R29/02(20060101);G06F1/04(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人李辉

  • 地址 日本神奈川县川崎市

  • 入库时间 2023-12-17 22:10:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-07-04

    授权

    授权

  • 2009-08-26

    实质审查的生效

    实质审查的生效

  • 2009-07-01

    公开

    公开

说明书

技术领域

本发明涉及基于由半导体装置内的多个引脚的输入/输出信号的同时工作而导致的同时工作信号噪声来估计PLL抖动量的技术。

背景技术

传统上,发生在装置封装的接地或电源引脚与装置内裸片(die)的接地或电源基准电平之间的电源振荡被称为接地跳动或电源漂移,这是高速装置内的错误切换的主要原因之一。

近来,作为用户可以对其自由设定引脚设置、电路结构、输入/输出信号的标准(LVTTL、LVCMOS、HSTL等)、输出电流值(12mA、8mA、4mA等)、通过速率(throughrate)控制(快或者慢)等的半导体装置,FPGA(现场可编程门阵列)已经引起注意。因为输入/输出引脚的数量和FPGA上的接口信号速度已经增加,大量的输出引脚同时工作。结果,上述接地跳动或者电源漂移变得很明显。通常将这些现象称为同时工作的信号噪声(SSN(同时切换噪声)或SSO(同时切换输出)噪声)或者串扰噪声。

此外,在FPGA上,安装了用于控制内部时钟的稳定振荡的PLL(锁相环),并且提供了专用或者共享的PLL电源端子。装置内裸片的PLL电源电压由于去往/来自PLL电源端子的输入/输出信号的串扰噪声(SSO噪声)以及封装内的布线而发生波动,因此增加了PLL抖动量。

发生SSO噪声和PLL抖动的量依赖于FPGA上的引脚设置而波动。因此,在安装FPGA的PCB(印刷电路板)的设计阶段,必须基于FPGA上的引脚设置来估计发生SSO噪声和PLL抖动的量,以使FPGA装置按适当的定时工作。

作为仿真SSO噪声的传统技术,已知有由加利福尼亚大学伯克利分校的电子研究实验室的集成电路组和EECS系开发的称为SPICE(以集成电路为重点的仿真程序)的通用电路分析仿真器软件。

此外,日本特开平10-127089号公报和2004-205095号公报公开了相关的传统技术。

然而,虽然诸如SPICE等的仿真器可以按相对较高的精度仿真SSO噪声,但是它需要大量的时间来仿真SSO噪声。

传统上,既没有将引脚设置也没有将工作状态明确提出为FPGA上的PLL抖动的标准,并且也没有明确PLL抖动量如何依赖于引脚设置或者工作状态的变化而波动。因此,存在一个问题:根据引脚设置或者工作状态,在某些情况下,无法使PLL和FPGA装置适当地工作。

发明内容

本发明的目的是建立一种方法,该方法用于基于输入到/输出自半导体装置(例如FPGA等)的多个引脚的输入/输出信号所导致的同时工作信号噪声,在短时间并按高精度来估计任意引脚设置或者工作状态下的PLL抖动量。

本发明的第一方面提出了一种计算同时工作信号噪声量与抖动量之间的相关度的方法、或者基于该方法执行的程序,所述相关度用于估计半导体装置的抖动量。

首先,针对设置了预定用户设置信息的输入/输出引脚,计算作为中心的电源电压引脚周围的多个输入/输出引脚中的同时工作引脚的数量与由电源电压的波动而导致的抖动量之间的第一相关度。

接下来,针对设置了所述预定用户设置信息的所述输入/输出引脚,计算作为中心的所述电源电压引脚周围的所述多个输入/输出引脚中的同时工作引脚的数量与由同时工作的输入/输出引脚而导致的同时工作信号噪声量之间的第二相关度。

然后,基于第一相关度和第二相关度来计算所述同时工作信号噪声量与所述抖动量之间的第三相关度。

本发明的第二方面提出了一种估计半导体装置的抖动量的抖动量估计方法、或者基于该方法执行的程序。

首先,估计由作为中心的电源电压引脚周围的多个输入/输出引脚的同时工作而导致的同时工作信号噪声量。

然后,通过使用所估计出的同时工作信号噪声量作为输入,并且通过参照同时工作信号噪声量与抖动量之间的相关度,估计发生在所述电源电压引脚处的抖动量,所述相关度表示预先计算出的同时工作信号噪声与抖动量之间的相关度。

本发明的第三方面提出了一种通过使用本发明第二方面的抖动量估计方法来设计半导体装置以及安装该半导体装置的印刷电路板的方法、或者基于该方法执行的程序。

在该方面中,基于所估计出的抖动量来设计半导体装置的引脚设置或信号定时、或者安装该半导体装置的印刷电路板的布局、多个半导体装置之间的连接或信号定时。

在本发明的第一到第三方面中,可以将所述抖动量实现为锁相环(PLL)内的抖动量。

根据本发明的上述方面,可以建立一种估计任意引脚设置和工作状态下的抖动量的方法,从而改进半导体装置(例如FPGA等)和安装半导体装置的印刷电路板的设计质量。

根据本发明可以计算出的同时工作信号噪声量与抖动量之间的相关度并不依赖于各个半导体引脚的用户设置信息。因此,可以实现一种使得能够根据由作为中心的电源电压引脚周围的输入/输出引脚的同时工作而导致的同时工作信号噪声量来计算抖动量的突破性方法。

附图说明

根据以下详细说明并结合附图,本发明将更加清楚,在附图中:

图1为示出对FPGA芯片上的设置在待处理引脚附近的多个引脚进行分组的实施例的示意图;

图2为用于说明SSO噪声基本特征的示意图;

图3为示出FPGA芯片上的待处理引脚附近的针对各项输入/输出用户设置信息的引脚设置的实施例的示意图;

图4为用于说明SSO噪声量计算操作的原理的示意图;

图5为用于说明基于电路分析仿真来修正SSO噪声基本特征的操作的示意图;

图6为示出同时工作的信号数量与PLL抖动量之间的关联的示意图;

图7为示出SSO噪声量与PLL抖动量之间的关联的示意图;

图8为示出以PLL电源端子为中心的虚拟区(virtual bank)的概念性示意图;

图9为示出根据本发明的优选实施方式的整体情况的框图,其具有设计和制造由用FPGA构成的LSI和安装该FPGA的PCB组成的装置的功能;

图10为示出本发明的优选实施方式中的具有估计SSO噪声量的功能的SSN/PLL抖动检查单元的框图;

图11为示出引脚信息存储单元的数据结构的实施例的示意图;

图12为示出SSO噪声基本特征数据存储单元的表结构的实施例的示意图;

图13为示出SSO噪声计算处理的操作的整体情况的流程图;

图14为示出SSO噪声计算子例程的操作的流程图;以及

图15为示出可以实现根据本发明优选实施方式的装置的计算机硬件配置的实施例的框图。

具体实施方式

以下参照附图详细地描述实现本发明的优选实施方式。

(根据本发明的优选实施方式的基本原理)

在说明根据本发明的优选实施方式的具体结构和操作之前,首先描述了根据本发明的优选实施方式的基本原理。

首先,当对诸如FPGA等的半导体装置的SSO噪声进行评估时,必须针对该半导体装置所包括的信号输入/输出引脚(I/O引脚,此后将其简称为“引脚”)中的每一个引脚(称为待处理引脚),估计当待处理引脚周围的引脚的信号同时工作时叠加在待处理引脚的信号上的噪声,作为SSO噪声。如果所有待处理引脚的SSO噪声量都落入标准之内,则可以确定所设计的引脚设置是适当的。

为了估计一个待处理引脚的SSO噪声,由用户设置的关于该待处理引脚周围的引脚的设置的信息(此后将其称为“I/O用户设置信息”)及其输入/输出信号是重要的因素。在此,I/O用户设置信息为关于输入/输出信号的标准(例如LVTTL、LVCOMS、HSTL等)、输出电流值(12mA、8mA、4mA等)、通过速率(快或者慢)等的信息。

当在根据本发明的优选实施方式中对半导体上的I/O引脚的SSO噪声进行估计时,根据到待处理引脚的返回电流的耦合电感的大小,具体来说是根据到待处理引脚的距离,将位于待处理引脚附近的区域内的多个引脚划分为多个组。

根据本发明的优选实施方式例如采用图1所示的组分类作为考虑到待处理引脚的距离来将引脚分组的情况。也就是说,针对图1的表示为101的待处理引脚,例如按照如下方式进行分组:将区域102中示出的8个引脚看作属于组1(G_1)的引脚,将区域103中示出的16个引脚看作属于组2(G_2)的引脚,并且将区域104中示出的24个引脚看作属于组3(G_3)的引脚。

如果基于这种分组来借助通用电路分析仿真器软件测量待处理引脚的SSO噪声,则获得在图2中的用标绘“·”表示的SSO噪声基本特征及其插值线性线。

在该图中,采用Noise_i_j表示属于组i(=G_i)并且具有I/O用户设置信息j的引脚的SSO噪声量。

实际Noise_1_1为当属于组1(=G_1)的所有8个引脚都具有I/O用户设置信息1(=A)的信号特征时的SSO噪声量的实际仿真值。

实际Noise_2_1为当组2(=G_2)的整个内部的所有24个引脚(即属于G_1的8个引脚和属于G_2的16个引脚)都具有I/O用户设置信息1(=A)的信号特征时的SSO噪声量的实际仿真值。

实际Noise_3_1为当组3(=G_3)的整个内部的所有48个引脚(即属于G_1的8个引脚、属于G_2的16个引脚和属于G_3的24个引脚)都具有I/O用户设置信息1(=A)的信号特征时的SSO噪声量的实际仿真值。

类似地,实际Noise_1_2为当属于G_1的所有8个引脚都具有I/O用户设置信息2(=B)的信号特征时的SSO噪声量的实际仿真值,实际Noise_2_2为当G_2的整个内部的所有24个引脚都具有I/O用户设置信息2(=B)的信号特征时的SSO噪声量的实际仿真值,实际Noise_3_2为当G_3的整个内部的所有48个引脚都具有I/O用户设置信息2(=B)的信号特征时的SSO噪声量的实际仿真值。

类似地,实际Noise_1_3为当属于G_1的所有8个引脚都具有I/O用户设置信息3(=C)的信号特征时的SSO噪声量的实际仿真值,实际Noise_2_3为当G_2的整个内部的所有24个引脚都具有I/O用户设置信息3(=C)的信号特征时的SSO噪声量的实际仿真值,实际Noise_3_3为当G_3的整个内部的所有48个引脚具有I/O用户设置信息3(=C)的信号特征时的SSO噪声量的实际仿真值。

根据图1和图2可以理解,如果I/O用户设置信息不同,则引脚的信号特征不同。因此,SSO噪声量不同。此外,如果组不同,则到待处理引脚的距离关系显著不同。因此,SSO噪声量针对同时工作信号的数量的变化量(=基本特征的斜率)不同。

然而,如果关注一项I/O用户设置信息,则相同组内的多个引脚与待处理引脚几乎具有相同的距离关系(耦合电感值)。因此,可以认为,当在同一组内具有I/O用户设置信息的引脚数量增加时SSO噪声量的增加率是几乎恒定的。换句话说,可以用线性线来近似组内的一项I/O用户设置信息的SSO噪声基本特征。

根据此特征,在属于G_i的所有引脚具有I/O用户设置信息j的情况下,可以根据噪声量的实际测量值=实际Noise_i_j而使用线性插值简单地计算出当将属于组G_i并具有I/O用户设置信息j的引脚的数量假定为x_i_j时由x_i_j个引脚所导致的SSO噪声量Noise_i_j,在组G_i内不存在具有I/O用户设置信息j的引脚并且属于组G_i-1或者更小组的所有引脚都具有I/O用户设置信息j的情况下,可以根据噪声量的实际测量值=实际Noise_i-1_j而使用线性插值简单地计算出当将属于组G_i并具有I/O用户设置信息j的引脚的数量假定为x_i_j时由x_i_j个引脚所导致的SSO噪声量Noise_i_j。

如果无法借助线性线来近似SSO噪声基本特征,可以计算通过将x_i_j乘以x_i_j的SSO噪声基本特征的不同系数(在线性插值的情况下为线性线的斜率)而获得的值,作为SSO噪声量Noise_i_j。

实际上,如图3所示,具有不同I/O用户设置信息项1到3等的引脚共同存在于组G_1、G_2、G_3等内。因此,通过针对每个组i对所有的I/O用户设置信息项1到3计算该组内的SSO噪声量Noise_1到Noise_3的总噪声量Noise_i,并且通过进一步计算对应于所有组G_1到G_3的各组内的SSO噪声量的总量Noise_1到Noise_3的总和,来计算一个待处理引脚的总SSO噪声量,如图4所示。

也可以按照不同于图1所示分组方法的方法来分组,例如通过更精确地确定到待处理引脚的距离来分组。因此,在图2、图4等中,也可以将组表示为G_1、G_1+G_2、G_1+G_2+G_3。

在此,假定图2或图4所示的SSO噪声基本特征数据是通过使用标准评估板来实际测量SSO噪声量而获得的。然而,SSO噪声基本特征根据安装FPGA的PCB(印刷电路板)而不同。因此,为了精确地估计SSO噪声量,不仅必须考虑FPGA的特征,而且必须考虑包括安装FPGA的PCB在内的分析模型。因为安装FPGA的PCB对于每个设计是唯一的,因此实际上无法借助实际测量而获得PCB。因此,评估板与实际装置的PCB的条件(层数、通孔长度、布线图案等)之间存在差异,SSO噪声基本特征数据不同。结果,在计算出的噪声量中出现误差。

为此,在根据本发明的优选实施方式中,如图5所示,在设计的初始阶段,通过使用借助传统标准评估板而实际测量出的SSO噪声基本特征数据来进行粗略分析,在设计的高级阶段中,在确定了实际装置PCB的参数之后,在该PCB的条件下借助通用电路分析仿真器软件来获得SSO噪声基本特征数据,并且通过使用新获得的SSO噪声基本特征数据来详细地分析半导体引脚的SSO噪声量。

接下来考虑PLL抖动。

首先,在通用电路分析仿真器软件中,将作为中心的FPGA的PLL电源端子(该引脚称为“牺牲引脚”)周围的引脚设置到特定的I/O标准(应用特定的I/O用户设置信息),并且在增加同时输出的引脚的数量(=同时工作的信号的数量)的同时测量PLL抖动量。结果,获得了图6所示的用标绘“·”示出的同时工作的信号数量与PLL抖动量之间的相关度及其插值线性线的示意图。

在该图中,采用Jitter_i来表示在牺牲引脚处的由属于组i(=G_i)的引脚所导致的PLL抖动量。

实际Jitter_1为当属于组1(=G_1)的8个引脚具有特定I/O用户设置信息的信号特征时的PLL抖动量的实际仿真值。

实际Jitter_2为当组2(=G_2)的整个内部的全部24个引脚(即属于G_1的8个引脚和属于G_2的16个引脚)具有特定I/O用户设置信息的信号特征时的PLL抖动量的实际仿真值。

实际Jitter_3为当组3(=G_3)的整个内部的全部48个引脚(即属于G_1的8个引脚、属于G_2的16个引脚和属于G_3的24个引脚)具有特定I/O用户设置信息的信号特征时的PLL抖动量的实际仿真值。

在同时工作的信号数量与PLL抖动量之间的相关度的示意图中获得与用于测量PLL抖动量的I/O用户设置信息相同的I/O用户设置信息的SSO噪声基本特征。假定I/O用户设置信息例如为上述I/O用户设置信息1(=A),则获得图2所示的I/O用户设置信息1(=A)的SSO噪声基本特征。在此,可以通过参照图2和图6中的同时工作的信号的数量=1、8、24和48的绘制位置而创建图7所示的SSO噪声量与PLL抖动量之间的相关度的示意图。该相关度示意图的特征在于,不论选择哪一项I/O用户设置信息,即使在允许测量误差之后,都具有相同的相关度特征。

根据该特征,通过将设置在任意引脚位置的牺牲引脚作为待处理引脚来估计SSO噪声量,并且参照与图7所示相似的并且预先创建的SSO噪声量与PLL抖动量之间的相关度特征数据,从而可以估计牺牲引脚处的PLL抖动量。

封装内的PLL电源布线和封装内的信号布线是不同的。因此,针对牺牲引脚估计的SSO噪声量并不是在该引脚实际出现的SSO噪声量的绝对值,而是为了方便计算该引脚处的PLL抖动量而计算出的指示量。然而,根据SSO噪声量计算出的PLL抖动量精确地对应于在该引脚处实际出现的PLL抖动量。

在此,在实际设计中,通过以PLL电源端子VCCpll为中心构成虚拟区,表示为图8的801,并且通过将PLL电源端子VCCpll作为牺牲引脚来估计SSO噪声量。然后,通过参照SSO噪声量与PLL抖动量之间的相关度特征数据来对PLL电源端子VCCpll处的PLL抖动量进行估计。

(根据本发明的优选实施方式的结构)

以下描述基于上述基本原理的根据本发明的优选实施方式的结构。

在根据本发明的优选实施方式中,可以通过在与安装LSI的PCB的设计相联系时估计SSO噪声量和PLL抖动量来确定构成LSI(大规模集成)电路的FPGA的引脚设置。

图9为示出根据本发明的优选实施方式的整体情况的框图,其具有设计和制造由LSI(FPGA)和安装LSI的PCB组成的装置的功能。

首先,装置规格确定单元901确定装置(产品)的整体规格,所述装置由构成LSI的FPGA和安装LSI的PCB组成。

接下来,LSI分割单元902基于以上确定的规格来确定所需要的LSI功能,并且进行制图以将LSI安装到FPGA侧或者PCB侧。

此后,LSI外部接口(I/F)规格确定单元903确定FPGA与PCB之间以及PCB与外部连接装置之间的接口的规格。

此后,分别进行半导体装置和PCB的设计。

用904到909表示的功能单元是用FPGA设计LSI的功能块。

首先,LSI规格设计单元904设计由FPGA构成的LSI的基本规格。

接下来,LSI功能设计单元905设计反映了功能单元901和902的设计结果的LSI的功能。

此后,引脚设置确定单元906确定构成LSI的FPGA的引脚设置,设置布线设计单元907按所确定的引脚设置来设计布线,定时检查单元908检查当LSI按上述引脚设置和布线正确工作时的定时。

然后,如果以上定时检查结果是“OK”,则LSI制造单元909用FPGA制造LSI。

相反,用910到913表示的功能单元为用于设计PCB的功能块。

首先,PCB基本设计单元910通过反映功能单元901和902的设计结果来设计PCB的基本内容,例如尺寸、类型等。

接下来,LSI设置确定单元911确定要安装在PCB上的LSI的设置(连接器和电源电路的设置)。

然后,LSI间连接确定单元912按所确定的LSI设置来确定LSI之间的连接。

如果作为由稍后将描述的SSN/PLL抖动检查单元914对SSO噪声量和抖动量进行检查的结果、以及作为由稍后将描述的外部接口(I/F)定时检验单元915对外部接口定时进行检查的结果,LSI的设置和LSI之间的连接被验证为合适,则PCB制造单元913制造PCB。

在由LSI制造单元909制造LSI以及由PCB制造单元913制造PCB完成之后,装置制造单元916从LSI组和PCB组来组装最终的产品装置。

在此,产品装置内的SSO噪声量和PLL抖动量可能根据基于构成LSI的FPGA的引脚设置以及PCB上的LSI设置的布线而发生变化。因此,作为与本发明特别相关的一部分,当引脚设置确定单元906和设置布线设计单元907进行了LSI的引脚设置以及基于引脚设置的布线设计时,SSN/PLL抖动检查单元914执行针对构成各个LSI的FPGA的所有引脚估计SSO噪声的过程,以检验SSO噪声量是否在许可范围内。SSN/PLL抖动检查单元914也估计近似的PLL抖动量。

如果作为SSN检查的结果,证明了存在SSO噪声量没有落入许可范围的引脚,则引脚设置确定单元906和设置布线设计单元907再次进行LSI的引脚设置以及基于该设置的布线设计,或者,LSI设置确定单元911再次设计LSI设置、电源电路设置、或PCB上的LSI数量或电源电路。而且,通过上述抖动检查粗略地估计近似的PLL抖动量,并且基于估计出的近似量来设定许可的PLL抖动和LSI/PCB的定时。

图10为示出作为根据本发明的优选实施方式的在图9中所示的SSN/PLL抖动检查单元914的结构的框图。

如在“根据本发明的优选实施方式的基本原理”中描述的那样,在装置设计的初始阶段,通过使用借助传统标准评估板而实际测量到的SSO噪声基本特征数据来进行粗略分析,在设计的高级阶段,在确定了实际装置PCB的参数之后,在该PCB的条件下借助通用电路分析仿真器软件再次获得SSO噪声基本特征数据,并且通过使用新获得的SSO噪声基本特征数据来详细地分析半导体引脚的SSO噪声量。

首先,评估板电路分析控制单元1001使得SSO噪声基本特征数据存储单元1004存储用传统标准评估板实际测量到的SSO噪声基本特征数据。

然后,SSO噪声计算单元1002基于存储在引脚信息存储单元1005中的关于各个引脚设置和I/O用户设置信息的信息、以及存储在SSO噪声基本特征数据存储单元104中的基于评估板而获得的SSO噪声基本特征数据,执行计算SSO噪声量的处理。这些操作是根据上述“根据本发明的优选实施方式的基本原理”而执行的,不过稍后将对它们进行详细描述。

如果SSO噪声计算单元1002的SSN检查结果为“OK”,则PLL抖动计算单元1007通过将电源电压引脚的SSO噪声量用作输入、并且通过参照预先存储在PLL抖动计算单元1007自身内的SSO噪声量与PLL抖动量之间的相关度特征数据(参见图7),来计算PLL抖动量。

如果SSO噪声计算单元1002的SSN检查结果和PLL抖动计算单元1007的抖动检查结果为“OK”,则在图9所示的LSI设置确定单元911和LSI间连接确定单元912执行了上述操作之后,PCB的实际装置设计一度确定下来。

然后,图10所示的实际装置PCB电路分析控制单元1003通过使没有具体示出的通用电路分析仿真器软件基于与以上确定的实际装置PCB设计相关的信息来运行,从而获得与实际装置PCB对应的SSO噪声基本特征数据,并且对存储在SSO噪声基本特征数据存储单元1004中的SSO噪声基本特征数据进行修正。

此后,SSO噪声计算单元1002基于存储在引脚信息存储单元1005中的与各个引脚设置和I/O用户设置信息相关的信息、以及根据实际装置PCB进行了修正并且存储在SSO噪声基本特征数据存储单元1004中的SSO噪声基本特征数据,再次执行计算SSO噪声量的处理。

如果SSO噪声计算单元1002的第二次SSN检查结果为“OK”,则PLL抖动计算单元1007通过将SSO噪声计算单元1002精确地计算出的对于PLL电源电压引脚的SSO噪声量用作输入、并且通过参照SSO噪声量与PLL抖动量之间的相关度特征数据,再次计算PLL抖动量。

基于由SSO噪声计算单元1002的详细操作所获得的SSN检查最终结果1006、以及由PLL抖动计算单元1007的详细操作所获得的抖动检查最终结果1008,确定图9的引脚设置确定单元906和设置布线设计单元907作出的LSI引脚设置和基于该设置的布线设计、以及由LSI设置确定单元911作出的PCB上的LSI设置。

如上所述,在根据本发明的优选实施方式中,基于更为接近实际设计的SSO噪声基本特征数据来对SSO噪声量进行估计。因此,可以可靠地防止由具有基于所估计的量而确定的引脚设置的LSI以及安装该LSI的PCB所组成的装置由于SSO噪声而不正确地工作。

此外,可以根据针对PLL电源电压引脚而计算的SSO噪声量来估计PLL抖动量,借此可以进行更加严格的定时设计。

(根据本发明的优选实施方式的操作)

以下描述具有上述结构的根据本发明的优选实施方式的操作。

图11为示出图10所示的引脚信息存储单元1005的数据结构的实施例的示意图。

针对由FPGA构成的各个LSI的各个引脚,存储关于标识LSI和引脚的标识符的信息、表示引脚在LSI上的行位置和列位置的信息、和应用于该引脚的I/O用户设置信息。

根据这些信息项,如在“根据本发明的优选实施方式的基本原理”中所描述的那样,可以对各个LSI上的各个待处理引脚识别出图1所示的分组以及组内的引脚具有哪项I/O用户设置信息。

图12为示出图10所示的SSO噪声基本特征数据存储单元1004的数据结构的实施例的示意图。

对于各项I/O用户设置信息,存储同时工作的信号的数量(0、8、24和48中的任何一个)及其对应的SSO噪声量(单位是毫伏特=mV)。这些信息项分别对应于图2和图4所示的水平轴上的同时工作信号的数量以及SSO噪声量,例如实际Noise_1_1、实际Noise_2_1、......。在图12中的“后缀(参照)”列中表示了与图2的关系。

在图12中,存储了各个引脚的SSO噪声量,对于各个引脚,在该引脚用作接地侧(GND侧)的引脚的情况下和在该引脚用作电源侧(VCC侧)的引脚的情况下分别设置了各项I/O用户设置信息进行设定。

此外,在图2和图4中,当同时工作的信号的数量为0时,即,当待处理引脚单独工作时,SSO噪声量为0。然而实际上,存在轻微的噪声。因此,在图12中,当SSO的数量为1时也存储了SSO噪声量。

用图12中示出并且存储在图10所示的SSO噪声基本特征数据存储单元1004中的函数表数据来表示图2和图4中所示的SSO噪声基本特征。

上述的SSO噪声量与PLL抖动量之间的相关度特征数据(参见图7)是预先固定获得的,而不依赖于I/O用户设置信息。因此,可以将该数据保持为图10所示的PLL抖动计算单元1007中的固定转换数据(例如关联阵列数据)。

图13为示出图9所示的并且具有图10所示功能的SSN/PLL抖动检查单元914的操作的流程图。

首先,通过图10所示的评估板电路分析控制单元1001来执行图13的步骤S1301。在该步骤中,在用于FPGA评估的PCB环境的条件下执行通用电路分析仿真器软件,对所有的I/O用户设置信息项获得SSO噪声基本特征数据,并且创建其函数表数据。作为通用电路分析仿真器软件,可以获得由加利福尼亚大学伯克利分校的电子研究实验室的集成电路组和EECS系开发的SPICE(以集成电路为重点的仿真程序)软件、或者从SPICE软件导出的HSPICE(由Synopsis公司制造)。使用以下的参数作为此时提供给电路分析仿真器的参数。

1、评估PCB的图案数据(特别是通孔长度)

2、评估PCB的电源和GND模型

3、装置的封装模型

4、装置的缓冲模型

作为上述操作的结果,获得了图12所示的SSO噪声量的值,并且将该值以图12所示的函数表数据的形式存储在图10所示的SSO噪声基本特征数据存储单元1004中。

接下来,通过图14所示的操作流程图进一步详细示出图13中的步骤S1302中的SSO噪声计算子例程,由图10所示的SSO噪声计算单元1002来执行该SSO噪声计算子例程。

在图14所示的操作流程图中,首先将存储在引脚信息存储单元1005中的LSI的第一引脚选择为待处理引脚(步骤S1401)。

接下来,将表示组号的变量i的值设为1(步骤S1402)。

然后,在确定存储在引脚信息存储单元1005中的待处理的LSI各个引脚的行位置和列位置以及I/O用户设置信息的同时,对于待处理引脚附近的属于组i(=G_i)=组1(=G_1)的区域(图1中的102)的8个引脚,例如针对I/O用户设置信息A、B和C中的每一项对引脚的数量进行计数,作为同时工作的信号的数量(步骤S1403)(参见图3)。

例如,对于G_1区域,计算出I/O用户设置信息A、B和C的引脚数量分别为2、4和2(参见图3所示的G_1区域)。

接下来,对于G_i=G_1(组1)的区域,对各项I/O用户设置信息j,按SSO噪声基本特征F_j(x)的降序,用以下等式(1)确定与同时工作的信号x_i_j的数量对应的开始位置s_i_j(步骤S1404)。

s_i_j=0(j=1并且i=1)

s_i_j=G_i或者更小组的引脚总数(=8、24或48)(j=1并且i>1)

s_i_j=s_i_j-1+x_i_j-1(j>1)......(1)

在此,i=1,各项I/O用户设置信息的SSO噪声基本特征在图2到图4和图12所示的实施例中如下。

I/O用户设置信息A>I/O用户设置信息B>I/O用户设置信息C

因此,进行以下计算。

I/O用户设置信息1=I/O用户设置信息A,x_1_1=2

I/O用户设置信息2=I/O用户设置信息B,x_1_2=4

I/O用户设置信息3=I/O用户设置信息C,x_1_3=2

结果,使用等式(1),如下地计算开始位置。

s_1_1=0

s_1_2=s_1_1+x_1_1=0+2=2

s_1_3=s_1_2+x_1_2=s_1_1+x_1_1+x_1_2=0+2+4=6

接下来,对于G_i=G_1(组1)的区域,按SSO噪声基本特征F_j(x)的降序,对每项I/O用户设置信息j基于x_i_j、s_i_j和F_j(x)使用以下等式(2)来计算噪声量Noise_i_j(步骤S1405)。

Noise_i_j=F_j(s_i_j+x_i_j)-F_j(s_i_j)......(2)

在此,在图2到图4和图12所示的实施例中,

I/O用户设置信息1:x_1_1=2,s_1_1=0

I/O用户设置信息2:x_1_2=4,s_1_2=2

I/O用户设置信息3:x_1_3=2,s_1_3=6

此外,在G_i=G_1的区域内,对于各个I/O用户设置信息1(=A)、2(=B)和3(=C),可以将SSO噪声基本特征F_j(x)(即F_1(x)、F_2(x)和F_3(x))计算为通过对图12所示函数表中的在同时工作的信号数量(SSO数量)=1的情况下的SSO噪声量以及在SSO的数量=8(在GND侧)的情况下的SSO噪声量进行线性插值而获得的线性函数,如同从图2或图4中所知道的那样,并且将其计算如下。

F_1(x)=[(380-50)/(8-0)]x+[(8×50-1×380)/(8-0)]=41.25×x+2.5

F_2(x)=[(350-40)/(8-0)]x+[(8×40-1×305)/(8-0)]=33.125×x+1.875

F_3(x)=[(214-30)/(8-0)]x+[(8×30-1×214)/(8-0)]=23×x+3.25

结果,使用等式(2),将G_i=G_1区域内的I/O用户设置信息1(=A)、2(=B)和3(=C)分别的SSO噪声量Noise_1_1、Noise_1_2和Noise_1_3计算如下。

Noise_1_1=F_1(s_1_1+x_1_1)-F_1(s_1_1)=[41.25×(0+2)+2.5]-(41.25×0+2.5)=41.25×2=82.5(mV)

Noise_1_2=F_2(s_1_2+x_1_2)-F_2(s_1_2)=[33.125×(2+4)+1.875]-(33.125×2+1.875)=33.125×4=132.5(mV)

Noise_1_3=F_3(s_1_3+x_1_3)-F_3(s_1_3)=[23×(6+2)+3.25]-(23×6+3.25)=23×2=46(mV)

正如从上述等式(2)和图4所知道的那样,G_i区域内的每项I/O用户设置信息j的SSO噪声量Noise_i_j等于SSO噪声基本特征F_j(x)相对于G_i区域内的每项I/O用户设置信息j的同时工作信号x_i_j数量的增加量而言的增加量。因此,如果用线性线表示SSO噪声基本特征F_j(x),则等式(2)可以简化为以下等式(3)。

Noise_i_j=a_j×x_i_j

其中a_j为G_i区域内的SSO噪声基本特征的线性线的斜率。如果基本SSO噪声特征F_j(x)不是表示为线性线,则希望精确地计算等式(2)。

如果可以通过这种方式来计算G_i=G_1区域内的每项I/O用户设置信息j的SSO噪声量Noise_i_j(即Noise_1_1、Noise_1_2和Noise_1_3),则将G_i=G_1区域内的总SSO噪声量Noise_i=Noise_1计算为这些SSO噪声量的总和(步骤S1406)。

Noise_1=Noise_1_1+Noise_1_2+Noise_1_3=82.5+132.5+46=261(mV)

当如上所述地执行了对于一个组区域的处理时,确定是否对所有的G_i区域都已经执行了该处理(步骤S1407)。

假定G_i=G_1,并且如图2到图4所示那样存在另外的区域G_2和G_3,则步骤S1407的确定结果为“否”,并且通过使组标识变量i的值递增1而将其设为2(i=2)(步骤S1408)。然后,流程返回到步骤S1403的处理,并且重复执行对区域G_2的处理。

例如,对于区域G_2,在步骤S1403中将I/O用户设置信息A、B和C的引脚数量分别计算为5、5和5(参见图3所示的区域G_2)。

接下来,在步骤S1404中,对于区域G_2,i=2,并且,在图2到图4和图12所示的实施例中,对于各项I/O用户设置信息的SSO噪声基本特征如下。

I/O用户设置信息A>I/O用户设置信息B>I/O用户设置信息C

因此,进行以下计算。

I/O用户设置信息1=I/O用户设置信息A,x_2_1=5

I/O用户设置信息2=I/O用户设置信息B,x_2_2=5

I/O用户设置信息3=I/O用户设置信息C,x_2_3=5

结果,使用等式(1),如下地计算开始位置。

s_2_1=G_1中的引脚数量=8

s_2_2=s_2_1+x_2_1=8+5=13

s_2_3=s_2_2+x_2_2=s_2_1+x_2_1+x_2_2=8+5+5=18

接下来,在步骤S1405中,对于G_i=G_2的区域内的I/O用户设置信息1(=A)、2(=B)和3(=C),可以分别将SSO噪声基本特征F_j(x)(即F_1(x)、F_2(x)和F_3(x))计算为通过对图12所示函数表中的在同时工作的信号数量(SSO数量)=8的情况下的SSO噪声量和在SSO的数量=24(在GND侧)的情况下的SSO噪声量进行线性插值而获得的线性函数,如同从图2或图4中所知道的那样,并且将其计算如下。

F_1(x)=[(990-380)/(24-8)]x+[(24×380-8×990)/(24-8)]=38.125×x+0.072

F_2(x)=[(786-305)/(24-8)]x+[(24×305-8×786)/(24-8)]=30.063×x+0.073

F_3(x)=[(524-214)/(24-8)]x+[(24×214-8×524)/(24-8)]=19.375×x+0.077

结果,使用等式(2),将G_i=G_2区域内的I/O用户设置信息1(=A)、2(=B)和3(=C)的SSO噪声量Noise_2_1、Noise_2_2和Noise_2_3计算如下。

Noise_2_1=F_1(s_2_1+x_2_1)-F_1(s_2_1)=38.125×5=190.625(mV)

Noise_2_2=F_2(s_2_2+x_2_2)-F_2(s_2_2)=30.063×5=150.315(mV)

Noise_2_3=F_3(s_2_3+x_2_3)-F_3(s_2_3)=19.375×5=96.875(mV)

当可以通过这种方式来计算G_i=G_2区域内的各项I/O用户设置信息j的SSO噪声量Noise_i_j(即Noise_2_1、Noise_2_2和Noise_2_3)时,将G_i=G_2区域内的总SSO噪声量Noise_i=Noise_2计算为这些SSO噪声量的总和(步骤S1406)。

Noise_2=Noise_2_1+Noise_2_2+Noise_2_3=190.625+150.315+96.875=437.82(mV)

当通过这种方式已经执行了对于区域G_2的处理时,仍然剩下对于区域G_3的处理。因此,步骤S1407的确定结果为“否”,并且通过使得组标识变量i递增1而将其设为3(i=3)(步骤S1408)。然后,流程返回到步骤S1403的处理,并且重复地执行对于区域G_3的处理。

例如,对于区域G_3,在步骤S1403中首先分别将I/O用户设置信息A、B和C的引脚数量初始地计算为7、7和7(参见图3所示的区域G_3)。

接下来,在步骤S1404中,对于区域G_3,i=3,并且,在图2到图4和图12所示的实施例中,各项I/O用户设置信息的SSO噪声基本特征如下。

I/O用户设置信息A>I/O用户设置信息B>I/O用户设置信息C因此,进行以下计算。

I/O用户设置信息1=I/O用户设置信息A,x_3_1=7

I/O用户设置信息2=I/O用户设置信息B,x_3_2=7

I/O用户设置信息3=I/O用户设置信息C,x_3_3=7

结果,使用等式(1),如下地计算开始位置。

s_3_1=G_2或者更小组中的引脚总数=8+16=24

s_3_2=s_3_1+x_3_1=24+7=31

s_3_3=s_3_2+x_3_2=s_3_1+x_3_1+x_3_2=24+7+7=38

接下来,在步骤S1405中,对于G_i=G_3的区域内的I/O用户设置信息1(=A)、2(=B)和3(=C),可以分别将SSO噪声基本特征F_j(x)(即F_1(x)、F_2(x)和F_3(x))计算为通过对图12所示函数表中的在同时工作的信号数量(SSO数量)=24的情况下的SSO噪声量和在SSO的数量=48(在GND侧)的情况下的SSO噪声量进行线性插值而获得的线性函数,如同从图2或图4中所知道的那样,并且将其计算如下。

F_1(x)=[(1455-990)/(48-24)]x+[(48×990-24×1455)/(48-24)]=19.375×x+0.057

F_2(x)=[(1245-786)/(48-24)]x+[(48×786-24×1245)/(48-24)]=19.125×x+0.053

F_3(x)=[(853-524)/(48-24)]x+[(48×524-24×853)/(48-24)]=13.708×x+0.051

结果,对于G_i=G_3区域内的I/O用户设置信息1(=A)、2(=B)和3(=C),使用等式(2)分别将SSO噪声量Noise_3_1、Noise_3_2和Noise_3_3计算如下。

Noise_3_1=F_1(s_3_1+x_3_1)-F_1(s_3_1)=19.375×7=135.625(mV)

Noise_3_2=F_2(s_3_2+x_3_2)-F_2(s_3_2)=19.125×7=133.875(mV)

Noise_3_3=F_3(s_3_3+x_3_3)-F_3(s_3_3)=13.708×7=95.956(mV)

当可以通过这种方式来计算G_i=G_3区域内的各项I/O用户设置信息j的SSO噪声量(即Noise_3_1、Noise_3_2和Noise_3_3)时,将G_i=G_3区域内的总SSO噪声量Noise_i=Noise_3计算为这些SSO噪声量的总和(步骤S1406)。

Noise_3=Noise_3_1+Noise_3_2+Noise_3_3=135.625+133.875+95.956=365.46(mV)

当通过这种方式执行了对于区域G_3的处理时,这意味着已经执行了对于所有组区域的处理。因此,步骤S1407的确定结果为“是”,并且通过计算所有组G_i的SSO噪声量Noise_i的总和来计算最终的Noise。

Noise=Noise_1+Noise_2+Noise_3=261+437.82+365.46=1064.28(mV)

当如上所述地计算了所有组的SSO噪声量的总和Noise时,确定该总和是否大于预设的许可阈值(步骤S1410)。

如果总和Noise大于许可阈值、步骤S1410的确定结果为“是”,则将提示设计改变的消息输出到显示装置、打印装置(未示出)、日志文件等。在此,图13所示的步骤S1302的SSO噪声计算子例程结束。

另选的是,如果总和Noise等于或小于许可阈值、步骤S1410的确定结果为“否”,则确定是否对一个LSI上的各自被认为是待处理引脚的所有引脚都执行了该处理(步骤S1412)。

如果尚未对于所有引脚执行该处理,则选择存储在引脚信息存储单元1005中的一个LSI上的当前待处理引脚的下一个引脚作为新的待处理引脚(步骤S1401)。

此后,类似地执行对于待处理引脚的SSO噪声量处理,并且确定得到的总和是否大于许可阈值。如果在该处理过程中至少对于任一个引脚确定了该总和大于许可阈值,则执行步骤S1411的处理,输出提示设计改变的消息。

在对全部待处理引脚执行了处理、步骤S1412的确定结果为“是”时,这意味着图13所示的步骤S1302的处理正确结束,并且执行图13所示的下一个步骤S1303的处理。

实际上,对于存储在引脚信息存储单元1005中的所有LSI重复执行上述处理系列,并且对所有LSI进行检查。

此外,在图12所示的函数表的实施例中,在对其设置了各项I/O用户设置信息的引脚用作接地侧(GND侧)引脚的情况下、以及在该引脚用作电源侧(VCC侧)引脚的情况下,分别地存储SSO噪声量。因此,在接地侧和电源侧,对各项I/O用户设置信息重复地执行类似于上述处理的处理。

以上详细描述的在图13所示步骤S1302中的SSO噪声计算子例程是通过使用SSO噪声基本特征数据来粗略地分析SSO噪声量的处理,所述SSO噪声基本特征数据是用评估PCB获得的,并且是由图10所示的评估板电路分析控制单元1001按图12所示的函数表数据的形式存储在图10所示的SSO噪声基本特征数据存储单元1004中的。

如果确定了该子例程处理为“OK”,则执行图13所示的步骤S1303到S1305中的对于PLL抖动的处理。这些处理通过图10所示的PLL抖动计算单元1007来执行。

首先,计算PLL抖动量的近似值(图13中的步骤S1303)。具体地说,通过将在步骤S1302中计算出的对于在当前时间点在设计阶段中确定的引脚位置处的PLL电源电压引脚的SSO噪声量用作输入,并且通过参照预先存储在PLL抖动计算单元1007(图10)中的SSO噪声量与PLL抖动量之间的相关度特征数据(参见图7),计算PLL抖动量的近似值。

接下来,基于PLL抖动量的近似值,将允许的PLL抖动量设为许可PLL抖动(图13中的步骤S1304)。

然后,基于许可PLL抖动,进行对由FPGA构成的LSI和安装LSI的PCB的定时设计(图13中的步骤S1305)。

在上述的对于PLL抖动的处理之后,在LSI设置确定单元911和LSI间连接确定单元912执行了上述操作之后,PCB的实际装置设计一度确定下来(图13中的步骤S1306)。

在这个时间点确定以下条件(图13中的步骤S1307)。

——PCB的图案数据(尤其是通孔长度)

——PCB的电源和GND模型

然后,由图10所示的实际装置PCB电路分析控制单元1003执行图13所示的步骤S1308。在该步骤中,在以上确定了的实际装置PCB环境的条件下执行通用电路分析仿真器软件(SPICE、HSPICE等),再次对所有的I/O用户设置信息项获得SSO噪声基本特征数据,并且创建其函数表数据。此时将以下参数用作将要提供给电路分析仿真器的参数。

1、实际装置PCB的图案数据(尤其是通孔长度)

2、实际装置PCB的电源和GND模型

3、装置的封装模型

4、装置的缓冲模型

作为上述操作的结果,获得图12所示的SSO噪声量的修正值,用这些修正值来重写图12所示的并且存储在图10所示的SSO噪声基本特征数据存储单元1004中的函数表数据的内容(步骤S1309)。

图10所示的SSO噪声计算单元1002使用在如上所述的更接近实际安装状态的状态下获得的SSO噪声基本特征数据,再次执行图13的步骤S1310中的SSO噪声计算子例程。这些操作与上述的图14中所示出的流程图所代表的操作完全相同。与上述步骤S1302的不同之处在于将经修正数据用作SSO噪声基本特征数据。

当如上所述地对于所有待处理引脚精确地估计了SSO噪声量并且确定了其检查结果为“OK”时,执行图13的步骤S1311和1312中的对于PLL抖动的处理。由图10所示的PLL抖动计算单元1007执行这些处理。

首先,计算PLL抖动量(图13中的步骤S1311)。在此计算的PLL抖动量不同于在步骤S1303中计算出的PLL抖动量近似值,使用在步骤S1310中精确估计的SSO噪声量。即,通过将在步骤S1310中精确估计的对于PLL电源电压引脚的SSO噪声量用作输入,并且通过参照SSO噪声量与PLL抖动量之间的上述相关度特征数据,精确地计算PLL抖动量。

然后,确定计算出的PLL抖动量是否等于或者小于在步骤S1304中设置的许可抖动量(图13中的步骤S1312)。

如果计算出的PLL抖动量大于许可抖动量、步骤S1312的确定结果为“否”,则通过图9所示的引脚设置确定单元906、设置布线设计单元907、LSI设置确定单元911等来改变引脚设置或者各个引脚的I/O标准(I/O用户设置信息)(图13中的步骤S1313)。流程再次返回到步骤S1310,并且重新开始对SSO噪声量的估计。

如果计算出的PLL抖动量等于或者小于许可抖动量、步骤S1312的确定结果为“是”,则由图9所示的SSN/PLL抖动检查单元914执行的处理完成。

如上所述,在粗略地分析了SSO噪声量和PLL抖动量之后基于PCB的实际设计仿真来修正SSO噪声基本特征数据,并且对SSO噪声量和PLL抖动量进行详细分析,从而可以按高精度对同时工作的信号噪声和PLL抖动进行估计。

(在将根据本发明的优选实施方式实现为程序的情况下的结构)

图15为示出可以实现根据本发明优选实施方式的装置的计算机的硬件结构的实施例的框图。

图15所示的计算机包括通过总线1508而互相连接的CPU1501、存储器1502、输入装置1503、输出装置1504、外部存储装置1505、便携式记录介质1509插入其中的便携式记录介质驱动装置1506、以及网络连接装置1507。该图中所示的结构为可以实现上述系统的计算机的一个实施例,这种计算机并不限于该结构。

CPU 1501控制整个计算机。存储器1502为诸如RAM等的存储器,用于在程序执行、数据更新等的时候临时存储在外部存储装置1505(或者便携式记录介质1509)中存储的程序或者数据。CPU 1501通过将程序加载到存储器1502并且执行程序来控制整个计算机。

输入装置1503例如由键盘、鼠标等及其接口控制装置构成。输入装置1503检测用户用键盘、鼠标等进行的输入操作,并且将检测结果通知给CPU 1501。

输出装置1504例如由显示装置、打印装置等及其接口控制装置构成。输出装置1504将在CPU 1501的控制下发送的数据输出到显示装置或者打印装置。

外部存储装置1505例如是硬盘存储装置,并且用于保存各种类型的数据和程序。

便携式记录介质驱动装置1506容纳便携式记录介质1509,例如光盘、SDRAM、压缩闪存等,并且用作对外部存储装置1505的辅助。

网络连接装置1507是用于连接例如LAN(局域网)或者WAN(广域网)的通信线路的装置。

根据该优选实施方式的系统是按如下方式实现的:CPU 1501执行用于执行图9、图10等中描述的所需要功能的程序。该程序例如可以记录在外部存储装置1505中,或者记录在便携式记录介质1509上并且进行发布。另选的是,可以用网络连接装置1507从网络获得该程序。

(对根据本发明的优选实施方式的补充)

除了锁相环中的抖动之外,同时输出操作还增大或者减小逻辑信号的延迟时间,这称为定时推迟(timing push-out)或定时提前(timingpull-in)。也可以用类似的方式来估计定时推迟和定时提前。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号