CN113536722B - 一种基于依赖关系进行参数求值的方法 - Google Patents

一种基于依赖关系进行参数求值的方法 Download PDF

Info

Publication number
CN113536722B
CN113536722B CN202110771128.8A CN202110771128A CN113536722B CN 113536722 B CN113536722 B CN 113536722B CN 202110771128 A CN202110771128 A CN 202110771128A CN 113536722 B CN113536722 B CN 113536722B
Authority
CN
China
Prior art keywords
parameter
parameters
dependency relationship
circuit
dependency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110771128.8A
Other languages
English (en)
Other versions
CN113536722A (zh
Inventor
郭根华
徐启迪
周振亚
吴大可
王晓光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Empyrean Technology Co Ltd
Original Assignee
Beijing Empyrean Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Empyrean Technology Co Ltd filed Critical Beijing Empyrean Technology Co Ltd
Priority to CN202110771128.8A priority Critical patent/CN113536722B/zh
Publication of CN113536722A publication Critical patent/CN113536722A/zh
Application granted granted Critical
Publication of CN113536722B publication Critical patent/CN113536722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/373Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种基于依赖关系进行参数求值的方法,包括以下步骤:1)遍历电路结构中定义的参数赋值表达式,建立参数之间的静态依赖关系;2)对电路结构中定义的参数集合进行拓扑排序,并计算所有参数的值;3)遍历电路实例化时的参数赋值表达式,建立参数之间的动态依赖关系;4)结合静态参数和动态依赖关系,得到最终的求值参数集合;5)按顺序遍历最终的求值参数集合,直接进行求值计算。本发明适用于大规模模拟电路的时序仿真,可以有效地提高电路仿真过程中对电路参数进行求值计算的速度,从而大大减少建立电路拓扑结构的时间,加速了电路的整体设计周期。

Description

一种基于依赖关系进行参数求值的方法
技术领域
本发明涉及集成电路自动化产品设计领域,涉及电路仿真过程中对网表中电路的解析和拓扑构建过程,特别涉及一种基于依赖关系进行参数求值的方法。
背景技术
电路仿真是集成电路功能验证的重要手段。由电路设计图(Schematic)产生的网表文件,作为电路仿真的主要输入,需要将其进行解析并且构建出电路的拓扑结构,然后才能建立电路方程组并进行求解。电路拓扑结构的构建,是一个复杂且耗时的过程,随着集成电路规模的急剧增加,各层电路都可能会定义数量巨大的参数表达式,其中包括普通参数、器件参数和模型参数等,而在电路实例化过程中,每个电路实体都可以直接或间接改变电路结构中所定义的那些参数,因此,参数之间的依赖关系是一个庞大而复杂的集合。
在建立整个电路拓扑结构之前,必须将所有子电路实体最终使用的参数都计算出来,以便确定子电路中各器件、模型的参数值等,才能进一步判断哪些电路实体可以共享相同的子电路拓扑结构。因此,电路参数的计算,是构建电路拓扑结构的前提条件,尤其是当扫描条件改变时,所影响的那些参数还可能需要进行多次求值计算。因此,设计一种快速高效的参数求值方法,对电路仿真的验证工作具有很大的影响,对于实际电路设计也具有重要意义。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种基于依赖关系进行参数求值的方法,对电路结构定义的和实例化时的参数表达式进行遍历,分别得到参数之间的静态依赖关系和动态依赖关系,并结合两者的集合求出最终的有序的影响参数集合,然后按顺序依次进行求值,使得求值过程中无需再去查找和修改依赖关系,从而大大提高了电路拓扑结构的建立速度。
为实现上述目的,本发明提供的基于依赖关系进行参数求值的方法,包括以下步骤:
1)遍历电路结构中定义的参数赋值表达式,建立参数之间的静态依赖关系;
2)对电路结构中定义的参数集合进行拓扑排序,并计算所有参数的值;
3)遍历电路实例化时的参数赋值表达式,建立参数之间的动态依赖关系;
4)结合静态参数和动态依赖关系,得到最终的求值参数集合;
5)按顺序遍历最终的求值参数集合,直接进行求值计算。
进一步地,所述参数赋值表达式中只包含常数和参数ID两种,其中参数ID是指参数的标识,所述参数ID的可访问的范围包括三种:父层电路可访问、实例化所在电路可访问、定义所在的电路可访问。
进一步地,所述静态依赖关系的表达方式采用数据结构中的有向图,并以邻接表形式存储,其中有向图中的节点记录了参数ID和对应的邻接表地址。
进一步地,所述步骤2)进一步包括对有向图进行拓扑排序,得到按依赖关系排好序的参数集合,其中,在求值计算过程中,当参数的值无法求出时,将其暂时标记为未定义,等到实例化时进行处理。
进一步地,所述步骤3)的动态依赖关系的表达方式使用字典表的方式,其中键为赋值表达式左边的参数ID,值为赋值表达式右侧所有参数ID的无重复的集合,记作实例化参数的依赖集合,所述依赖集合中的所有参数都会直接影响当前参数的值。
进一步地,所述步骤4)的所述最终的求值参数集合,包括实例化参数集合本身和实例化参数集合所影响的所有参数的有序集合。
进一步地,确定所述实例化参数集合所影响的所有参数的有序集合进一步包括以下步骤,
71)对实例化参数集合的每个参数,深度遍历静态依赖关系对应的有向图,并结合动态依赖关系确定是否需要中断当前遍历;
72)当某个节点的邻接表都已经遍历完,就把该节点对应的参数ID加入到临时有序集合;
73)实例化参数集合的所有参数都深度遍历完之后,将临时有序集合进行逆序操作,得到的结果就是实例化参数集合所影响的所有参数的有序集合。
更进一步地,所述步骤5)进一步包括,如果参数的值无法计算得到,则说明该参数没有定义或形成了依赖循环,需进行报错处理。
为实现上述目的,本发明还提供一种基于依赖关系进行参数求值的装置,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时执行上述的基于依赖关系进行参数求值的方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述的基于依赖关系进行参数求值的方法的步骤。
本发明的一种基于依赖关系进行参数求值的方法,与现有技术相比,具有如下有益效果:本发明是在电路仿真过程中,通过建立电路结构中所定义参数的静态依赖关系和电路实例化时的动态依赖关系,并结合两者求出最终的有序的影响参数集合,然后按顺序依次对参数进行求值。这种方法在网表的解析过程中,一次性地确定了参数之间的求值的先后顺序,无需在计算过程中再去查找相互依赖关系以判断所依赖参数的值是否已经计算出来,且之后可以多次根据这个求值顺序进行快速求值,为电路拓扑结构的构建和共享提供了高效率的判断方法,大大减少了仿真过程的整体时间。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明的基于依赖关系进行参数求值的方法的流程图;
图2为一个网表中的两层电路结构定义;
图3为图2中的sub2电路定义中参数依赖关系的有向图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的基于依赖关系进行参数求值的方法流程图,下面将参考图1,对本发明的基于依赖关系进行参数求值的方法进行详细描述。
在步骤11,遍历电路结构中定义的参数赋值表达式,建立参数之间的静态依赖关系。
电路参数包括名字以及在语法规则中的大小写明感属性,为了便于描述,将电路参数的名字和大小写敏感属性合称为电路参数的标识(ID)。电路参数的赋值表达式,左侧是参数ID,右侧是表达式。其中,表达式可以为空,也可以是由常数、参数ID以及函数调用构成的可以进行求值计算的表达式。由于函数调用最终还是转化为赋值表达式,因此,可以认为参数赋值表达式中只包含常数和参数ID两种。
表达式中的参数ID,根据不同的语法规则,其可访问的范围分为三种:父层电路可访问、实例化所在电路可访问、定义所在的电路可访问。同时,参数取值的优先级也分为两种:全局优先和本地优先。全局优先时,从顶层电路开始查找参数,没找到则继续往下层电路查找,直到找到或到达可访问的最底层电路(实例化所在电路或者定义所在的电路);本地优先时,先在实例化所在电路中查找,没找到且如果可访问定义所在的电路,则在定义所在的电路中查找,否则从父层电路开始往上找,直到找到或者到达顶层电路。
由于电路结构定义中的参数包括普通参数、器件参数和模型参数等,但是其赋值表达式的语法规则都相同,并且表达式中参数的可访问范围和优先级规则也都相同,因此,本发明后面的陈述都以普通参数为例进行说明。
在该步骤中建立静态依赖关系的过程,首先需要遍历电路结构定义的参数赋值表达式。在遍历每个赋值表达式的过程中,需要记录等号左侧的参数ID以及等号右侧的参数ID的集合,并以此建立左侧参数依赖于右侧参数的关系。如果右侧表达式中没有出现参数ID,都是常数,那么说明左侧参数不依赖任何其他参数。根据上述方法,依次建立整个电路结构中的所有参数之间的依赖关系,由于这些参数赋值表达式都是定义在电路结构中,在电路实例化时可能会被改变,因此,此时得到的依赖关系只是一种静态的关系。
参数依赖关系的表示方式,本发明采用数据结构中的有向图,并以邻接表形式存储。有向图中的节点记录了参数ID和对应的邻接表地址。如果某个节点的邻接表不为空,表示该节点对应的参数值发生变化时,邻接表中所有节点中的参数都会被直接影响;如果某个节点的邻接表为空,则表示该节点对应的参数不会影响其他任何参数。
步骤22,对电路结构中定义的参数集合进行拓扑排序,并计算所有参数的值。
在该步骤中的计算所有参数的值,是指对电路结构中定义的所有参数按照依赖关系进行排序后,按顺序进行求值。
由于步骤11中已经对电路结构中定义的参数集合建立了静态依赖关系,并以有向图表示。因此,对该有向图进行拓扑排序后,得到的结果就是按依赖关系排好序的参数集合。但是,由于所有的参数赋值表达式都有可能在实例化时被修改,也可能会保持不变。因此,在求值计算过程中,即使发现有参数的值无法求出,也暂时标记为未定义,而不直接报错,需要等到实例化的时候再处理。对于未定义的参数,除了确实找不到其定义的情况,还有一种可能,就是处于依赖循环中,在有向图中表现为形成了环路。但是,这种情况仍然不需要报错,因为实例化的时候,如果环路中的某个参数被重定义,则环路可能会被断开。
在步骤33,遍历电路实例化时的参数赋值表达式,建立参数之间的动态依赖关系。
在该步骤中的建立动态依赖关系的过程,首先需要遍历电路实例化时的所有参数赋值表达式。对每个赋值表达式的遍历过程与步骤11相同。
根据步骤11中遍历赋值表达式的方法,依次建立该电路在该次实例化时的所有参数之间的依赖关系,由于这些赋值表达式很可能重新定义了原来电路结构中定义的部分或全部参数,每一次实例化都有可能与其他实例化的结果不同,因此,得到的依赖关系是一种动态的关系。
动态依赖关系的表示方式,本发明使用字典表,其中键(Key)为赋值表达式左边的参数ID,值(Value)为赋值表达式右侧所有参数ID的无重复的集合(Set),为方便后续描述,我们称这个集合为实例化参数的依赖集合。这个依赖集合中的所有参数都会直接影响当前参数的值,或者说,当前参数的值直接依赖于这个集合中的参数。
对于同一个电路结构定义,可以进行多次实例化,并且每次实例化时重新定义的参数都可能不相同,因此,对应的动态依赖关系也可能需要建立多次。对于同一个电路结构的多个实例化,如果两次实例化中修改的参数个数、参数ID以及对应的赋值表达式都一样,那么这两个实例化实体将可以共享同一个电路拓扑结构。
在步骤44,结合静态参数和动态依赖关系,得到最终的求值参数集合。
该步骤中的最终的求值参数集合,包括实例化参数集合本身和实例化参数集合所影响的所有参数的有序集合。要得到实例化参数集合所影响的所有参数的有序集合,需要对实例化参数集合的每个参数,深度遍历静态依赖关系对应的有向图,并结合动态依赖关系确定是否需要中断当前遍历。当某个节点的邻接表都已经遍历完,就把该节点对应的参数ID加入到一个临时的集合中,我们将其称为临时有序集合。实例化参数集合的所有参数都深度遍历完之后,将临时有序集合进行逆序操作,得到的结果就是实例化参数集合所影响的所有参数的有序集合。
由于参数可访问范围以及取值优先级规则的限制,具体操作可分为两种情况:
(1)实例化时参数表达式的值能够直接求出。
由于实例化时的参数值已经确定,因此对应的动态依赖关系中,每个参数对应的依赖集合是空的。此时,求有序的影响参数集合的步骤如下:
a>初始化有向图中的所有节点的处理状态,都标记为未处理。
b>循环遍历实例化参数集合,为便于描述,将该循环称为外循环。
c>对每个实例化的参数,查找其在静态依赖关系对应的有向图中的节点。d>如果当前实例化参数在有向图中的对应节点找到了,将该节点命名为外循环当前节点,将其状态标记为处理中,然后转向步骤e>;否则,继续遍历下一个实例化的参数,转步骤c>。
e>如果外循环当前节点的邻接表不为空,则转步骤f>;否则,继续遍历下一个实例化的参数,转步骤c>。
f>循环遍历当前节点的邻接表中的所有节点,为了便于描述,称该循环为内循环,将遍历的当前节点命名为内循环当前节点。
g>如果内循环当前节点已经标记为已处理状态,继续遍历邻接表中的下一个节点,转步骤g>,否则,转步骤h>;
h>如果内循环当前节点的ID也在实例化参数集合中,表示外循环当前节点会影响内循环当前节点,但是内循环当前节点属于实例化参数集合,说明内循环当前节点不受任何参数依赖,因此,内循环当前节点在内循环的遍历终止,继续遍历邻接表中的下一个节点,转步骤g>;否则,
转步骤i>。
i>如果内循环当前节点的状态为处理中,表明存在依赖循环,报错退出,整个外循环结束;否则,将该节点标记为已处理,继续遍历邻接表中的下一个节点,转步骤g>。
j>内循环结束后,如果邻接表的全部节点都已标记为已处理,那么外循环当前节点就加入到临时有序集合中,并将外循环当前节点标记为已处理状态。
k>继续遍历下一个实例化的参数,转步骤c>,直到外循环结束。
(2)实例化时参数表达式的值不能直接求出。
由于实例化时的参数值无法直接确定,因此对应的动态依赖关系中,各个参数对应的依赖集合至少有一个不为空。此时,求有序的影响参数集合的步骤如下:
a>初始化有向图中的所有节点的处理状态,都标记为未处理。
b>循环遍历实例化参数集合,为便于描述,将该循环称为外循环。
c>对每个实例化的参数,查找其在静态依赖关系对应的有向图中的节点。d>如果当前实例化参数在有向图中的对应节点找到了,将该节点命名为外循环当前节点,将其状态标记为处理中,然后转向步骤e>;否则,继续遍历下一个实例化的参数,转步骤c>。
e>如果外循环当前节点的邻接表不为空,则转步骤f>;否则,继续遍历下一个实例化的参数,转步骤c>。
f>循环遍历当前节点的邻接表中的所有节点,为了便于描述,称该循环为内循环,将遍历的当前节点命名为内循环当前节点。
g>如果内循环当前节点已经标记为已处理状态,继续遍历邻接表中的下一个节点,转步骤e>,否则,转步骤h>;
h>在动态依赖关系所对应的字典表中查询内循环当前节点的ID,如果能够找到,表示内循环当前节点属于实例化参数集合中,且其赋值表达式出现了其他参数ID或自身ID,转步骤i>;否则,转步骤k>;
i>将内循环当前节点在字典表中的依赖集合找到,在依赖集合中查找外循环当前节点,如果没找到,说明内循环当前节点的动态依赖关系中,并不依赖于外循环当前节点。当前内循环遍历过程终止,继续遍历邻接表中的下一个节点,转步骤g>;否则,转步骤j>;
j>如果内循环当前节点的状态为处理中,表明存在依赖循环,报错退出,整个外循环结束;否则,将该节点标记为已处理,继续遍历邻接表中的下一个节点,转步骤g>;
k>内循环结束后,如果邻接表的全部节点都已标记为已处理,那么外循环当前节点就加入到临时有序集合中,并将外循环当前节点标记为已处理状态。
l>继续遍历下一个实例化的参数,转步骤c>,直到外循环结束。
对于上述两种情况,将临时有序集合进行逆序,即可得到最终的求值参数集合。
步骤55,按顺序遍历最终的求值参数集合,直接进行求值计算。
在该步骤中的直接进行求值计算,是对步骤44中得到的最终的求值参数集合,按顺序对参数进行求值计算。求值过程中,不需要再考虑是否有参数因为依赖关系没有求出值,直接计算即可。如果发现无法得到某个参数的值,那么说明该参数确实没有定义或者形成了依赖循环,应该进行报错处理。
图2为一个网表中的两层电路结构定义,假定只有普通参数的定义和子电路的实例化语句,其他的都省略。为了便于描述,以SPICE语法进行描述,但是参数的可访问范围以及取值优先级规则都不限于该语法。
下面以图2所示电路结构中的参数定义与实例化语句,并以子电路sub2为当前电路,对本发明中的各个步骤进行进一步解释和说明:
应用步骤11,对图2中sub2定义的所有参数赋值表达式进行遍历,即在图2中的语句2,‘a=1’、‘b=a+1’和‘c=a+b’,‘d=d+1’,‘e=c’这5个赋值表达式。得到的静态依赖关系为:a直接影响b和c,b直接影响c,c直接影响e,d直接影响d,e不影响任何其他参数。对应的有向图(用邻接表表示)如图3所示,箭头方向表示影响关系,a->b表示参数a影响参数b,即参数a必须在参数b求值前先进行求值。
应用步骤22,对图3中的有向图进行拓扑排序,得到的有序的求值集合为{a,d,b,c,e},其中,a和d的顺序可交换。按顺序进行求值后得到a=1,d=invalid,b=2,c=3,e=3。d的值为invalid,是因为d依赖自身,形成了环路,无法求值。不过,因为是静态依赖关系,在实例化时可能会改变,因此,此时并不需要报错处理。
应用步骤33,对sub2的实例化参数的赋值表达式进行遍历,图2中语句3、4都是对sub2的实例化。
语句3中,参数的赋值表达式右侧都是由常数组成,因此可以直接求出各参数的值,即a=1,b=3,属于步骤44中描述的第一种情况。
语句4中,参数c的赋值表达式中含有参数d,根据不同语法对可访问范围以及取值优先级的规定,参数c的值可能无法直接求出,因此,这种情况属于步骤44描述第二种情况。
应用步骤44,对于步骤33中的两种情况,分别进行说明。
对于第一种情况,以a为根节点,深度遍历图3中的有向图,得到的影响参数集合为{c},b在实例化参数集合中,故遍历过程中没有加入到临时有序集合;以b为根节点,深度遍历图3中的有向图,得到的影响参数集合为{c},由于c已经加入临时有序集合中,故不在重复加入,最终的有序影响参数集合为{c}。
对于第二种情况,字典表为c->{d}。以c为根节点,深度遍历图3中的有向图,由于c的邻接表中只有e一个节点,而e节点并不在字典表中,因此,正常遍历,将e加入到临时有序集合中。最终的有序影响参数集合为{e}。
应用步骤55,对于语句3,最终的有序求值参数集合为{a,b,c},对应的值为{1,3,4};对于语句4,最终的有序求值参数集合为{d,c,e},对应的值需要根据d的可访问范围以及取值优先级规则来确定,这里就不展开说明了。
本发明的优点在于以下两个方面:
第一,静态依赖关系和动态依赖关系相结合,对各种语法各种规则都适应。不同语法的可访问范围以及取值优先级规则都存在差异,本方法结合了静态依赖关系和动态依赖关系,可以灵活地应用到各种语法规则中,高效便利地得到最终的参数求值集合。
第二,得到最终的求值参数集合后,可以多次直接进行参数求值。由于实例化参数的值可能依赖于扫描参数,每扫描一次,其值都会变化。本方法得到最终的求值参数集合,在多次扫描过程中,都只要按顺序进行求值即可,大大节省了电路仿真的时间,提高了仿真验证的效率。
本发明可以加快建立电路拓扑结构的速度,保证了电路仿真验证工作的高效性。本发明通过遍历电路定义和实例化时的参数赋值表达式,建立对应的静态和动态依赖关系,并结合两者求出一个有序的参数集合,然后直接进行计算。本发明大大加快了参数计算的速度,提高了仿真结果的验证效率,缩短电子电路的设计周期,适应了电路规模的急剧增长。
本发明还提供基于依赖关系进行参数求值的装置,包括存储器和处理器,存储器上储存有在处理器上运行的程序,处理器运行所述程序时执行上述基于依赖关系进行参数求值的方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述的基于依赖关系进行参数求值的方法的步骤,所述基于依赖关系进行参数求值的方法参见前述部分的介绍,不再赘述。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于依赖关系进行参数求值的方法,其特征在于,包括以下步骤:
1)遍历电路结构中定义的参数赋值表达式,建立参数之间的静态依赖关系;
2)对电路结构中定义的参数集合进行拓扑排序,并计算所有参数的值;
3)遍历电路实例化时的参数赋值表达式,建立参数之间的动态依赖关系;
4)结合静态参数和动态依赖关系,得到最终的求值参数集合;
所述步骤4)的所述最终的求值参数集合,包括实例化参数集合本身和实例化参数集合所影响的所有参数的有序集合;
进一步地,确定所述实例化参数集合所影响的所有参数的有序集合进一步包括以下步骤,
71)对实例化参数集合的每个参数,深度遍历静态依赖关系对应的有向图,并结合动态依赖关系确定是否需要中断当前遍历;
72)当某个节点的邻接表都已经遍历完,就把该节点对应的参数ID加入到临时有序集合;
73)实例化参数集合的所有参数都深度遍历完之后,将临时有序集合进行逆序操作,得到的结果就是实例化参数集合所影响的所有参数的有序集合;
5)按顺序遍历最终的求值参数集合,直接进行求值计算。
2.根据权利要求1所述的基于依赖关系进行参数求值的方法,其特征在于,所述参数赋值表达式中只包含常数和参数ID两种,其中参数ID是指参数的标识,所述参数ID的可访问的范围包括三种:父层电路可访问、实例化所在电路可访问、定义所在的电路可访问。
3.根据权利要求1所述的基于依赖关系进行参数求值的方法,其特征在于,所述静态依赖关系的表达方式采用数据结构中的有向图,并以邻接表形式存储,其中有向图中的节点记录了参数ID和对应的邻接表地址。
4.根据权利要求3所述的基于依赖关系进行参数求值的方法,其特征在于,所述步骤2)进一步包括对有向图进行拓扑排序,得到按依赖关系排好序的参数集合,其中,在求值计算过程中,当参数的值无法求出时,将其暂时标记为未定义,等到实例化时进行处理。
5.根据权利要求1所述的基于依赖关系进行参数求值的方法,其特征在于,所述步骤3)的动态依赖关系的表达方式使用字典表的方式,其中键为赋值表达式左边的参数ID,值为赋值表达式右侧所有参数ID的无重复的集合,记作实例化参数的依赖集合,所述依赖集合中的所有参数都会直接影响当前参数的值。
6.根据权利要求1所述的基于依赖关系进行参数求值的方法,其特征在于,所述步骤5)进一步包括,如果参数的值无法计算得到,则说明该参数没有定义或形成了依赖循环,需进行报错处理。
7.一种基于依赖关系进行参数求值的装置,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时执行权利要求1-6任一项所述的基于依赖关系进行参数求值的方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1-6任一项所述的基于依赖关系进行参数求值的方法的步骤。
CN202110771128.8A 2021-07-08 2021-07-08 一种基于依赖关系进行参数求值的方法 Active CN113536722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110771128.8A CN113536722B (zh) 2021-07-08 2021-07-08 一种基于依赖关系进行参数求值的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110771128.8A CN113536722B (zh) 2021-07-08 2021-07-08 一种基于依赖关系进行参数求值的方法

Publications (2)

Publication Number Publication Date
CN113536722A CN113536722A (zh) 2021-10-22
CN113536722B true CN113536722B (zh) 2022-05-24

Family

ID=78127086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110771128.8A Active CN113536722B (zh) 2021-07-08 2021-07-08 一种基于依赖关系进行参数求值的方法

Country Status (1)

Country Link
CN (1) CN113536722B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105814568A (zh) * 2013-12-12 2016-07-27 国立大学法人东京工业大学 逻辑电路生成装置以及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207941A (zh) * 2013-04-27 2013-07-17 清华大学 集成电路供电网络全参数模型下瞬态分析方法及系统
CN106951575B (zh) * 2016-01-06 2020-05-26 北京仿真中心 一种基于cosim的多学科虚拟试验仿真方法
CN106650139B (zh) * 2016-12-29 2019-10-25 北京华大九天软件有限公司 一种集成电路自动化设计中方程组解的存在性检查方法
US11568218B2 (en) * 2017-10-17 2023-01-31 Xilinx, Inc. Neural network processing system having host controlled kernel acclerators
CN112257364B (zh) * 2020-10-23 2022-05-20 北京大学 一种gpu加速计算的集成电路静态时序分析方法
CN113033128B (zh) * 2021-03-29 2022-05-24 北京华大九天科技股份有限公司 一种选取电路仿真中牛顿迭代的初值的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105814568A (zh) * 2013-12-12 2016-07-27 国立大学法人东京工业大学 逻辑电路生成装置以及方法

Also Published As

Publication number Publication date
CN113536722A (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
CN101093493B (zh) 数据库查询语言转换方法、转换装置
Aziz et al. SAT: Projected model counting
US8225246B2 (en) Logic injection
CN107665172B (zh) 一种基于复杂加权软件网络的软件缺陷预测方法
US7882121B2 (en) Generating queries using cardinality constraints
US9164742B2 (en) Method and a system for searching for parts of a computer program which affects a given symbol
CN108710662B (zh) 语言转换方法和装置、存储介质、数据查询系统和方法
CN112100451B (zh) 基于图数据库搭建工业神经网络的方法
CN118350325A (zh) 用于优化数字逻辑电路的方法、计算机设备及存储介质
CN113536722B (zh) 一种基于依赖关系进行参数求值的方法
CN114741085A (zh) 数据处理方法、装置、设备及存储介质
CN102662829B (zh) 一种复杂数据结构在代码静态测试中的处理方法和装置
Srinivasan et al. Application of graph sparsification in developing parallel algorithms for updating connected components
CN115292347A (zh) 一种基于规则的主动式sql算法性能检查装置及方法
CN113221528B (zh) 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法
Singh et al. A framework to improve quality of a Java system by performing refactoring
CN114547083A (zh) 数据处理方法、装置及电子设备
EP4191438A1 (en) Software information organization method and device, and computer-readable medium
CN110597850A (zh) 一种提高数据库查询响应速度的常量优化方法
CN110990648A (zh) 一种病毒查询方法、服务器及计算机可读存储介质
CN113076330A (zh) 查询处理方法、装置、数据库系统、电子设备及存储介质
CN112732715B (zh) 一种数据表关联方法、设备以及存储介质
CN110096555B (zh) 一种分布式系统的表匹配处理方法及装置
Carey et al. Integrating widget design knowledge with user interface toolkits
WO2023245626A1 (zh) 用于电子设计自动化的方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant