电子电路仿真和n-端口系统的方法

文档序号:6484966阅读:278来源:国知局
专利名称:电子电路仿真和n-端口系统的方法
技术领域
本发明大体上涉及仿真,具体地说,本发明涉及对大型复杂系统的精确波形级别的计算机仿真。
背景技术
利用计算机系统可以执行仿真操作,从而使设计者或开发者能够在将设计投入生产之前对其进行测试。例如,设计者可使用计算机应用程序建立复杂电路。给出特定输入,该应用程序随后可在特定时刻仿真电路的输出。使用该仿真,设计者可易于构造若干电路原型并对其进行测试,而无需实际建立这些电路。
仿真通常需要大规模的计算资源。以廉价方式提供这些资源的一个方法是使用并行运行的机器群集。例如,可将若干计算机系统联网到一起共同对单一问题进行解算。并行执行这些仿真的一个难题是如何在这些机器中分配和协调工作。
通常使用集成电路增强型仿真程序(SPICE,Simulation Program WithIntegrated Circuit Emphasis)仿真程序或其衍生物来执行电路仿真。这些仿真程序使用称为“正向稀疏(Direct Sparse)”解决方法的数值积分。由于电路已变得较大并且由于信号完整性效应已变得更加重要,因此运行这些仿真要花费惊人的时间。这些仿真通常涉及电路的瞬态特性并且需要解决初始值问题(Initial Value Problem)。
图1是利用初始值问题确定仿真解算过程的流程图。过程100可用于使用正向稀疏方法确定较大仿真的给定分区的解算。例如,可将电路仿真分成若干组块,各个组块可由差分代数方程(DAEs,differentialalgebraic equations)表示。根据一实施例,使用改进节点分析(MNA,modified nodal analysis)提供这些DAE。随后可对这些方程进行简化和求解以获得仿真解算。
过程100由方块102开始。在方块104中,提供来自设备模型的DAE。例如,DAE的形式可为F(t,y,y·)=0.]]>在方块106中,将后向差分(BackwardDifference)公式应用于DAE以获得有限差分方程。有限差分方程的形式可为F(tn,yn,yn-yn-1hn)=0.]]>这些方程为非线性代数方程。
由于非线性方程难以求解并且计算上花费很大,因此在方块108中,执行牛顿-拉弗森(Newton-Raphson,NR)迭代以获得线性代数方程。NR迭代的形式为ynm+1=ynm-(∂Fh∂y′+∂F∂y)-1F(tn,ymn,ymn-yn-1hn).]]>随后在方块110中,可使用线性系统求解程序对形式为Ax=b的所得线性代数方程进行求解。
方块108和110形成一NR回路,可重复该NR回路直到在方块110中线性系统求解程序的解算收敛。在方块112中,确定NR解算是否已收敛。若已收敛,则执行方块114。若解算未收敛,则重复NR回路,并返回到方块108。
在方块114中,若存在需处理的更多的时步(time step),则过程100返回到方块106,且可为新的时间点确定解算。若不存在更多的时步,则该过程结束于方块116。此时,已获得该问题的解算。
芯片设计的验证需要以不同输入波形或动态向量来运行许多瞬态仿真。对仿真实施并行可加速仿真。在并行实施中,通信开销以及通过通信使计算同步会产生瓶颈。由于通信开销和同步计算所需要的通信,正向稀疏方法在并行实施中只能提供有限的性能增进。过程100的NR迭代可被并行化。此“方法中的并行”在由整个电路中任何地方的活动(即,变量值的快速变化)所指示的时标处要求整个电路上的通信同步。
“系统中的并行”已被提出用于电路仿真。在电路仿真文献中,其亦称为“波形松弛”(waveform relaxation)。此方法允许通过在子电路间交换全部波形而对初始值问题进行并行仿真(瞬时仿真)。但是,在大多数实际电路中,由于强耦合系统中的反馈,所得收敛减速。因此造成的后果是,由于收敛缓慢,并行实施的有益效果降低,由此需要大量的松弛迭代。为了解决此问题,已提出处理局部(在一个终端上加载)和全局(在许多终端和子电路上)强耦合的独立方法。在实践中,或者由于各个分区变得太大导致不能获得计算加载的有效并行化,或者由于通信和同步开销使得该方法不能产生应有的效果。因此,需要一种方法,其可减少执行并行仿真所需的时间并且同时兼顾局部和全局强耦合。

发明内容
根据本发明的实施例,提供一种用以执行仿真的系统和方法。利用系统中的并行,该方法将较大问题分解成若干较小分区。执行一系列迭代,直到在这些分区之间交换的波形收敛。引入对强耦合分区的近似预检解算以减少收敛所需的迭代数量。在仿真发生之前引入这些近似预检解算。一旦波形收敛,则仿真已确定一解算。


举例说明了本发明的一或多个实施例,且非局限于附图中的图式,在附图中,类似的参考符号指示类似的元件
图1是一流程图,说明使用初始值问题来确定仿真解算的过程;图2说明一计算机系统,在该计算机系统上可实施本发明的实施例;图3说根据本发明一实施例的计算机系统群集;图4是一流程图,描述根据本发明一实施例的用以对系统进行分区并执行仿真的过程;图5说明一强耦合多端口非线性电路;图6说明根据本发明一实施例的强耦合电路,其包括一近似预检解算;图7说明一分解成若干较小分区的较大分区;图8说明电路700的一个预检器电路,其具有m个近似分区;图9说明对若干不同分区执行仿真的若干处理器;图10说明根据本发明一实施例的并行运行的若干处理器;图11说明一用于强耦合电路的预检器,该强耦合电路类似于预检器电路600;图12说明一包括许多独立分区的电路,其类似于电路800;图13说明一展示双向局部耦合的电路;图14说明使用标准高斯-赛德尔(Gauss-Seidel)分解的缓慢收敛;图15说明非线性元件G2的近似;图16说明包括非线性元件G2的分段线性近似的电路;图17是一曲线图,说明电路的加速收敛;图18说明一双二次滤波电路;图19说明使用高斯-赛德尔分解进行分区的电路;图20是一曲线图,展示使用高斯-赛德尔分解的电路仿真的收敛;图21说明根据本发明一实施例的来自电路分解的预检器;图22说明根据本发明一实施例而分解的电路的收敛;图23A说明一非线性二维网孔(mesh);图23B和23C说明该网孔的分解图;图24说明一图表,其展示来自电路的全基准仿真和全阶线性近似的瓦状结构的中心节点电压;图25说明近似低阶预检器响应与瓦状结构中心节点电压全基准系统之间的差;图26是一曲线图,其使用以预检器为基础的近似的实施例展示三个迭代之后的仿真电压输出错误。
具体实施例方式
本发明描述了一种用以仿真电子电路和物理N-端口系统的方法和系统。应注意,在此描述中,对“一个实施例”或“一实施例”的引用表示所提及的特点包括在本发明的至少一个实施例中。此外,在此描述中,对“一个实施例”或“一实施例”的独立引用非必须引用同一实施例;但是,除非特定陈述或如熟悉此领域的技术人员自该描述所了解,否则这些实施例亦非相互排除。例如,在一个实施例中所描述的特点、结构、作用等也可包括于其它实施例中。因此,本发明可包括本说明书所描述的实施例的各种组合和/或结合。
根据本发明的一个实施例,提供一种用以执行仿真的系统和方法。该方法利用系统中并行将较大问题分解成若干较小分区。执行一系列迭代,直到在这些分区之间交换的波形收敛。引入对强耦合分区的近似预检解算以减少收敛所需的迭代数量。在仿真开始之前引入这些预检解算,以减少局部和全局耦合效应两者。一旦波形收敛,仿真则确定一解算。如下文将描述,近似的引入减少了波形收敛所需的计算时间的量,并且考虑到局部和全局强耦合两者。
通常,将较大仿真分成较小分区是有利的。较小分区可更易于并行化,由此减少仿真所需的时间。此外,较小分区也需要更少的总计算量。通常,通过在这些分区之间交换波形将仿真并行化。波形表示特定分区的输出和输入。一旦处于交换中的波形趋近一共同值,则波形收敛,从而获得一解算。两个分区之间的强耦合可增加收敛所需的迭代数量(或这两个分区之间的波形的交换)。
前述实施只能有效地处理局部强耦合。如使用下文的实例所展示,在对各个分区的仿真开始之前将复合近似(或“预检器”)引入仿真迭代,可大量减少局部和全局耦合效应。因此,可使用较小分区,同时交换波形收敛更为迅速。因此,可大大减少仿真时间,因为更多的分区导致更大的并行化,较小分区需要较少的计算,而减少强耦合效应的结果是收敛需要更少的迭代。
尽管将详尽地论述电路仿真,但是应理解,其它仿真也可受益于本说明书中所描述的技术。例如,可以用联网n-端口来描述生物学、化学以及自动仿真。n-端口可看作是较大系统的一分区并且可与其它系统联网。可使用n-端口来描述的任何类型的系统均可受益于本发明所揭示的技术。例如,n-端口可描述如温度、速率、力、功率等值。目前,例如Verilog AMS等若干仿真标准可使用n-端口来描述各种系统。
图2说明一可实施本发明一实施例的计算机系统。计算机系统200可以是图3将描述的较大群集的一分区。计算机系统200包括一总线202,充当整个计算机系统200的信息分配通道。处理器204耦接到总线202。处理器204可为任何适用的处理器,包括但非局限于Intel和Motorola所制造的处理器。处理器204还可包括多处理器。存储器206(memory)也耦接到总线202。存储器206可包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器等。基本输入/输出单元208从例如键盘、鼠标等接收输入,并且输出到例如显示器、扬声器等输出设备。存贮器210(storage)可包括任何类型的永久或瞬态存贮器,包括磁或光学存贮器,例如硬盘驱动器或只读光盘存贮器(CD-ROM)。操作系统(OS) 212的副本可储存在存贮器210上。OS 212包括运行计算机系统200所必需的软件,并且可为Unix衍生物,例如Linux等。应理解,操作系统212也可为任何其它可利用的操作系统,例如Microsoft Windows或Macintosh操作系统。网络适配器214经由连线216将计算机系统200与群集中的其它系统和例如互联网(Internet)等其它网络连接。应理解,计算机系统200只是可用于实施本发明的计算机系统的一个实例,并且可使用任何其它适合的组态。
图3说明根据本发明一实施例的计算机系统300的群集。可使用对等(peer-to-peer)配置通过中央交换器或路由器302将若干计算机系统200联网到一起。或者,联网系统300中的一个计算机系统200可作为中央服务器。使用此实施将若干廉价计算机系统200联网入群集300中以提供强大的系统,经由该系统可解决并行化的问题。
图4是一流程图,其描述根据本发明一实施例的用以将包括n-端口或电路的系统划分为分区并且执行仿真的过程。过程400描述了将待仿真的较大系统分成较小分区,这些较小分区将用于系统中并行方法中。如下文将描述,通过将整个系统分成较小组块,可减小各个分区的节点数量N,因此,减少了所需的总计算数量。所述的计算包括为了收敛所需要的波形迭代数量而运行每个分区的波形仿真。
与较小分区相比,较大分区,或具有大量未知节点变量的分区,在波形仿真期间通常需要更多的计算。对于大多数无信号完整性效应的纯数字电路而言,每个时间点的计算成本与节点数量N成比例,粗略地表示为Nα,其中α在1.4到1.6之间变化。但是,当包括例如功率网网孔等信号完整性效应时,α可在1.8到2.4之间变化。此外,对于较大电路,由于总活动量更大,因此仿真中时间点的数量更大。总而言之,只要收敛速率和开销不受到负面影响,这些效应则极有利于运行较小的分区。
通常,电路所具有的节点或变量N越小,每个时间点所需要的计算越少。例如,在α=2的系统中,具有1000个节点的分区在波形中的每个时间点将需要~1,000,000个浮点运算。在其它方面,若将1000个节点电路分成10个每个具有100个节点的较小电路,则这些十个电路中的每一个在每个时间点将只需要~10,000个浮点运算,每个时间点共需~100,000个运算。此外,对于较大电路,由于较高的总活动性,因此仿真中的时间点数量较大。
强耦合效应平衡了将系统分成小而又小的分区的优点。例如,一个分区可包括这样一个电路其包括特性严重依赖于该电路中其它元件的特性的元件。若分区将这些强耦合分区分开,则所得仿真通常将需要大量待收敛的波形迭代。因此,由于这些较小分区,所增加的需收敛的迭代的数量可能会超过仿真各个波形迭代所需的时间中的减少。如下文将描述,引入使用预检器的近似,可减少全局和局部耦合两者的效应,从而减小收敛所需的迭代数量。
过程400从方块402开始。在方块404中,将整个系统初始分区成子系统。此分区是根据由于系统的固有性质而产生的弱耦合来完成。可有效地扫描整个系统以确定初始分区的数量及其仿真次序。选择这些分区使其在以固有耦合的次序进行仿真时以相对较少的迭代而收敛。较大初始分区是其中强耦合的结果。如前述,对于各个波形仿真,较大分区需要显著更多的计算时间。较长的时间在计算机加载中产生不稳定性,使并行化受到限制。在方块406中,识别需要进一步并行化的有序分区。藉由将在方块404中产生的分区测验为可进一步进行分区,从而识别这些分区。所识别的分区为大于理想分区的强耦合分区。在方块408中,引入预检器仿真以实现进一步并行化,并且获得精细分区和次序。下文将进一步解释预检器及其运行,但是预检器通常包括将被引入强耦合系统的近似,以提供近似预检解算。预检器将“预检”仿真程序的解算。由于预检器在对这些分区开始仿真之前产生一近似,因此系统减少了局部和全局耦合的效应,下文将对其进行解释。
预检器确定进一步分区的最佳候选物。在方块410中,于计算机平台上以新的次序运行细化分区仿真(包括预检器仿真)。此运行为仿真本身的性能。可使用SPICE、Verilog AMS或其它仿真应用程序来执行仿真。
在方块412中,监视仿真过程,并且执行对所提议分区的收敛的测试。若需要,进一步细化分区以产生最佳组块的集合,从而产生最佳仿真。
通常使用n-端口的互连来描述在例如电路仿真等区域产生的动态系统仿真。例如Verilog AMS等仿真语言使设计者能够以n-端口的方式分级地描述较大规模系统。例如SPICE等电路仿真程序允许以n-端口的方式对子电路进行分级描述。可将任何n+1终端设备描述为n-端口子电路。将各个n-端口内部描述为一组微分和代数方程。端口处的互连导致进一步的约束条件,例如基尔霍夫电流定律(KCL)或基尔霍夫电压定律(KVL)。
图5说明一强耦合多端口非线性电路。电路500包括电路502和504,其可描述为单个n-端口。电路500为所描述的分区404的结果。电路500可为一太大的分区,且因此将增加仿真所需的时间。但是,电路500也为强耦合,并且若分区,则收敛过慢。较大电路500可预先分成两个电路502和504,其中电路502可被近似,且电路504为初始电路500的其余分区。
假设电路502已表示为n-端口阻抗H1,且电路504为较大分区500的其余分区。电路502可为n+1终端电路,其中n为在该电路中所发现的端口数量,且其中电路502与电路504的其余分区共用一共同接地406。
若通过引入计算上便宜的近似(即 来替换电路502从而变换电路500,则可加速收敛。图6说明一强耦合电路600,其包括根据本发明一实施例的近似。电路600为电路500的预检器,以近似电路602取代电路502。其余电路504与前述相同。只要如下文所述近似 合理,则预检器电路600变为与初始电路分区502H1弱耦合,且预检器电路600与电路502的收敛将更为快速。选择近似 以使计算上廉价,从而预检器电路600的仿真花费与分区H2的仿真以及分区502H1的仿真相同的时间。
仿真的波形迭代描述如下1)k=1;初始化波形ΔV1k-1=0]]>2)藉由仿真预检器电路600使 3),藉由仿真所分区的独立阻抗电路502H1使 给出电压波形ΔV1k=V1k-V^1k]]>4)若‖ΔV1k-1-ΔV1k‖>tol,则k=k+1,返回到运行2),否则结束。
对于每个迭代,值k递增。在第一运行1)中,将变量初始化。
在第二运行2)中,确定 值ΔV1k-1对应于前一迭代k-1的实际电压波形与近似电压波形之间的差。将此值输入电路600,运行仿真,并且使用预检器确定此迭代的电流波形的值以及电压波形的近似值。在第三运行3)中,将电压波形的确定值输入电路以确定此迭代的电压波形的值。随后可确定此迭代的实际与近似值之间的差ΔV1k。在运行4)中,若波形ΔV1k-1与ΔV1k之间的差的范数(norm)大于预定公差,则迭代继续,且该过程返回到运行2)。若差小于公差,则波形已收敛,并且已确定电路602的仿真值。下文将进一步描述对波形范数的计算和对预检器中近似的选择。
在一些情况下,必须将若干近似引入单一分区。图7说明一被分解成若干较小分区的较大分区。如图7所示,电路700是初始分区之后余下的一个较大分区。电路700为强耦合,因此已将其分成若干子电路702a-702x,其中x为等于m个近似分区的分区之任意数量。子电路702a-702x均耦合到电路700 H0704的其余分区,其通常包括单个无源元件,例如电阻器。图8说明用于具有m个近似分区的电路700的预检器电路800。子电路702a-702x各自被近似 到 802a到802x所取代。其余电路H0804相同于其余分区704。
电路800的收敛波形迭代如下进行1)初始化k=1。对于i=1,K m,波形sΔVi0=02)藉由仿真预检器800,使 704-(802a...802x)。
3)藉由仿真各个所分区的独立阻抗多端口电路Vik=Hi(Iik),]]>i=1,K m,使 给出波形ΔVik=Vik-V^ik.]]>可并行完成此运行。
4)若对于任何i=1,K m,‖ΔVik-1-ΔVik‖>tol,则k=k+1,返回运行2),否则结束。
此过程类似于上文参照图6所描述的过程。但是,在此情况下,存在必须执行仿真的若干不同分区。对于各个分区,值i递增。图9说明对若干不同分区执行仿真的若干处理器。如图9所示,一旦在第二运行2)中自预检器获得电流波形Iik,则在独立处理器904a-904x上运行对各个初始分区902a-902x的仿真,从而可将第三运行3)并行化。否则,该过程相同于上文关于图6所解释的过程。
如前述,可将第三运行3)并行化,但是串行的跟随第二运行2)。当复合近似的计算成本小于单个电路分区的计算成本Vik=Hi(Iik),]]>则可实现对第二和第三运行2)和3)进一步并行化。图10说明根据本发明一实施例的并行运行的若干处理器。在一实施例中,选择这些若干分区使得各个分区的仿真近似地需要相同量的计算时间。
图10说明若干处理器1002、1004和1006沿时间线1008的动作,同时将上述仿真过程并行化。时间tsim为各个仿真迭代的时间。将迭代期间的仿真时间间隔分成时间段。图10说明具有两个时间段的一个实例,各个时间段需要相等的计算时间计算时间tsim/2。第一处理器1002通常被指派执行预检器的计算。第二和第三处理器1004和1006被执行给单个分区,并且仿真这些分区。在此实例中,第一处理器1002运行复合近似(预检器),第二处理器1004运行第一分区902a而第三处理器1006运行第二分区902b。例如,第一处理器1002在迭代1010a的上半时运行复合近似1012。当近似1012完成时,将其传输到处理器1004和1006,其中各个处理器1004和1006在该迭代的后半时仿真单个分区。换句话说,在介于t0与t0+tsim/2之间的时段中,第一处理器1002计算预检器1012,预检器1012将分别被处理器1004和1006用于运行其仿真1014和1016。在介于t0+tsim/2与t0+tsim之间的时段中,第一处理器1002将计算第一迭代后半时的预检器仿真。在此时间中,处理器1004和1006使用处理器1002在时间t0与t0+tsim/2之间所产生的预检器运行该迭代上半时的仿真。在时间t0+tsim与t0+1.5*tsim之间,处理器1004和1006使用处理器1002在时间t0+tsim/2与t0+tsim之间所产生的预检器解算1022来运行仿真1018和1020。此过程继续,直到仿真收敛。
更具体地说,在仿真时间间隔1010上半时结束时,处理器1002可获得迭代1010a时间间隔上半时的端口电流波形Ii1,i=1,2。将这些电流波形传输到被指派运行独立分区的处理器1004和1006。独立分区开始其对时间间隔上半时的仿真,而处理器1002运行对仿真时间间隔后半时的仿真。当处理器1004和1006在时间t0+tsim结束对时间间隔上半时的仿真时,其将来自用于时间间隔上半时的分区的电压波形Vi1,i=1,2提供到在处理器1002上运行的复合近似,以便在下一迭代中使用。此允许处理器1002在时间t0+tsim进行对第二迭代时间间隔上半时的仿真。流水线式评估实现对该方法的有效并行执行。
图11和12说明本发明的一个实施例,其使用流导和电流而非阻抗和电压。图11说明预检器1100,其用于类似于预检器电路600的强耦合电路。电路1100包括近似电路1102和电路1104的其余分区。图12说明电路1200,其包括大量类似于电路800的独立分区。电路1200包括若干分区1202a-1202x以及电路1204的其余分区。类似于上述阻抗和电压n-端口,波形迭代如下进行1)初始化k=1。对于i=1,K m,波形ΔIi0=02)通过如上文图11所示仿真预检器系统0-1’...m’,使 3)通过仿真各个独立分区的流导多端口电路Iik=Hi(Vik),]]>i=1,K m,使 可并行完成此运行。
4)若对于任何i=1,K m,‖ΔIik-1-ΔIik‖>tol,则k=k+1,返回运行2),否则结束。
如此处所使用,对于第一分区1202a,i=1,而对于最后一个分区1202x,i=m。如前述,波形ΔIik测量电流实际计算值与近似值之间的差。在第四运行4)中,若前一迭代与当前迭代的波形ΔIik之间的差的范数小于公差tol,则迭代已收敛,且对此分区的仿真结束。在图8和图12中,任何一个n-端口均可为混合式多端口。对应输入和输出为混合式(组合)电压和电流。对波形迭代进行改进以用于电路的适当波形输入和输出。
此方法具有若干优点。因为考虑到通常为强耦合的非线性多端口系统,需要一起解决全局和局部反馈情形。先前方法尝试独立于全局反馈来解决由于在单个终端处的加载而产生的局部反馈。这些先前方法开拓了MOS电路的特定单向结构。在强局部双向耦合的存在下,此导致收敛困难。先前方法在强全局耦合的存在下还经受缓慢收敛。
本方法可应用于将非线性波形映射到巴拿赫空间(Banach space)中的非线性波形的任何仿真。将相应巴拿赫空间范数用于迭代期间的收敛测试并且用于计算用于下文的近似的递增算符增益。因此,其不使用多端口系统的特定结构来获得其益处。可开拓基础畴(underlying domain)结构的任何仿真程序均还可用于开拓除了自此方法获得的益处之外的结构。举例而言,在例如SPICE等电路仿真程序中,通过仿真程序本身开拓基础电路方程的稀疏结构。在对单个组件的仿真中使用SPICE允许开拓电路方程的稀疏结构。
可使用各种方法仿真复合近似。例如,在MOS电路仿真程序中,可在事件驱动仿真中使用表格驱动分段近似模型来构造复合近似。这些仿真程序,也称为快计时仿真程序,以比SPICE快10-1000倍的速度提供近似波形。但是,近似波形的精确度仅为5-10%。近似仿真的另一实例使用模阶减少(MOR)。对于较大RLC网络,MOR以引入高达10%的误差为代价提供数量级更快计算。
只要近似满足收敛条件,则可使用任何特定畴仿真程序和特定畴近似。值得注意的是,相当粗的近似导致快速收敛。
下文描述了选择将用于上述过程的近似的过程。用于强耦合系统的预检器包括一复合近似,其具有下列性质1)可在与精确仿真各个初始组件n-端口所需时间相当的时间内,在预检器自身的仿真程序中对预检器进行仿真。上文已关于图10的流水线过程对此作出解释。
2)其余电路H0不重要,其通常包括无源设备,例如电阻器或节点。
3)各个近似组件n-端口 满足关于Hi的误差测试。此为对 递增算符增益的测试。
用于近似的候选物包括具有简化检查表模型的仿真、开关级仿真、宏模型以及降阶模型。这些近似可涉及再利用组件的预特征化。此外,在近似质量与其运行期速度之间存在权衡。在预特征化时,使用下列方法计算Hi与 之间的预特征化假设u1,u2,…,ul为拟合 中所使用的不同输入向量。
假设y1,y2,…,yl为来自运行Hi的输出向量,而输入yj=Hi(uj)假设 为来自运行 的输出向量,而输入y^j=H^i(uj)]]>此处,uj表示输入波形值,yj=Hi(uj)表示给定输入uj的分区Hj的实际波形输出,而y^j=H^i(uj)]]>表示给定输入uj的分区的近似输出。为了确定近似误差,计算对递增算符增益的估算γ^i=maxj,j′||(yj-y^j)-(yj′-y^j′)||||(uj-uj′)||]]>其中输入或输出向量波形的范数为||y||=(∫0T|y(t)|2dt)1/2]]>在任何给定时间t,y(t)为电压或电流变量的向量。|y(t)|表示有序真n-元组的线性空间中的范数。例如,若y(t)是由四个电压构成y(t)=[V1(t),V2(t),V3(t),V4(t)],则|y(t)|=max[abs(V1(t)),abs(V2(t)),abs(V3(t)),abs(V4(t))]或者|y(t)|=(V12(t)+V22(t)+V32(t)+V42(t))1/2在替代实施例中,对于线性算符,γ^i=maxωσ2{Hi(ω)-H^i(ω)};]]>即H∞-范数。例如MATLAB(来自Mathworks)等标准软件也提供对其进行计算的工具。若组件为轻度非线性,则在H∞-范数的计算中可使用算符的线性化版本。
在替代实施例中,可使用其它函数空间模方,例如Ln∞-模方。在此情况下,必须计算一致的递增算符增益 根据本发明一实施例, 应尽可能的小以便获得良好近似。可考虑到子系统Hi的大量潜在候选近似, j=1,2,..n。假设所有均满足预检器运行期约束条件。随后,系统选择具有最低 的近似。
本说明的其余分区描述了本文所述技术的若干实例。这些描述应被理解为实例,且进一步应理解,存在本发明的若干其它可能的实例和实施例。
图13-17说明对根据本发明一实施例的展示双向局部耦合的电路的仿真。图13说明一展示双向局部耦合的电路。电路1300为强耦合电路,其包括非线性元件G2 1302,非线性元件G2 1302可由两个并行二极管方程来描述i2=g2*v2+I0*(ev2/ΦT-e(VT-v2)/ΦT)]]>电路1300将被分区成表示为H1的第一分区1304,以及电路1306的其余分区。电路1300还包括三个电容器C1 1308、C2 1310和C3 1312,一个线性元件G1 1314,以及一个电流源J 1316。
标准节点分析(使用基尔霍夫电流定律)给出两个耦合微分方程(C1+C2)*v·1-C3*v·2+G1*v1=J]]>v1(0)=v1(C3+C2)*v·2-C3*v·1+i2(v2)=0]]>v2(0)=v2用于使用高斯-赛德尔迭代将此电路分解成多个分区的前述方法导致下列方程(C1+C2)*v·k1-C3*v·k-12+G1*vk1=J]]>vk1(0)=v1(C3+C2)*v·k2-C3*v·k1+i2(vk2)=0]]>vk2(0)=v2注意到,其中可分别使用 作为源经由耦合电容器C3 1312分别对各个微分方程进行求解。项 表示对来自其它电路的加载的效应近似。
当与其它电容器C1 1308和C2 1310相比耦合电容器C3 1310具有较大电容时,收敛速率缓慢。图14使用标准高斯-赛德尔分解说明该缓慢收敛。图表1400具有沿x-轴1402绘制的时间,以及沿y-轴1404绘制的电压。各个曲线1406使用先前高 斯-赛德尔分解说明电路1300的各个仿真渐进迭代与实际值的误差。图表1400展示经由十个迭代缓慢收敛的仿真。曲线1406a展示第一迭代的误差,而曲线1406j展示第十个迭代的误差。尽管仿真向正确解算缓慢收敛,但是即使在第十个迭代之后,在一些时间点误差仍超出0.6V。显然,此低收敛速率在实践中是不能被接受的。使用先前方法的启发式分区算法不会分区电路1300。但是,在较大电路如此实行导致并行计算的不足粒度。
图15说明用于非线性元件G2 1302的近似。图表1500展示展示x-轴1502上的电压对y-轴1504上的电流的曲线图。图表1500中展示了整个仿真曲线1506。使用曲线1508展示近似值。使用本说明书所描述的技术获得近似值,例如使用粗分段线性检查表。
图16说明电路1300,其包括对非线性元件G2的分段线性近似1508。预检器电路1600为电路1300,其包括用于替换初始非线性元件1302的近似1602。如图5和6中所描述,分区1604替换分区1304。
图17为曲线图,其使用预检器电路1600说明加速收敛。类似于曲线1500,曲线1700展示沿x-轴1702的时间和沿y-轴1704的电压。该曲线图中的电压为来自由电路1300所产生的实际输出的误差。注意到,y-轴1704上的标度远小于上述y-轴1504上的标度,指示即使对于第一迭代1706a,误差也远小于第十个迭代1506j的误差。通过第三迭代1706c,存在的误差极小,且仿真极为接近电路1300实际计算值。结果为,使用本文所描述的本发明的实施例,与无近似相比,迭代更快速地收敛。
图18-22说明根据本发明一实施例的单向全局和局部双向耦合及其仿真。图18说明双二次滤波电路1800。电路1800包括三个运算放大级1802、1804和1806。从输入电压到输出电压的理想滤波传输函数为二阶,具有振荡响应。实际响应具有非线性效应,例如运算放大器中的转换速度和箝位。此外,线性化变换函数中存在高阶寄生极点和零点。将各个运算放大级1802、1804或1806看作子电路,显而易见,当横断函数块的单向输入-输出信号流时,存在可产生振荡响应的强全局耦合。除了全局耦合之外,在各个连接节点还存在局部双向加载效应。全局耦合快速作用且强大。
图19说明使用高斯-赛德尔分解所分区的电路1800。分解1900展示被分成若干有序分区1902、1904和1906的电路1800。使用已知高斯-赛德尔分解产生这些分区。
图20是曲线图,其使用高斯-赛德尔分解展示电路仿真1800的收敛。图表2000展示沿x-轴2002的时间和沿y-轴2004的电压。曲线2006展示电路1800的实际响应。曲线2008展示使用高斯-赛德尔分解1900的五个迭代之后的输出。曲线2010展示使用高斯-赛德尔分解1900的十个迭代之后的输出。如图所示,波形收敛极为缓慢。
根据本发明一实施例,可以相同于分解图7、8和9中电路700的方式分解电路1800。图21说明根据本发明一实施例的来自电路1800的分解的预检器。将各个子电路级H11802、H21804和H31806看作非线性2-端口阻抗算符。其余电路H02108仅包括节点以及互连线。通过以等效理想电压控制电压源取代非线性运算放大器,可实现对各个级2102、2104和2106的近似。
图22为一图表,其说明根据本发明一实施例而分解的电路1800的收敛。图表2200显示x-轴2202上的时间,和y-轴2204上的输出电压。曲线2206为全仿真。曲线2208为第一迭代之后的输出,而曲线2210为第二迭代之后的输出。如图所示,当使用如图7、8和9中所示的分解时,仿真收敛极快。
图23-26说明根据本发明一实施例的双向局部和全局耦合的非线性网孔实例。图23A说明非线性的两个二维网孔2300。图23B和23C说明网孔2300的分解图。网孔2300可为集成电路(IC)中的功率网。网孔2300包括位于各个内部节点2304处的四个电阻器2302,其连接到四个邻近的节点。在各个节点2304处,将电容器2306和二极管2308连接到接地2310。二极管2308为反向偏压。经由四个连接电阻器2302将网孔角连接到供应节点。将网孔节点分成瓦状结构2312。如图23A中所示,网孔2300包括一个3×2瓦状结构的网。各个瓦状结构2312包括一中心节点2304,一高阻抗电流源2314连接到中心节点2304。
如图23C所示,经由连接电阻器2316将瓦状结构2312连接。这些连接电阻器2316可构成其余分区电路H0,且各个瓦状结构2312可包括分区Hi,如图7、8和9所示。根据本发明一实施例,可以此方式分解网孔2300。
使用线性化阻抗的降阶模型Hi创建网孔2300的近似 所得预检器为可被有效仿真的低阶线性系统。
图24说明一图表2400,其展示来自电路2300的全基准仿真和来自全阶线性近似的瓦状结构2312的中心节点电压。x-轴2402展示时间,而y-轴2404展示输出电压。曲线2406展示全基准仿真,而曲线2408展示全阶线性近似。两个曲线2406与2408之间的差来自二极管2308的非线性。
图25说明近似低阶预检器响应与瓦状结构2312中心节点电压的全基准系统之间的差异。同样,x-轴2502展示时间,而y-轴2504展示电压。曲线2506展示考虑了近似与全基准的差。
图26为一图表,其使用基于预检器的近似的实施例展示三个迭代之后的仿真的电压输出误差。图表2600包括展示时间的轴2602和展示电压的y-轴2604。曲线2606展示,仅在三个迭代之后,误差完全处于可接受公差内。相反,使用标准高斯-赛德尔分解,收敛取代五十个迭代。
应理解,本发明的实施例非局限于电路仿真。例如,可使用本说明书所描述的系统和技术执行若干其它类型的仿真,例如化学仿真、生物学仿真、自动仿真等。可使这些技术适用于特定应用。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术解算范围内,当可利用上述揭示的技术内容作出些许的更动或修饰为等同变化的等效实施例,但是凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
权利要求
1.一种方法,其包括对一系统进行分区;将分区的近似仿真引入所述系统;以及使用所述近似仿真来仿真所述系统。
2.根据权利要求1所述的方法,其还包括产生包括所述近似仿真的预检器。
3.根据权利要求1所述的方法,其中所述的对一系统进行分区包括根据所述系统的固有性质识别弱耦合;根据所述弱耦合,将所述系统划分成所述分区。
4.根据权利要求1所述的方法,其中所述仿真在所述引入之后发生。
5.根据权利要求2所述的方法,其中所述产生一预检器包括从检查表产生一分段线性近似。
6.根据权利要求1所述的方法,其中所述的仿真和引入在联网的机器上并行运行。
7.一种机器可读媒体,储存有可执行程序代码,当执行所述可执行程序代码时,使一机器执行一种方法,所述方法包括对一系统进行分区;将分区的近似仿真引入所述系统;以及使用所述近似仿真来仿真所述系统。
8.根据权利要求7所述的机器可读媒体,其还包括产生包括所述近似仿真的预检器。
9.根据权利要求7所述的机器可读媒体,其中所述的对一系统进行分区包括根据所述系统的固有性质识别弱耦合;以及根据所述弱耦合,将所述系统划分成所述分区。
10.根据权利要求7所述的机器可读媒体,其中所述仿真在所述引入之后发生。
11.根据权利要求8所述的机器可读媒体,其中产生一预检器包括从检查表产生一分段线性近似。
12.根据权利要求7所述的机器可读媒体,其中所述的仿真和引入在联网的机器上并行运行。
13.一种数字处理系统,其包括一数字处理器,其耦接到一显示设备;一存储器,其耦接到所述数字处理器,所述存储器接收一用于仿真的系统,所述处理器对一系统进行分区;将对分区的近似仿真引入所述系统;使用所述近似仿真来仿真所述系统。
14.根据权利要求13所述的数字处理系统,还包括所述处理器产生一包括所述近似仿真的预检器。
15.根据权利要求13所述的数字处理系统,其中所述的对一系统进行分区包括根据所述系统的固有性质识别弱耦合;以及根据所述弱耦合,将所述系统划分成所述分区。
16.根据权利要求13所述的数字处理系统,其中所述仿真在所述引入之后发生。
17.根据权利要求14所述的数字处理系统,其中所述的产生一预检器包括从检查表产生一分段线性近似。
18.根据权利要求13所述的数字处理系统,其中所述的仿真和引入在联网的机器上并行运行。
全文摘要
根据本发明的一实施例,提供一种用以执行仿真(simulation)的系统和方法。通过在系统中使用并行,该方法将较大问题分解成若干较小分区。执行一系列迭代,直到在这些分区之间交换的波形收敛。引入对强耦合分区的近似预检解算(solution),以减少收敛所需的迭代数量。在仿真发生之前引入这些近似预检解算。一旦波形收敛,仿真则确定一解算。
文档编号G06F17/50GK1795450SQ200480014137
公开日2006年6月28日 申请日期2004年5月24日 优先权日2003年5月22日
发明者桑尼尔·C·仙 申请人:艾克斯姆系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1