电路仿真中基于工作区域的器件缓冲的制作方法_2

文档序号:9375930阅读:来源:国知局
了在本发明中确定器件是否已进入如图4所示的缓冲区域的另一实 例;
[0034] 图7A列举了本发明中仿真子电路的电导率的确定方法;
[0035] 图7B是本发明中如图7A所示方法的另一种描写;
[0036] 图8A所示为本发明中仿真子电路的电容确定方法;
[0037] 图8B所示为本发明中如图8A所示方法的另一种描写。
【具体实施方式】
[0038] 本发明提供了执行电路仿真中基于工作区域的器件缓冲的算法和系统,并根据下 列描述使所属领域的技术人员可以制造和使用本发明。仅作为实例提供具体实施用例和应 用的描述。这里描述的各种修改和组合的实例对于所属领域的技术人员是显而易见的,由 此定义的普遍规则也可以在不背离这项发明的精神和范围下应用到其它实例和应用中。因 此,本发明并不局限于所描述和展示的实例,而是应被赋予与本文所揭示的原理和特征最 广范围相一致的应用范围。
[0039] 以下详细描述的一部分是用有关流程图,逻辑模块及可在计算机系统上执行信息 操作的其它符号表达法来呈现。计算机执行步骤,逻辑模块,进程等在本发明中被设想成一 个或多个步骤的有条理的序列或是达到预期结果的指令。所述步骤就是利用物理量的物 理操作。这些量表现为电,磁,或无线信号,它们可以被储存,传输,组合,比较,或者就在计 算机系统里被控制。这些信号有时被称为位,值,元素,符号,字符,术语,数字或者其他类似 的。每一步骤可以由硬件,软件,固件或他们的组合来执行。
[0040] 图1所示列举了本发明中执行在电路仿真中基于工作区域的器件缓冲的系统。在 这一实例中,执行电路仿真中基于工作区域的器件缓冲的方法可以用计算机系统来实现。 计算机系统可以包含一个或多个图形处理器(GPUs)和\或多核微处理器(CPUs) 100 (下 文中简称处理器),至少有一个用于显示计算结果和波形图的用户界面102, 一个存储设备 104, 一个系统总线106,和一个或多个用于连接GPUs\CPUs、用户界面、存储设备和系统总 线的总线接口。计算机系统也包括了至少一个在计算机网络上用于和其它设备105通讯的 网络接口 103。在另一实例中,该方法和系统的某些特定功能可以在一个或多个专用集成电 路(ASICs)或现场可编程门阵列(FPGAs)中实现,从而减少了 GPU/CPU的作用。
[0041] 存储设备104可以包含高速随机存取存储器,也可以包含非易失性存储器,如一 个或多个磁盘存储设备。所述存储设备还可以包括从图形处理器(GPUs)/CPUs的远程加载 的海量存储设备,存储设备最适宜存储的是:
[0042] ?操作系统108,其包括用于处理各种基本系统服务和执行与硬件相关任务的程 序;
[0043] ?应用程序110,用于执行用户自定义的应用程序和任务,如电路仿真和器件评 估;
[0044] ?数据库112,用于存储集成电路的信息。数据库包括数据结构,器件模型和矩阵;
[0045] ?器件模型评估缓冲模块114,该配置用来提高电路仿真的效率。
[0046] 数据库,应用程序和实现电路仿真中基于工作区域的器件缓冲方法的程序包括可 执行程序,子模块,表格和其它的数据结构。在其它的实例中,可使用附加的或不同的模块 和数据结构,而上面列出的一些模块和\或数据结构可以不使用。
[0047] 图2列举了本发明在电路仿真中执行基于工作区域的器件缓冲的实例。如图2所 示,每个GPU包括了 N个多处理器,每个多处理器204还包括了 M个分处理器206和一个指 令单元207。每个处理器有它自己的寄存器208。一个多处理器204中的所有的分处理器 206共用一个共享存储器模块210。所有处理器共享同一组常量缓存212和纹理缓存214 存储器。这些处理器也可以访问设备存储器216中的数据,其中所述设备存储器216还被 称为全局存储器。
[0048] 在这个例子中,每个多处理器204都有一个共享存储器模块。从共享存储器210 访问数据比从设备存储器(全局存储器)216访问数据快得多。所以一个提高计算效率的 方法就是把全局存储器216的数据加载到共享存储器210中,利用共享存储器210执行大 部分的计算和操作,然后再把共享存储器210计算的结果写回到全局存储器216中。图3 所示为本发明在仿真状态下的子电路的框图实例。如图3所示,子电路302包括多个器件。 在仿真过程中,有的器件是活跃的,像图中活跃区域所示的304a,304b和304c等等。有的 器件是非活跃的,像图中缓冲区域的306a,306b和306c等等。多个器件可以互相连接(或 耦合),表现为连接308a,308b,308c等。确定某个器件是否为非活跃(在缓冲区域中)的 方法将在下面结合图5A来描述。(图4所示为本发明在电路仿真中执行基于工作区域的 器件缓冲方法的实例。在图4模块402所示的例中展示,确定一个器件是否进入缓冲区域 要考虑多种因素。例如,结合考虑图5A所描述的节点容差,该方法会检查器件的节点容差 的变化,区域灵敏度,环境灵敏度和功能灵敏度。在模块404中,该方法确定子电路302中 的每个器件是否进入到了缓冲区域,如果这个器件已经进入到了缓冲区域(去模块404的 "是"分支),则此方法移到模块406。反之,如果该器件没有进入缓冲区域,则此方法就移到 模块408。
[0049] 在模块406中,对于已进入到缓冲区域的器件,不再进行模型评估。在模块408中, 对还没有进入到缓冲区域的器件执行模型评估。在模块410中,决定是否结束模型评估。 如果子电路302中的所有器件都已经被处理了(去模块410的"是"分支),则进入到模块 412。但是如果还有一些器件需要处理(去模块410的"否"分支),该方法就回到模块402, 并且不断地重复从模块402执行到410,直到子电路302中所有的器件都被处理过。
[0050] 在模块412中,加载器件模型。根据本发明公开的内容,进入到缓冲区域的器件在 电导(g')和电容(c')上发生的变化实质上是最小的,而且,结合图7A-7B和图8A-8B,这些 电导(g')和电容(c')的值可以进行预加载。对于未进入到缓冲区域(例如活跃区域)的 器件,它们相应的电导(g)和电容(c)可能通过结合图7A-7B和图8A-8B描写的散集操作 (scatter-gather)被加载到电导矩阵G和电容矩阵C。在模块414中,方法应用模块412 构建的器件模型执行求解。
[0051] 图5A所示为本发明图4确定节点容差的方法实例。如图5A所示,在模块502中, 可以对仿真子电路302里的多个器件,检查每个节点电压相对于它相应预置节点容差的变 化(例如lmV,2mV等)。在某些实现中,如果节点上的变化超过了它的预置节点容差,即确 定设备已进入到了缓冲状态。
[0052] 在模块504中,该方法可以根据器件中不同的工作区域的敏感性来检查器件。例 如,预置的节点容差可以根据器件是否在截止区,线性区或饱和区来进行调整。在某些实现 中,不同的预置节点容差可以被使用在不同的操作区域中。
[0053] 在模块506中,该方法能在一个或者多个相邻器件的环境中检查器件,来确定所 述器件的预置节点容差。例如,利用一个或多个相邻器件相比较于该器件的尺寸,来检查这 些相邻器件的环境。在其他的实现中,利用一个或者多个相邻器件与该器件相比较的聚合 电导来检查该器件。还有某些实现中,可以检测与该器件相比较一个或多个邻近器件的聚 合电容。
[0054] 在模块508中,通过检查一个或者多个相邻器件(确定该器件的预置节点容差时 的所述相邻器件)的功能,可以检查该器件的功能敏感性。例如,当该器件是个反相器时, 它的预置节点容差与该器件是放大器时的节点容差大不相同的。另外,当该器件是个加法 器时,它的预置节点容差与该器件是振荡器时的节点容差也是大不相同的。
[0055] 图5B所示为本发明检查图5A的区域敏感性的实例。在图5B中,对于金属氧化物 半导体场效应晶体管(MOSFET)的Vgs-Vth的多个值,展示了漏极电流(Ids)和漏极到源极 间电压(Vds)的对比。水平轴表示漏极到源极间电压(Vds),垂直轴代表漏极电流(Ids). 对于给定的栅电压,Ids随着Vds呈线性增加,随后逐渐平稳接近饱和值。MOSFET的线性区 用数字510代表,其饱和区用数字512代表。根据本发明的说明,MOSFET的敏感度可以根 据其不同的工作区域来进行检查。例如,节点容差可以依据器件是在线性区510还是饱和 区512来进行调整。此外,不同的节点容差用于不同的工作区域。
[0056] 图5C所示为本发明检查如图5A所示的区域敏感度的另一实例。图5C展示了 MOSFET中漏极电流(Ids)和栅极到源极间电压(Vgs)的对比。水平轴表示栅源极电压 (Vgs),垂直轴表示漏极电流(Ids)。在此实例中,Ids随着Vgs呈线性增加随后逐渐平稳。 MOSFET的饱
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1