首页> 中国专利> 通过时域划分实现并行计算的电路仿真方法

通过时域划分实现并行计算的电路仿真方法

摘要

本发明涉及通过时域划分实现并行计算的电路仿真方法,属于集成电路设计技术领域;该方法包括:给定一个电路仿真的输入文件,该文件用于描述需要仿真的电路的拓扑结构、外部激励信号以及仿真参数;根据实际的计算资源的情况将仿真时间平均分割成若干片段;相邻的两个时间片段之间有一部分重叠的时间;对于每个时间片段单独进行瞬态分析;不同的时间片段利用不同线程或不同进程在不同的计算单元上同时进行;在所有的时间片段的瞬态分析都完成之后,对所有的时间片段的瞬态分析得到的结果进行波形拼接,得到整个仿真时间范围电路各个节点的电压的波形,再进一步的处理得到其它所需要的信息。本发明可提高电路设计效率,缩短电路产品的上市时间。

著录项

  • 公开/公告号CN102087678A

    专利类型发明专利

  • 公开/公告日2011-06-08

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201110003028.7

  • 发明设计人 叶佐昌;李扬;余志平;

    申请日2011-01-07

  • 分类号G06F17/50(20060101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人廖元秋

  • 地址 100084 北京市海淀区清华园1号

  • 入库时间 2023-12-18 02:30:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-01

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20120711 终止日期:20160107 申请日:20110107

    专利权的终止

  • 2012-07-11

    授权

    授权

  • 2011-07-20

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20110107

    实质审查的生效

  • 2011-06-08

    公开

    公开

说明书

技术领域

本发明属于集成电路设计技术领域,特涉及EDA领域中获得电路时域特性的分析方法。

背景技术

电子设计自动化(EDA)是以软件为载体的用于在设计阶段分析预测集成电路性能的方法。电路仿真,例如Synopsys公司的产品HSPICE或者Cadence公司的产品Spectre,是用于电路分析的EDA方法。电路仿真所针对的对象是采用电路网单或其它形式描述的电路。电路由晶体管,电阻,电容等元件连接组成。各元件之间连接的部分称为节点。电路仿真通过采用一定的器件模型计算得到电路的电学特性,例如获得电路中节点的电压和支路的电流。

电路仿真通过基尔霍夫电压和电流定律建立方程并求解方程,其实施步骤通常由两部分组成。第一部分为电路方程的建立。在电路方程的建立阶段,电路仿真根据电路结构以及电路中节点的电压和支路的电流建立方程。第二部分是电路方程的求解。具体求解的方程的类型依不同的电路仿真方法而不同,包括微分方程、线性方程和非线性方程。

瞬态分析是一种电路仿真方法,主要根据电路结构、驱动信号以及仿真参数(输入信息)计算出电路中各个节点的电压随时间变化的曲线(输出结果)。

瞬态分析的输入通常包含以下信息:

1)电路结构:电路的元件组成与拓扑结构。

2)驱动信号:电路的外部激励信号。

3)仿真参数:所需要做的仿真的属性,例如仿真类型、总时间,步长,精度等。

瞬态分析的输出通常为电路中各个节点的电压随时间变化的曲线,又称为各个节点电压的波形。利用这个波形可以进行进一步的后处理来得到其它想要的信息,例如电路的频谱特性等。

瞬态分析的方法可以看作是在一个给定的初始条件下,通过建立并求解电路对应的常微分方程(1)

dxdt=f(x,u),x|t=0=x0---(1)

来得到电路各个节点随时间变化的波形。式(1)中,x称为状态,表示电路节点的电压或支路的电流;x0表示初始状态;u表示电路的驱动信号;f(x,u)由电路结构决定。其中,x为待求量。

随着集成电路规模和性能的不断提高,电路仿真的计算量日益增大。尤其对于数-模混合(即包含数字电路成分又包括模拟电路成分)的集成电路,由于其规模大,功能复杂,因而仿真需要很长时间。模-数转换器和锁相环是数-模混合电路中的两类典型的电路,它们在工业上的应用十分广泛。一个典型的模-数转换器电路的瞬态分析消耗的仿真时间通常达到几天到几周。对于高精度的模-数转换器,所需要的仿真时间更长。这大大地制约了电路设计的效率,不仅提高了电路设计的人工成本,而且延长了电路产品的上市时间,进而使产品的竞争力降低。

并行计算是提高电路仿真的计算效率的一种方法。它本质上是通过大量的微处理器来同时处理问题的不同部分,从而缩短总的计算时间的一种方法。随着计算机成本的降低,人们普遍希望能够通过并行计算提高计算效率。然而,在实际中,并行计算并非对所有问题都能大幅度地提高计算效率。只有适合并行计算的问题才能利用并行计算大幅度地提高计算效率。并行计算已经被应用于电路仿真中。在电路仿真中实现并行计算的主要方法包括电路方程建立的并行化以及电路方程求解的并行化。电路方程的建立属于适合并行化的一类计算问题。这是因为在电路方程的建立中,关于不同的元件的计算是相互独立的,因而采用并行计算可以大幅度地提高电路方程建立的效率。在电路方程求解方面,人们也在寻求用并行计算提高计算效率的方法。典型的方法是将电路分成若干部分,或者等价的来说是将电路对应的矩阵分成不同的部分,然后用不同的计算机处理器计算各个部分。由于电路的各个部分之间有连接,因此在并行计算时各个处理器之间需要进行数据的交换。数据交换的过程本身需要消耗额外的代价。这个额外的代价一般而言会抵消掉一部分由于并行计算带来的效率的提高。某些情况下,会使并行计算与单个计算机计算相比变得毫无优势可言。一般而言,电路方程的求解属于这样一类问题,也就是说采用并行计算无法大幅度地提高电路方程求解的效率。由于电路方程的建立和求解所占的时间大致在一个数量级。因而采用并行化无法使整个计算的效率大幅度地提高。目前,在采用这一类的并行计算之后,电路的瞬态分析,例如Cadence公司的APS等,其计算量仍然很大。

发明内容

本发明的目的在于为克服已有技术的不足之处,提出一种通过时域划分实现并行化计算的电路仿真方法,使得瞬态分析可以实现高效率的并行化,提高电路的瞬态分析的效率,从而提高电路设计效率,缩短电路产品的上市时间。

本发明一种通过时域划分实现并行化计算的电路仿真方法,包括以下步骤:

1)给定一个电路仿真的输入文件,该文件用于描述需要仿真的电路的拓扑结构、外部激励信号以及仿真参数;

2)根据实际的计算资源的情况将仿真时间分割成若干片段:{t0,t′0},{t1,t′1},…,{tn,t′n},其中t0<t′0,t1<t′1,…,tn<t′n;t0,t′n分别与输入文件中定义的初始时间、终止时间一致,n为正整数;相邻的两个时间片段之间有一部分重叠的时间(重叠时间的大小根据被仿真的电路的过渡时间特性而定,例如针对模-数转换器电路),该重叠时间占每个片段时间的3%~5%;所有的时间片段覆盖整个需要仿真的时间范围;

3)对于每个时间片段,根据已有技术单独进行瞬态分析;不同的时间片段利用不同线程或不同进程在不同的计算单元上同时进行;

4)在所有的时间片段的瞬态分析都完成之后,对所有的时间片段的瞬态分析得到的结果进行波形拼接,得到整个仿真时间范围电路各个节点的电压的波形;

5)在步骤1)-4)结束后得到电路各个节点电压的波形后,进行进一步的处理得到其它所需要的信息(采用已知仿真方法)。

本发明的特点及有益效果:

与传统并行电路仿真方法采用的基于电路分块的方法不同,本发明的特点在于在进行瞬态分析时对时间进行分割,利用不同的计算单元(包括处理器和计算机)来计算不同的时间段,在计算完成后再进行数据的拼接。这个方法带来的有益的效果在于,由于不同时间段的计算过程之间不需要进行数据的交换,它可以大幅度提高并行的效率。这个方法的另外一个好处在于,相对基于电路分块的并行电路仿真方法而言,其实现要简单很多。

附图说明

图1为本发明采用的一个电路输入文件例子的示意图;该输入文件为电路网单形式的输入文件;该电路网单描述的是一个3阶的Sigma-Delta模-数转换电路。

图2为该电路的拓扑结构图。

图3为本发明在时间上划分的例子的示意图。

图4为本发明将时间上划分好的子任务利用多个处理器进行并行计算的示意图。

图5为本发明将各个子任务计算得到的结果进行组合的过程;其中,

图5(a)为显示了将各个时间片段的子任务得到的结果直接绘制出来得到的电压随时间变化的曲线。

图5(b)为拼接后的电压随时间变化的曲线。

图6为本发明将组合好的输出信号通过傅里叶分析得到的频谱,以及不采用并行计算而采用单个CPU进行电路仿真得到的输出信号的频谱的比较。

具体实施方式

下面结合附图及实例进一步详细说明本方法的具体内容。

本发明提出的通过时域划分实现并行化计算的电路仿真方法,包括以下步骤:

1)给定一个电路仿真的输入文件,该文件用于描述需要仿真的电路的拓扑结构、外部激励信号以及仿真参数(通常此类文件采用电路网单的方式,但不限于此种形式);其中,电路的拓扑结构是所需要分析的电路本身,外部激励信号是用于模拟该电路在某个特定输入下响应的激励波形,仿真参数是计算中的诸如初始时间,终止时间,以及仿真精度等参数。输入文件的例子如图1所示。该文件描述了一个实施例的模-数转换器电路的拓扑结构1,电源及外部激励信号2和仿真参数3等信息。该模-数转换器的拓扑结构如图2所示,这是一个典型的3阶Sigma-Delta结构的模-数转换器,由3个积分器、1个比较器(COMP)和1个1位数-模转换器(DAC)组成。其中,3个积分器分别由运算放大器AMP1、AMP2和AMP3与相应的开关电容外围电路组成。输入信号VP和VN(模拟信号)经过3级放大器放大并经过比较器COMP量化后产生输出信号(COMP的P3、P4端口的数字信号)。该输出信号再通过数-模转换器DAC转换成模拟信号(DAC的P3、P4端口的信号)后反馈到积分器的输入端。图中输入信号REF为参考电平,用于确定该模-数转换器工作时所需要的参考电压。

2)根据实际的计算资源的情况(例如根据实际共有多少计算机,多少CPU,多少内核可以使用等)将仿真时间分割成若干片段:{t0,t′0},{t1,t′1},…,{tn,t′n},其中t0<t′0,t1<t′1,…,tn<t′n;t0,t′n分别与输入文件中定义的初始时间、终止时间一致,n为正整数;相邻的两个时间片段之间有一部分重叠的时间,重叠时间的大小根据被仿真的电路的过渡时间特性而定,例如针对模-数转换器电路,该重叠时间占每个片段时间的3%~5%;所有的时间片段覆盖整个需要仿真的时间范围。图3显示了时间分割的例子,在这个例子中,整个需要仿真的时间为{t0,t′2},将该时间分割成3个片段:{t0,t′0},{t1,t′1},{t2,t′2},相邻的时间段之间有一部分重叠的时间,重叠时间约占每个片段时间的5%。

3)对于每个时间片段,根据已有技术单独进行瞬态分析;不同的时间片段可以利用不同线程或不同进程在不同的计算单元(包括CPU内核,CPU,以及不同计算机)上同时进行。图4显示了将对应不同时间片段的子任务分配到不同的CPU上进行处理的方法。例如,图4中,将{t0,t′0}时间片段的子任务分配到CPU#0进行处理,将{t1,t′1}时间片段的子任务分配到CPU#1进行处理,……,将{tn,t′n}时间片段的子任务分配到CPU#n进行处理。

4)在所有的时间片段的瞬态分析都完成之后,对所有的时间片段的瞬态分析得到的结果进行波形拼接,得到整个仿真时间范围所需要的数据(即电路各个节点的电压的波形)。图5(a)显示了将各个时间片段的子任务得到的结果直接绘制出来得到的电压随时间变化的曲线。图中显示了将仿真的时间等间隔地切分成3段,每段交由不同的处理器进行仿真。其中阴影部分为两个相邻的时间段的重叠区域。图中显示了在时间重叠区域,前后两个子任务得到的结果会有所差异,这个差异产生的原因是前一个子任务在这一区间的计算结果是由真实的初始值得到的,后一个子任务的计算结果是由随机的初始值得到的,而这个随机的初始值一般而言与真实的初始值不同。因此,在拼接过程中,前后两个时间片段的瞬态分析得到的结果的重叠区域采用前一个子任务(前一个时间片段的瞬态分析)得到的结果,而丢弃后一个子任务(后一个时间片段的瞬态分析)得到的结果。图中也显示了随着时间的变化,重叠区域中两个相邻的子任务得到的结果会趋于一致,后一个子任务采用随机的初始值并不会造成计算的精度损失。拼接后的电压随时间变化的曲线如图5(b)所示。

5)在步骤1)-4)结束后得到电路各个节点电压的波形。这时候可以进行进一步的处理得到其它所需要的信息,如利用已有技术傅里叶分析得到信号的频谱信息。

图6显示了采用本发明实现并行计算得到的波形的频谱以及不采用本发明得到的波形的频谱。图中可以看出二者十分接近。这说明了采用本发明可以在提高仿真的效率的同时不影响仿真的精度。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号