一种存储器编译器时序仿真方法
【专利摘要】本发明涉及存储器时序仿真技术领域,尤其涉及一种存储器编译器时序仿真方法,通过对时序路径进行划分,使得每个子路径集合仅与一种参数单独相关,并对每个子路径集合针对其单独相关的参数分别进行时序仿真,之后通过数学模型对仿真结果进行计算以获取时序的全路径时序,从而在得到精确仿真结果的同时,有效减少了计算资源的消耗,进而提高了时序仿真的效率,并减少了仿真的成本。
【专利说明】
一种存储器编译器时序仿真方法
技术领域
[0001]本发明涉及存储器时序仿真技术领域,尤其涉及一种存储器编译器时序仿真方法。
【背景技术】
[0002]深亚微米制程下的大规模集成电路时序仿真非常耗时耗资源,特别对高密度存储器编译器而言,时序仿真针对不同的存储器实例(该存储器实例为存储器编译器产生的一个特定容量的存储器宏单元)、输入端斜坡(输入端斜坡为输入端信号从低电平到高电平(或相反)翻转的时间)和输出端负载(输出端负载为输出端驱动的门和导线负载的等效电容)的组合,需要成倍的计算资源,而且在很多情形下,由于时序路径过长,可能会造成仿真失败。
[0003]存储器编译器产生的存储器实例是SoC(SyStem On Chip,片上系统)设计中不可或缺的基础IP(Intellectual Property,智慧财产),其时序模型根据不同的存储器实例分别仿真得出。在同一个存储器实例中,由于时钟斜坡、输入端斜坡和输出端负载的不同,不同的时序需要针对这三种参数的组合分别仿真。以输出端引脚的延时为例,其与时钟斜坡和自身的负载相关。在时序模型中,我们通常会提供以时钟斜坡和输出端负载为索引的7X7 (或9X9,…)的查找表以表示延时,7X7的查找表如图1如示,为时序精确起见,针对不同时钟斜坡和输出端负载索引的组合,延时会被一一仿真,也就是说,对同一个存储器实例的单个时序需要仿真49次。
[0004]另外,由于先进工艺下存储器的密度很高,信号线的延时路径从时钟到输出端,需要经过非常复杂的电路,仿真器需要消耗很多的计算资源,更坏的情况是仿真失败,这在针对大容量的存储器编译器情况下是常见的。
[0005]全时序路径仿真是目前较常用的仿真方法,其对信号的时序路径进行全仿真,即单次仿真从输入端、时钟到输出端的整条时序路径,其缺点是仿真非常消耗计算资源,且容易仿真失败,此外,在存储器编译器中,信号时序可能与时钟斜坡、输入端斜坡、输出端负载和存储器实例的一个或多个组合相关;如图2所示全时序路径仿真需对上述每一种组合进行仿真,但这只是计算资源足够多的理想情况。在工程实践中,全时序路径的仿真是不可取的,因为其消耗太多的计算资源,还很可能发生仿真失败。
[0006]线性插值也是现有的一种仿真技术,这种技术减少了不同输入端、时钟斜坡、输出端负载的仿真组合,仅仿真其中的少数几种组合,其他组合通过线性插值得出,比如图1中的查找表,只仿真Dili,D171,D144,D117,D177这5组时序,其他时序通过线性插值得出。这种技术虽然减少了计算资源消耗,但却具有时序非常不精确的缺点。
[0007]因此,如何找到一种存储器编译器时序仿真方法,以克服采用全时序路径仿真和线性插值的仿真方法的缺陷成为本领域技术人员致力于研究的方向。
【发明内容】
[0008]针对上述存在的问题,本发明公开一种基于时序路径划分的存储器编译器时序仿真方法,应用于对所述存储器编译器产生的存储器实例的时序进行仿真,所述方法包括如下步骤:
[0009]将所述时序的路径划分为若干子路径集合,且每个所述子路径集合仅与一种参数单独相关;
[0010]对每个所述子路径集合分别进行时序仿真得到所述若干子路径集合的时序仿真结果;
[0011]根据所述若干子路径集合的时序仿真结果获取所述时序的全路径时序。
[0012]上述的存储器编译器时序仿真方法,其中,根据所述若干子路径集合的时序仿真结果获取所述时序的全路径时序的步骤具体为:
[0013]通过数学模型对所述若干子路径集合的时序仿真结果进行计算以获取所述时序的全路径时序。
[0014]上述的存储器编译器时序仿真方法,其中,所述参数的种类包括时钟斜坡、输入端斜坡、输出端负载和存储器实例容量。
[0015]上述的存储器编译器时序仿真方法,其中,将所述时序的路径划分为若干子路径集合,具体为:
[0016]若所述时序仿真的对象为所述存储器实例输出端延时的时序,将所述路径划分为输入端斜坡相关子路径集合、输出端负载相关子路径集合和存储器实例容量相关子路径集入口 ο
[0017]上述的存储器编译器时序仿真方法,其中,若所述时序仿真的对象为所述存储器实例输入端数据信号的建立或保持时序,所述建立或保持时序包括输入端信号延时的时序和时钟延时的时序。
[0018]上述的存储器编译器时序仿真方法,其中,将所述输入端信号延时的时序的路径和/或所述时钟延时的时序的路径划分为输入端斜坡相关子路径集合和存储器实例容量相关子路径集合,并分别获取所述输入端信号延时的时序的全路径时序以及所述时钟延时的时序的全路径时序。
[0019]上述的存储器编译器时序仿真方法,其中,所述输入端数据信号的建立时序通过下式计算:
[0020]T1= T Sig1-Tckl
[0021]所述输入端数据信号的保持时序通过下式计算:
[0022]T2= T ck2-Tsig2
[0023]其中,1\为所述输入端数据信号的建立时序,T 2为所述输入端数据信号的保持时序,TslgJP T _均为输入端信号延时的时序的全路径时序,T &和T w均为时钟延时的时序的全路径时序。
[0024]上述的存储器编译器时序仿真方法,其中,将所述时序的路径划分为若干子路径集合的划分点为信号网络中的信号节点。
[0025]上述的存储器编译器时序仿真方法,其中,若两个信号节点之间的子路径包括多个分支路径,对该子路径进行时序仿真的步骤具体为:
[0026]对每个所述分支路径分别进行时序仿真得到各分支路径的时序仿真结果,并对各分支路径的时序仿真结果取最大值,以获取所述两个信号节点之间的子路径的时序仿真结果O
[0027]本发明公开了一种存储器编译器时序仿真方法,通过对时序的路径进行划分,使得每个子路径集合仅与一种参数单独相关,并对每个子路径集合针对其单独相关的参数分别进行时序仿真,之后通过数学模型对仿真结果进行计算以获取时序的全路径时序,从而在得到精确仿真结果的同时,有效减少了计算资源的消耗。
[0028]具体
【附图说明】
[0029]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、夕卜形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未可以按照比例绘制附图,重点在于示出本发明的主旨。
[0030]图1是本发明【背景技术】中以时钟斜坡和输出端负载为索引的查找表;
[0031]图2是本发明【背景技术】中全时序路径的仿真流程图;
[0032]图3是本发明实施例中存储器编译器时序仿真方法的流程图;
[0033]图4是本发明实施例中划分时序路径仿真的流程示意图;
[0034]图5是本发明实施例中输出端延时路径的结构示意图;
[0035]图6是本发明实施例中输入端数据信号的建立或保持时序的路径的结构示意图;
[0036]图7是本发明实施例中两个节点之间具有分支的子路径的结构示意图。
【具体实施方式】
[0037]下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
[0038]如图3和图4所示,本发明公开了一种存储器编译器时序仿真方法,应用于对存储器编译器产生的存储器实例的时序进行仿真,该方法具体包括如下步骤:
[0039]步骤SI,将时序的路径划分为若干子路径集合,且每个子路径集合仅与一种参数单独相关。
[0040]在本发明一个优选的实施例中,该参数的种类包括时钟斜坡、输入端斜坡、输出端负载和存储器实例容量,也就是说,根据具体的时序仿真对象的不同可将时序的路径划分为时钟斜坡相关子路径集合(即与时钟斜坡相关的子路径集合)和/或输入端斜坡相关子路径集合(即与输入端斜坡相关的子路径集合)和/或输出端负载相关子路径集合(即与输出端负载相关的子路径集合)和/或存储器实例容量相关子路径集合(即与存储器实例容量相关的子路径集合),即每个子路径集合仅与时钟斜坡、输入端斜坡、输出端负载和存储器实例容量中的其中一种参数单独相关。
[0041]步骤S2,对每个子路径集合分别进行时序仿真得到若干子路径集合的时序仿真结果O
[0042]若在上述步骤SI中若将时序的路径划分为与时钟斜坡相关的子路径集合、与输入端斜坡相关的子路径集合、与输出端负载相关的子路径集合以及与存储器实例容量相关的子路径集合。进一步的,在步骤S2中,则对上述与时钟斜坡相关的子路径集合、与输入端斜坡相关的子路径集合、与输出端负载相关的子路径集合以及与存储器实例容量相关的子路径集合分别进行时序仿真得到与时钟斜坡相关的子路径集合的时序仿真结果、与输入端斜坡相关的子路径集合的时序仿真结果、与输出端负载相关的子路径集合的时序仿真结果以及与存储器实例容量相关的子路径集合的时序仿真结果。
[0043]步骤S3,根据若干子路径集合的时序仿真结果获取时序的全路径时序。
[0044]在本发明一个优选的实施例中,上述步骤S3具体为:通过数学模型对若干子路径集合的时序仿真结果进行计算以获取时序的全路径时序,进一步的,可以将若干子路径集合的时序仿真结果相加得到该时序的全路径时序,由于针对具体的时序仿真对象,该数学模型会有所不同,针对该数学模型在此便不予详细描述。
[0045]在本发明一个优选的实施例中,上述步骤SI中,将时序的路径划分为若干子路径集合,具体为:
[0046]若时序仿真的对象为存储器实例输出端延时的时序,由于存储器实例输出端延时的时序与输入端斜坡、输出端负载以及存储器实例容量相关,存储器实例输出端延时的时序划分时序路径的方法是将其划分为和输入端斜坡、存储器实例容量和输出端负载之一分别单独相关的子路径集合,其内部包含一条或多条子路径的每个集合仅有一个仿真相关项;因此可以将该时序的路径划分为输入端斜坡相关子路径集合、输出端负载相关子路径集合和存储器实例容量相关子路径集合。
[0047]具体的,如图5所示,存储器实例输出端延时的时序的路径(即存储器实例延时(访问时序)路径)从时钟到输出端,需要经过非常复杂的电路,本发明首先将该路径划分为输入端斜坡相关子路径集合、存储器实例容量相关子路径集合以及输出端负载相关子路径集合,之后,分别对该输入端斜坡相关子路径集合、存储器实例容量相关子路径集合以及输出端负载相关子路径集合进行时序仿真得到该输入端斜坡相关子路径集合的时序仿真结果(即得到输入端斜坡相关延时)、存储器实例容量相关子路径集合的时序仿真结果(即得到存储器实例容量相关延时)以及输出端负载相关子路径集合的时序仿真结果(即得到输出端负载相关延时);然后通过数学模型将输入端斜坡相关子路径集合的时序仿真结果、存储器实例容量相关子路径集合的时序仿真结果以及输出端负载相关子路径集合的时序仿真结果进行计算得到该存储器实例输出端延时时序的全路径时序,在本发明优选的实施例中,该数学模型可以为相加的公式,即可以将输入端斜坡相关子路径集合的时序仿真结果、存储器实例容量相关子路径集合的时序仿真结果以及输出端负载相关子路径集合的时序仿真结果进行相加得到该存储器实例输出端延时的时序的全路径时序。
[0048]在本发明一个优选的实施例中,若时序仿真的对象为存储器实例输入端数据信号的建立或保持时序,该建立或保持时序包括输入端信号延时的时序和时钟延时的时序。
[0049]在此基础上,进一步的,将输入端信号延时的时序的路径和/或时钟延时的时序的路径划分为输入端斜坡相关子路径集合和存储器实例容量相关子路径集合,并分别获取输入端信号延时的时序的全路径时序以及时钟延时的时序的全路径时序。
[0050]在本发明一个优选的实施例中,输入端数据信号的建立时序通过下式计算:
[0051]T1= T Sig1-Tckl
[0052]输入端数据信号的保持时序通过下式计算:
[0053]T2= Tck2-Tslg2
[0054]其中,T1为输入端数据信号的建立时序,T 2为输入端数据信号的保持时序,T _和Tslg2为输入端信号延时的时序的全路径时序,T &和T 为时钟延时的时序的全路径时序。
[0055]具体的,如图6所示,存储器实例输入端数据信号的建立或保持时序一般与时钟斜坡、输入端斜坡和存储器实例容量相关,建立或保持时序需要分别仿真输入端信号延时(Tslg)的时序和时钟延时(Tdi)的时序,输入端信号延时的时序的路径的划分方法是将其划分为和输入端斜坡与存储器实例容量之一分别单独相关的子路径集合(即输入端斜坡相关子路径集合和存储器实例相关子路径集合),内部包含一条或多条子路径的每个集合仅有一个仿真相关项。时钟延时路径的划分方法是将其划分为和输入端斜坡与存储器实例容量之一分别单独相关的子路径集合(即输入端斜坡相关子路径集合和存储器实例相关子路径集合),内部包含一条或多条子路径的每个集合仅有一个仿真相关项。在输入端信号延时(Tslg)的全路径时序和时钟延时(TJ的全路径时序分别按划分的子路径集合仿真得出后,将建立时序或保持时序代入上述算式得到各自的结果(其中,TslgA T slg2、Tcklig T ck2均不相同)。
[0056]在本发明一个优选的实施例中,将时序的路径划分为若干子路径集合的划分点为信号网络中的信号节点。
[0057]在此基础上,进一步的,若两个信号节点之间的子路径包括多个分支路径,对该子路径进行时序仿真的步骤具体为:
[0058]对每个分支路径分别进行时序仿真得到各分支路径的时序仿真结果,并对各分支路径的时序仿真结果取最大值,以获取上述两个信号节点之间的子路径的时序仿真结果。
[0059]具体的,本发明将时序的路径划分为若干子路径集合的划分点为信号网络中的信号节点。一条长时序路径中间节点可能会出现分支路径,如图7所示,两个信号节点NI和N2之间的子路径包括三条分支路径:P1,P2、P3,各分支路径的延时分别通过仿真得到,并以取最大值(max)的方式计算出节点NI到N2之间的子路径的延时。
[0060]由上述实施例可知,本发明采用的时序路径仿真的方法,极大的减少了仿真次数。具体的,以图1中的延时查找表为例,假设存储器编译器需要提供16个存储器实例,那么此延时需要进行16*7*7 = 784次仿真;而本发明的方法对存储器实例相关子路径集合进行16次仿真,时钟斜坡相关子路径集合进行7次仿真,输出端负载相关子路径集合进行7次仿真,一共需要30次仿真。同时由于子路径所在的信号网络减小了,单次仿真消耗的计算资源也极大地减小了,从而节约了计算资源。
[0061]综上所述,本发明公开了一种存储器编译器时序仿真方法,通过对时序路径进行划分,使得每个子路径集合仅与一种参数单独相关,并对每个子路径集合针对其单独相关的参数分别进行时序仿真,之后通过数学模型对仿真结果进行计算以获取时序的全路径时序,从而在得到精确仿真结果的同时,有效减少了计算资源的消耗,进而提高了时序仿真的效率,并减少了仿真的成本。
[0062]本领域技术人员应该理解,本领域技术人员在结合现有技术以及上述实施例可以实现变化例,在此不做赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
[0063]以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【主权项】
1.一种存储器编译器时序仿真方法,其特征在于,应用于对所述存储器编译器产生的存储器实例的时序进行仿真,所述方法包括如下步骤: 将所述时序的路径划分为若干子路径集合,且每个所述子路径集合仅与一种参数单独相关; 对每个所述子路径集合分别进行时序仿真得到所述若干子路径集合的时序仿真结果; 根据所述若干子路径集合的时序仿真结果获取所述时序的全路径时序。2.如权利要求1所述的存储器编译器时序仿真方法,其特征在于,根据所述若干子路径集合的时序仿真结果获取所述时序的全路径时序的步骤具体为: 通过数学模型对所述若干子路径集合的时序仿真结果进行计算以获取所述时序的全路径时序。3.如权利要求1所述的存储器编译器时序仿真方法,其特征在于,所述参数的种类包括时钟斜坡、输入端斜坡、输出端负载和存储器实例容量。4.如权利要求3所述的存储器编译器时序仿真方法,其特征在于,将所述时序的路径划分为若干子路径集合,具体为: 若所述时序仿真的对象为所述存储器实例输出端延时的时序,将所述路径划分为输入端斜坡相关子路径集合、输出端负载相关子路径集合和存储器实例容量相关子路径集合。5.如权利要求3所述的存储器编译器时序仿真方法,其特征在于,若所述时序仿真的对象为所述存储器实例输入端数据信号的建立或保持时序,所述建立或保持时序包括输入端信号延时的时序和时钟延时的时序。6.如权利要求5所述的存储器编译器时序仿真方法,其特征在于,将所述输入端信号延时的时序的路径和/或所述时钟延时的时序的路径划分为输入端斜坡相关子路径集合和存储器实例容量相关子路径集合,并分别获取所述输入端信号延时的时序的全路径时序以及所述时钟延时的时序的全路径时序。7.如权利要求6所述的存储器编译器时序仿真方法,其特征在于,所述输入端数据信号的建立时序通过下式计算: T1= T Slgl-Tckl 所述输入端数据信号的保持时序通过下式计算:T2= Tck2-Tslg2 其中,!\为所述输入端数据信号的建立时序,1~2为所述输入端数据信号的保持时序,TslgJP T _2均为输入端信号延时的时序的全路径时序,τ &和τ m均为时钟延时的时序的全路径时序。8.如权利要求1所述的存储器编译器时序仿真方法,其特征在于,将所述时序的路径划分为若干子路径集合的划分点为信号网络中的信号节点。9.如权利要求8所述的存储器编译器时序仿真方法,其特征在于,若两个信号节点之间的子路径包括多个分支路径,对该子路径进行时序仿真的步骤具体为: 对每个所述分支路径分别进行时序仿真得到各分支路径的时序仿真结果,并对各分支路径的时序仿真结果取最大值,以获取所述两个信号节点之间的子路径的时序仿真结果。
【文档编号】G06F9/455GK105824680SQ201510007436
【公开日】2016年8月3日
【申请日】2015年1月7日
【发明人】张爱林, 王林, 郑坚斌
【申请人】展讯通信(上海)有限公司