混合信号仿真的制作方法

文档序号:6470244阅读:340来源:国知局
专利名称:混合信号仿真的制作方法
技术领域
本发明一般涉及仿真方法和设备,具体涉及仿真用硬件描述语言(Hardware Description Language-HDL)编码的模拟、数字和混合信号(AMS)电子系统的方法。AMS仿真有时被称为混合模式仿真。本发明还涉及利用被称为HDL编程语言接口(PLI)的特殊软件应用编程接口(API)来实现仿真程序的方面。更具体地,本发明涉及将数字二进制逻辑值事件驱动仿真和模拟微分方程求解电路仿真合并的方面。本发明的系统和方法用于电子计算机辅助设计(ECAD)领域内的验证半导体集成电路过程中。
背景技术
消费类电子产品的普及产生了组合模拟和数字子系统的大型电子系统。通常仅仅使用一个称为片上系统(SoC)的集成电路(IC)来实现这种系统。伴随着IC电路容量的增加,这种消费类电子产品的普及引起了对模拟混合信号(AMS)电路的自动验证的需求。I旧的AMS仿真方法已经公开了多种AMS系统验证方法(根据标准用法,可以互换地使用术语“混合信号”、“混合模式”和缩略语“AMS”),这些方法想要通过将模拟电路转化成数字元件或者通过将数字电路转化成模拟元件来解决混合信号仿真的问题。因为损失了数字或者模拟建模的精度,或者因为根本未建立模数(模拟到数字)和数模(数字到模拟)接口的模拟,所以这些方法已经过时。
下面的美国专利公开了从模拟转化成数字AMS仿真方法。标题为“模/数电路的数字电路仿真(Digital Circuit Simulation of Analog/DigitalCircuits”的美国专利NO.5297066通过使用单元库来仿真模拟元件,所述单元库以数字的形式定义了模拟元件。模拟值表示可以给出所有可能的电压电平的数字比特向量。因为没有求解模拟电路方程,所以该方法只局限于简化的模拟模型。标题为“仿真具有模拟和数字电路元件的电路的操作的方法(Method of Simulation the Operation of a Circuit HavingAnalog and Digital Circuit Parts)”的美国专利NO.5105373规定了一种使用单独计算机代码(函数)来仿真电路的模拟部分的方法。这些函数被称为数字仿真器(Digital Simulator)。该方法使用表格或者转移函数来建立模拟元件的模型。但是,模拟建模也不精确。标题为“用于电路转换仿真的方法和装置、使用相同方法和装置的仿真器和存储程序的计算机可读媒介(Method and Apparatus for Circuit Conversion for Simulation,Simulator Using the same,and Computer-Readable Medium with a ProgramTherefor Stored Thereon”)的美国专利NO.5991522公开了一种将模拟元件转换成适合于数字仿真的电路的方法。II.目前的AMS验证方法最普遍的AMS系统验证方法分别验证数字和模拟子系统。分别建立数字元件和模拟元件的模型,然后盲目地将数字元件和模拟元件合并成整个混合信号系统。对于模数接口、数模接口和电源或者电气相互作用的任何不正确的假设都需要额外耗时而昂贵的重复设计。因此,该方法实际上根本不是混合信号验证方法。
比较新的混合信号验证方法用仿真来验证AMS系统。两种最流行的AMS仿真方法是1.单一内核AMS仿真;和2.使用混合信号数据交换的单独数字和模拟仿真。II.A.单一内核AMS仿真在单一内核方法中,从头开始写AMS仿真器,或者先使用数字仿真源代码和模拟仿真源代码写AMS仿真器,然后将这些源代码再次写入集成的混合模式仿真器。仿真器使用存储了模拟和数字信息的公共电路信息数据库。使用公共电路数据库来实现诸如模数(模拟到数字)和数模(数字到模拟)转换之类的混合信号接口,或者将所述的混合信号接口紧密集成到一个仿真内核中。因为各种类型的仿真器都经历了多年的发展,所以单一内核方法通常产生具有较差的纯数字或者纯模拟仿真的AMS仿真器。但是,单一内核方法通常具有非常好的混合模拟信号建模能力,这是因为数字和模拟仿真计算机例行程序紧紧结合在一起。必须为数字仿真存储的信息和为模拟仿真存储的信息类型的较大差异造成了单一内核方法的另一缺点。数字信息是离散的,并且作为小的整数或者比特来存储,而用通常存储在多维矩阵中的实数值来表示模拟信息。
下面的美国专利公开了涉及单一内核仿真的方法。标题为“混合模式仿真接口(Mixed-Mode-Simulation Interface)”的美国专利NO.4985860规定了一种用于同步模拟波形和数字时间的方法,所述的数字时间在需要时返回模拟时间。该’860专利假设AMS仿真器存在并且仅仅公开了一种同步时间的方法。标题为“使用高级宏模型仿真模拟和数字电子系统的方法(Simulation of an Electric System Including Analog and DigitalUsing High Level Macro Models)”的美国专利NO.5394346公开了一种单一内核仿真方法,其中通过高级模拟宏来建立模拟单元的模型,而通过高级数字宏来建立数字单元的模型。通过提取布局设计数据并将数据转换成表格或者模拟转移函数来构造宏。仅仅在频域中建立模拟电路的模型,并且使用不精确的重复近似法来仿真模拟电路,但是其精度要比将模拟单元转化成数字图元的仿真器高。因为电路特性被重复提取,并且被用作进行重复近似的其它高级宏的输入,所以仿真是单一内核仿真。然后近似的结果被用来再次提取电路特性。该’346专利并未公开用于通用的混合信号仿真的方法。II.B.数据交换AMS仿真在使用数据交换方法的分离数字和模拟仿真中,标准的模拟和数字仿真器用于单独的模式。AMS仿真伴随着将转换成实数值的离散仿真结果从数字仿真器发送到模拟仿真器,而将诸如转换成逻辑电平的电压电平的模拟实数值发送到数字仿真器。使用以下几种用来在计算机操作系统提供的程序之间交换信息的方法共享文件、管道、信号量、共享内存、线程执行和远程过程呼叫。
由于可以在混合信号仿真中选择使用最佳的可用仿真器,所以这种数据交换方法可以产生较好的数字和模拟仿真。但是,使用数据交换方法的单独仿真提供了较差的混合信号接口验证。因为模拟和数字仿真器并未紧密结合,信息交换通常局限于电路的边界单元(通常称为输入端口或者输出端口),而时间同步是不准确的。没有紧密结合造成了去耦合的混合信号仿真的两个非常严重的缺点。第一,不能够使用诸如日益成为标准的Verilog-AMS或者VHDL-AMS HDL之类的统一硬件描述语言(HDL)表示混合信号系统。第二,不能够为深亚微米电路设计中出现的数字和模拟电路部分之间错综的相互作用建立模型。对于现代的深亚微米电路,去耦合的混合信号仿真并没有单独的纯数字和纯模拟仿真好。最后,因为数字仿真器不了解电路的模拟部分,并且模拟仿真器不了解电路的数字部分,所以分离的数据交换方法并不能自动插入混合信号接口单元。
下面的美国专利公开了数据交换AMS仿真方法。标题为“具有模拟和数字部分的系统的仿真器(Simulator for System Having Analog andDigital Portions)”描述了一种方法,其使用提取的数据和共享文件来将模拟节点值传达给数字仿真器,并将数字信号值传达给模拟仿真器。标题为“混合模式仿真方法和仿真器(Mixed Mode Simulation Method andSimulator)”的美国专利NO.5481484交替执行模拟仿真和数字仿真,以及提取模拟仿真使用的数字电流。本方法通过提取当前使用的数字分析电路来提高模拟电路仿真精度。其还通过使用计算机程序来改进数据交换,以便在发送到数字仿真器之前转换模拟信息,和在发送到模拟仿真器之前转换数字信息。但是,这种方法有在仿真器执行期间确定数据传送和同步的缺点。数据传送和同步不能由用户编码,并且不能使用先前的仿真结果来动态改变。标题为“仿真集成电路的方法和设备(Method ofand Apparatus for Simulating Integrated Circuit)”的美国专利NO.5822567是一种通过使用控制器来加速数字和模拟仿真的各自模拟部分的方法,其中所述的控制器确定何时避免模拟电路仿真。’567专利的方法有控制器不允许数据交换的缺点。而且,控制器仅仅控制分离的数字和模拟仿真器的交错。III.数字仿真数字设计和验证相当容易理解,并且是自动进行的。使用诸如Verilog(IEEE P1364标准)或者VHDL(IEEE P1076标准)之类的标准化HDL来描述数字系统。使用少量的离散数值(通常是4个数值,但是有时是12个或者128个数值,以便建立信号强度的模型)来建立数字电路的模型。使用快速、事件驱动的方法来建立数字行为的模型。尽管有时也可以使用其它类型的数字仿真,例如,分级单元延迟仿真、基于循环的仿真或者硬件加速仿真。数字行为的语义被广泛理解,并且被标准化。在门电路级使用网络表来描述数字系统,而在行为级使用寄存器转移电平(register transfer level)说明来描述数字系统。IV.模拟仿真诸如SPICE之类的模拟电路仿真器已经应用在模拟电路设计和验证中达十年之久。模拟设计和验证没有数字设计和验证那样容易理解,因为模拟仿真需要求解描述晶体管行为的一组微分方程。由于微分方程的解要计算彻底,所以只有少部分的模拟系统可以被仿真。然后模拟设计者必须从多个小型电路仿真器中推测模拟系统的行为。因为有多种方法求解电路微分方程,并且有多种不同的模拟电路特性需要仿真,所以模拟仿真的标准化和自动化程度比数字仿真差。这些模拟电路特性的最大共同之处是电压、电流和频率。
同样可以使用HDL来描述模拟电路,但是,直到现在,这种描述仅限于编码低电平晶体管元件和线路互联。最流行的模拟HDL称为SPICE。SPICE是1975年5月UCB/ERL M520的L.W.Nagel编写的“spice2仿真半导体集成电路的计算机程序(spice2A Computer Program toSimulation Semiconductor Integrated Circuits)”最初定义的事实标准。在SPICE电路中,使用作为电节点(electrical node)的主体编码互连,而使用预定义的构造过程模型来编码晶体管行为。将节点和过程模型转化成微分方程并通过求解微分方程组的结果仿真这些节点和过程模型。模拟电路仿真使用实数值来描述节点电气特征,例如电压,从而通过示波器踪迹看到连续的波形。
因为偏微分方程的求解系统特别耗时,所以有时使用精度不是很高的仿真方法,例如多项式插值或者转换成数字元件(转移函数)。比较新的HDL编码和仿真方法通过定义和求解直接描述模拟电路行为的微分方程来描述模拟电路,从而消除了将电路节点转化成微分方程的步骤。V.混合信号仿真AMS系统仿真和验证比模拟验证难理解,并且没有其自动化程度高。通常,AMS仿真的混合信号接口部分规定了将模拟电压或者电流转换成离散数字逻辑值的方法(称为使用模数转换器进行模数转换的方法)和将离散数字逻辑值转换成模拟电压或者电流的方法(称为使用数模转换器进行模数转换的方法)。AMS仿真的混合信号部分还定义了同步模拟连续时间和离散报时(tick)脉冲数字时间。VI.混合信号HDL目前,已经开发出用于编码全部混合信号设计的HDL。作为标准化数字HDL的补充或者增强,定义了这些语言。当前最流行的AMS语言是Verilog-AMS。另一AMS语言是VHDL-AMS。目前,两种语言的标准化正在制订之中。AMS HDL向数字HDL中添加了各种新的结构。添加的结构有用于将模拟电路部分编码成方程的模拟块;允许用户自定义模拟电路特性(特性仅需要遵循基本电路特性,例如基尔霍夫定律)以建立模型的全局信号特性部分(在Verilog-AMS中称为属性和规程定义);用于说明电路电压和电流节点的电压和电流节点;和描述节点之间的连接关系的支路(见图1的已有技术Verilog-AMS示例)。
在Verilog-AMS HDL情况下,除了全局属性和规程之外,AMS的补充被定义在HDL模块中,以便数字HDL实例树型结构保留在AMS HDL之中。一些AMS HDL还定义了其它的补充,例如用于包括其它HDL(目前主要用于包括AMS HDL模型中的SPICE子电路)的非原始语言包含结构。HDL还包括用于定义全局节点的结构,以便建立功率和接地节点的模型,以及包括用于定义全局参数的结构,以便定义全局构造过程相关参数。其它的语言部分变成了AMS HDL模块和实例,保留HDL实例结构,其允许独立设计子系统和进行验证。VII.HDL PLI说明HDL PLI允许以诸如C语言之类的公共编程语言编写的链接程序被编译成一个或者多个目标库,然后这些目标库在仿真开始之前与构造的HDL系统模型相链接。PLI程序中可以包括任何编程语言代码,例如SPICE仿真引擎。HDL定义规定了名称、函数和程序语言例行程序的实际参数,所述的例行程序被用户PLI程序调用,与HDL仿真器交互作用。
PLI API的优点是它们被很详细地标准化和文档化了,以便可以开发任何数目的不同PLI程序,向基本的电子仿真器中增加附加的功能,例如混合信号仿真的实现功能。因为PLI定义了表驱动程序链接标准,所以不同的组织可以开发PLI扩展,所述的PLI扩展因为PLI标准化的缘故而具有互用性。由于使用了公共的API,所以计算机程序代码是可重用的。以及由于标准化的PLI初始化回调机制的缘故,所以计算机程序代码不会妨碍其它的PLI应用程序。
在本发明的系统和方法中,最终的AMS混合模式仿真程序是一个或者多个数字仿真引擎、一个或者多个模拟仿真引擎、所有的混合模式模数转换器例行程序和与附加(glue)计算机程序代码在一起的所有混合模式数模转换器例行程序的一起链接的结果,其中在本发明的优选实施例中对所述的附加计算机程序代码进行了详细的说明,其被称为PLI例行程序。从已有技术中很容易理解计算机程序链接。有众多不同的方法来将各种不同的计算机程序和例行程序链接成可执行程序。这些链接方法的范围从使用链接程序简单地合并目标模型到使用动态链接系统调用,即dlopen,dlsym等等在执行期间动态载入整个可执行程序。
最好通过新的仿真器二进制程序来链接构成了本发明的AMS混合模式仿真程序和方法的所有程序和例行程序,然后所述的新的仿真器二进制程序就具有与其链接的用户PLI程序,也就是说,其具有了正常的数字仿真引擎加上如下所述的混合模式仿真引擎能力。为了理解这种AMS仿真系统和方法,有必要弄清已有的HDL PLI工作情况。
例如,在Verilog中,当特定的事件发生时,例如布线变化时,例行程序vpi register cb用于注册被HDL仿真器调用的用户程序函数(称为回调)。它将称为cb data structure的PLI定义的记录用作自己的一个变量。HDL PLI与其它的API非常类似,所述的API例如允许计算机操作系统和电子仿真器使用中间设备。HDL PLI定义至少五种基本的例行程序类1.注册回调的例行程序回调允许HDL仿真器在发生特定的事件时调用用户程序例行程序,例如1.执行了特定的系统任务(图1中的$pli_memory_model);2.网络或者变量变化(例如监视具体实例每时每刻输出的变化);3.
发生了仿真相关事件(例如当仿真时间达到1000时)。
2.访问数值的例行程序使用数值访问例行程序来读取HDL系统模型数值。在Verilog中,该例行程序被称为vpi_get_value。该例行程序读取带有数值的任何目标的数值。例如,例行程序可以读取系统任务最近返回的数值(如果任务被激活的话)或者将要返回的数值(如果任务被激活的话)。
3.赋予数值的例行程序使用数值设置例行程序来写HDL系统模型数值,在Verilog中,该例行程序被称为vpi_put_value。在给定的延迟过去之后,数值通常要写入网络和寄存器。
4.允许访问HDL结构的例行程序HDL源结构访问例行程序允许确定HDL电路描述的确切细节。
在Verilog中,一对一的HDL结构访问例行程序被称为vpi_handle,而一对多的访问例行程序被称为vpi_iterate。例如,vpi_iterate用于存取给定实例的所有端口。Vpi_handle用于访问被称为vpiHighConn的实例端口连接,或者被称为vpiLowConn的模块内部的端口连接。
多数的HDL允许使用PLI访问例行程序来完成HDL源重建。
5.允许延迟读和写的例行程序使用PLI延迟例行程序来读写HDL延迟。在Verilog中,例行程序vpi_get_delays用于读延迟,而vpi_put_delays用于设置延迟。
通常在仿真开始之前来使用PLI延迟读写。
如果表已经链接到仿真器二进制目标代码中,当开始运行时,向HDL仿真器通知必须载入一个或者多个用户PLI程序,以及必须使用仿真器读取的回调例行程序的预定表来执行一个或者多个用户PLI程序。如果PLI例行程序不存在,则预定的表为空。如果在HDL仿真期间使用了多个不同的PLI程序,则通常在预定的表中要有每个PLI应用程序的一个开始回调例行程序。
在IEEE标准委员会于1996年在纽约编写的“IEEE标准1364-1995Verilog硬件描述语言参考手册(IEEE Verilog Hardware DescriptionLanguage Reference Manual)”的17-23章中对Verilog PLI有更全面的定义。该手册在此作为参考而整体引入。

发明内容
本发明包括一个或者多个数字仿真器、一个或者多个模拟仿真器、和混合信号计算机程序,所述计算机程序控制仿真和使离散数字时间与连续模拟时间同步。本发明的模拟混合信号(AMS)仿真系统和方法用于仿真编码成硬件描述语言(HDL)的设计。本发明将众多通常使用的数字硬件描述语言(HDL)仿真器的任何之一与众多通常使用的模拟HDL仿真器的任何之一组合,以便仿真模拟混合信号电路(通常称为AMS电路)。本发明的系统和方法使用专门作为应用编程语言接口(API)的编程语言接口(PLI)来进行AMS仿真。本发明可以概念化为复合的多“引擎”机器。数字仿真引擎执行离散数字事件仿真。模拟仿真引擎通过求解电路描述微分方程来仿真模拟元件。通过读数据、写数据、调度变化、监视变化和协调离散数字时间与连续模拟时间,混合信号引擎用作其它引擎之间的接口。
因为为所有的现代HDL都定义了PLI,所以混合信号引擎包括计算机代码,所述代码通过调用各种PLI API库例行程序来进行工作。由于存在用于HDL的标准化API,其允许用户特定应用程序计算机程序与仿真计算机程序目标代码相链接,以便产生特定应用程序的改进仿真程序,所以本发明的产生成为可能。PLI允许与仿真程序开发分开来开发混合信号功能(混合信号引擎)。一般可以获得PLI,并且是标准化的,以便可以按照对数字和模拟仿真器种类的选择进行混合和匹配仿真器。但是,使用众所周知的计算机程序和链接库,开发的结果仍旧是实现AMS仿真发明的计算机程序。
本发明的系统和方法允许独立开发和选择数字事件和模拟电路仿真器。本发明可以使用传统的不同模拟和数字HDL来具体化。使用最流行的HDL的实施例是可以将Verilog数字HDL与Spice模拟HDL组合。本发明的优选实施例使用新的统一语法、标准化的AMS语言,例如Verilog-AMS,其中在相同的HDL中编码模拟和数字电路。这些统一的语言具有允许用户定义混合信号接口的优点。
在本发明中,混合信号引擎调用PLI例行程序,以便允许将离散数字值转换成连续的模拟节点数值,用于模拟仿真(称为模数转换),并且将连续模拟节点数值转换成离散数字逻辑数值(称为数字模拟转换),用于数字仿真。本发明不仅用于验证模拟和数字电路功能,而且精确地建立模型和验证模拟和数字系统元件之间的相互作用。本发明还允许进行AMS仿真,其中模拟仿真使用非标准的电路特性,例如高频无线电路的频域仿真。
这里公开的本发明提供了比两种最流行的混合信号仿真方法更好的优点。针对统一的内核方法,本发明具有提供了允许使用非定制的数字和模拟仿真器,同时保留了统一内核的细粒度(fine granularity)的优点。对于带数据交换的分离或者去耦合的仿真,本发明具有使用标准化PLIAPI进行紧密耦合仿真的优点。
因为使用的HDL PLI被设计成高效率的,所以本发明可以进行有效的仿真,尽管在大多数情况下求解模拟微分方程所需要的时间降低了混合信号的效率。本发明的另一优点是本发明的使用者可以利用构成发明的相同的HDL PLI,以便添加其它的仿真功能。可能添加的用户PLI功能的例子有在AMS仿真期间,用户PLI编程,以便监视模数转换器电压差值,或者用户PLI编程,以便在抽象的功能层次上建立未完成的数字元件详细设计的模型。
因为与任何的HDL,即HDL的任何数字仿真器类型一起工作,所以本发明可以用于通用用途。此外,它使用由模拟仿真器求解程序所使用的任意方程求解方法(通常称为求解程序引擎)。当对一个或者多个HDL以及与它们相关的PLI进行标准化时(现在实际中一般称为IEEE和/或ISO标准),本发明将提供最大的优点,以便在市场上可以获得众多不同仿真器类型。在本发明的优选实施例中,使用一个组合的AMS HDL,以便允许用户将混合信号接口编码在HDL中,以及允许编码一种统一的实例树。
本发明的系统和方法产生一种PLI改进的计算机程序,通过将一个或者多个选择的模拟仿真器、一个或者多个选择的数字仿真器链接在一起而构造该种改进的计算机程序,或者通过以PLI(称为混合信号程序或者引擎)的形式添加多个附加的计算机程序例行程序而构造该种改进的计算机程序,所述计算机程序例行程序用于实现信息交换和其它部分之间的协调。本发明的系统和方法还包括三种类型的功能部分(通常称为引擎)1)模拟仿真引擎,2)数字仿真引擎和3)混合信号引擎。在本发明的优选实施例中,可执行程序是混合信号引擎内核。在执行期间,按照执行混合信号引擎内核的计算机的操作,使用动态链接、进程产生或者线程产生来动态载入HDL仿真器的其余部分和混合信号程序。在本发明的另一实施例中,使用链接程序静态地链接仿真程序,或者是要用动态库来链接仿真程序,与使用OS提供的机制实现并行执行。
本发明能很好地与任意一种标准化的数字仿真器一起工作,例如,IEEE P1364(参考1995 IEEE P1364 Verilog语言参考手册或者IEEE P1364Verilog 2000语言参考手册标准)标准化的和与PLI相关的Verilog仿真器。本方法还能很好地与任何的标准化AMS仿真器一起工作,例如将数字和模拟建模HDL结构与构造的模拟HDL相结合的标准化IEEE VerilogP1364-AMS HDL,其定义为IEEE数字Verilog P1364标准的变体(参考起草阶段的IEEE P1364-AMS Verilog AMS语言参考手册)。本发明还能使用任何的模拟HDL,包括目前最流行的称为Spice的模拟HDL。


图1是已有技术,示出了以Verilog-AMS HDL编码的混合信号电路的示例。
图2a和2b示出了本发明可能采用的混合信号系统设计流程的流程图。
图3示出了本发明的AMS混合信号仿真系统和方法的总体图的流程图。其中示出了模拟、数字和混合信号仿真引擎之间的关系。
图4示出了数字和模拟细化(elaboration)步骤的流程图。
图5示出了仅仅使用一个AMS HDL来细化简化的另一实施例的流程图。
图6示出了在数字和模拟细化之后在AMS接口细化中完成的步骤的流程图。
图7示出了AMS仿真设置中的步骤流程图。
图8a和图8b示出了PLI控制的AMS仿真步骤的流程图。
图9是Verilog-AMS LRM草案1.5,其定义了AMS同步方法。
图10示出了用于实现本发明的系统和方法的示例计算机系统的方框图。
具体实施例方式
根据本发明的原理,公开了一种基于PLI API的模拟混合信号(AMS)电子系统仿真系统和方法。在优选实施例中,该系统和方法仿真用标准化的混合信号HDL,例如Verilog-AMS或者VHDL-AMS编码的设计。在另一实施例中,仿真了多个不同的模拟和数字HDL。HDL可以是人类可读的形式或者是非人类可读的形式,例如计算机存储器中的二进制数据。
参考图2a和2b,其中示出了本发明采用的混合信号系统设计流程。方框205、210、225和230中所示的用于数字设计,而215、220、225和230所示的用于模拟设计,以常规的模拟和数字设计作为设计流程的开始。如方框200所示,开发系统的混合信号库,定义规程。由功能方框205,设计混合信号系统的数字部分,然后由功能方框210,将其转换成一个或者多个数字HDL描述。由功能方框215,设计混合信号系统的模拟部分,然后在功能方框220将其转换成一个或者多个晶体管级的模拟HDL。由功能方框225,汇编所有预设计的混合信号系统元件库,然后在功能方框230,预备数字、模拟和混合信号控制脚本。
接着,在功能方框235,由于这里公开的PLI的灵活性,本发明可以被用于执行模拟元件的最优化。在模拟和数字仿真控制脚本的控制之下使用重复的AMS仿真,最优化模拟元件的特性。脚本包含程序,所述的程序用于控制优化的电路参数的选择,控制搜索执行的范围(在技术上通常称为参数扫描方法)和控制最优化的终止的标准。尽管这种元件最优化已经开始应用到模拟仿真之中,此处公开的基于PLI的方法允许在最优化过程中使用数字和模拟状态。一旦普及了这种模拟设计的使用,则空间搜索能力用来最优化模数和数模元件的特性。通常最优化的是电阻器的大小、电容的大小、晶体管的驱动器和电路的稳定性。
功能方框240、245和250示出了仿真AMS系统模型、分析仿真结果然后确定故障(例如,升级所有HDL的网络表和脚本,以便确定故障)的过程。在此之后,如果有错误,则重复验证循环。按照功能方框255,在最优化期间控制流程返回功能方框235或者在验证运行期间返回到功能方框240。这个循环与简化的电流数字验证类似,并且通过比较和检查不同类型的仿真结果来避免要求分别的模拟和数字仿真的复杂设计流程。
基于PLI API系统的一种重要的组织原理是它们主要通过回调来来工作。回调同步提供一种需要将离散数字时间单元与微分方程规定的连续模拟波形同步的功能(见图8a和8b)。回调提供模数和数模接口的访问和定时。此外,PLI回调机制允许PLI扫描细化的数字和模拟设计数据库,以便确定模拟和数字相互作用所发生的位置(见图6)。
在本发明中,混合信号引擎按照回调的原因来注册被一个或者多个数字仿真器“调用”的PLI回调。因为HDL仿真器PLI已经提供了混合信号引擎所需的众多功能,则与单片内核AMS仿真器相比,简化了本发明的操作。
参考图3,提供了AMS仿真器结构的整体图,其包括AMS设计者300以及主要元件,即,AMS仿真引擎、混合信号引擎305、数字仿真器310(数字引擎)和模拟仿真器315(模拟引擎)。数字仿真器310可以是任何的常规数字仿真器。因为数字HDL是标准化的,所以可以使用多种品牌和类型的数字仿真器。模拟仿真器315可以是任何常规的模拟电路仿真器。目前,Spice是最通用的模拟仿真器,尽管也使用Verilog A模拟HDL的仿真器。混合信号PLI程序305是混合信号协调程序,其使用PLI实现混合信号仿真,如图4到图8所示。
连接元件和连接AMS设计者的各种双向箭头表示各种AMS仿真元件之间的信息流。具体而言,AMS设计者300向数字仿真器310提供数字仿真模式,向模拟仿真器315提供模拟求解程序控制脚本,而向混合信号程序305提供模数和数模参数。通过向数字信号添加变化回调、启动和停止数字仿真、调度离散事件,以及向数字仿真器310写入或者从其中读出数字数据,混合信号程序305与数字仿真器310接口。通过调用模拟方程求解程序和传递必须匹配的模拟波形图样以便确定模数转换器数字逻辑值,以及从模拟仿真器315读或者向模拟仿真器315写模拟数据,混合信号程序与模拟仿真器315接口。模拟仿真器315另外进行操作,以便将模数变化添加到混合信号程序305的网络表中。
图3示出了基于本发明的顺序机制的PLI回调。这里,自由地运行仿真器和混合信号程序。当发生事件或者动作时,调用回调并且停止混合信号引擎305(或者混合信号引擎的并行线程),直至控制从回调返回。混合信号引擎305(这里处于延迟回调之后的混合信号之中)然后可选择地继续执行数字仿真一段时间,然后执行模拟仿真一段时间。在包括不止一个模拟仿真器或者不止一个数字仿真器的实施例中,这里公开的PLI组织结构需要使用一些种类的并行执行机制,例如进程或者线程。
在AMS仿真开始之前,必须细化数字和模拟HDL元件。图4列出了每个数字仿真器执行其HDL细化的步骤和每个模拟仿真器执行其HDL细化的步骤。二者的细化过程实际上相同。图4示出了实施例中的细化,其中使用了不止一个数字和模拟HDL。细化步骤包括在功能方框400注册混合信号细化回调。然后在回调中,按照功能方框405,为每个HDL产生进程或者线程。按照功能方框410,HDL仿真器(数字或者模拟)然后读,扫描和构造其网络表。按照功能方框415,HDL仿真器然后产生另外的结构化源代码。按照功能方框420,然后将数字和模拟仿真器的内部网络表的位置和说明传递回混合信号引擎,并且按照功能方框425,停止HDL仿真器进程或者线程。尽管数字细化和模拟细化十分相似,但是要注意的是数字细化涉及程序性的RTL(电阻晶体管逻辑)和门电路,而模拟细化涉及晶体管主体和模拟单元方程描述。
在优选实施例中,分别存储在数字和模拟细化的期间创建的电路网络表,并且稍后由混合信号引擎访问。如功能方框420中所述,细化的电路描述数据库访问信息被传递回混合信号引擎。在另一实施例中,使用统一的数据库。在另一实施例中,可以通过将所有细化的数字网络表数据库信息发送回混合信号引擎来替换功能方框420,以致混合信号引擎可以将数据添加到统一的数据库。
参考图5,在分离数字和模拟细化完成之后,按照功能方框500,执行混合信号细化PLI回调。按照功能方框505,再次扫描构造的网络表数据库,以便细化任何混合信号接口,以及,按照功能方框510,细化数字元件中的模拟结果和模拟元件中的数字结果。必须细化的数字和模拟相互作用的类型有确定插入数模和模数的位置(通常称为连接块插入),细化数字和模拟元件共享的参数的最终数值,确定由数字连接变化来的模拟方程,在数字延迟数值后加注释(通常使用标准化SDF格式)和在模拟参数后加注释(通常使用标准化SPF格式)。然后,按照功能方框515,将混合信号细化数据添加到混合信号内部数据库。
要注意的是AMS设计包括统一的实例树。如果实例树数据库格式与模拟和数字HDL的相同,则不需要另外的细化,以创建AMS设计实例树。否则,在混合信号细化期间,将模拟和数字实例树组合成统一的实例树。在另一可能的实施例中,可以通过产生新的数字和模拟HDL源代码,然后重复新的“混合信号”的元件的HDL细化来进行混合信号细化(参考图4)。
图6示出了仅仅使用了一个AMS HDL的另一实施例的细化步骤。细化步骤包括按照功能方框600,注册HDL细化PLI回调;按照功能方框605,分离数字、模拟和混合信号HDL结构;按照功能方框610,从数字结构中读、扫描和构造网络表;按照功能方框615,从模拟结构中读、扫描和构造网络表;按照功能方框620,从混合信号结构中读、扫描和构造网络表;按照功能方框625,将所有内部数据的位置和描述发送回混合信号引擎。当仅仅使用一个AMS HDL时,同时细化所有三种模拟、数字和混合信号结构。由于用HDL来编码混合信号结构,所以AMS HDL简化了混合信号细化,尽管仍然需要对AMS HDL数据库进行另外的扫描。另外,图6中的步骤与图4(非统一的AMS HDL)中的步骤大致相同。目前,甚至当仅仅使用一个AMS HDL时,AMS系统仿真需要一种包含传统Spice网络表的机制。AMS HDL定义包括该机制的“外国的”语言,所述机制允许将Spice网络表包含在AMS HDL源之中。在优选实施例中,通过注册“包括不同语言”的回调来处理Spice。然后用普通的Spice细化程序(elaborator)将Spice翻译成该回调之中的AMS HDL模拟块结构。在另一实施例中,修改模拟仿真器,以便求解从包含非原始HDL语言得到的方程。
在AMS仿真开始之前,必须注册混合信号相互作用所需要的各种PLI回调。由于多个PLI应用程序必须同时存在,在执行使用PLI的仿真的第一步骤中,需要通过将它们置入表中来注册多个回调例行程序。当开始运行时,这个表是混合信号仿真程序执行的第一件事情(具体细节在PLI说明部分中定义)。每个要细化的HDL都需要注册一个细化例行程序(参考图4,5和6),以及必须在仿真开始时注册一个回调(从概念上讲,第一动作在时间0)。图7详细说明了在AMS仿真设置回调中执行的步骤,其中按照功能方框700,数字引擎已经启动。注意,图7假设其中的步骤根据功能方框705在“仿真开始”回调中执行。
根据功能方框710,访问细化的混合信号数据库,以及找到所有端口实例的位置,其中端口的输入侧是数字,而另一侧连接到被建立成模拟晶体管模型或者方程的元件的端口。对于每个这样的端口,注册数值改变回调,以便监视连接的数字网中的变化。对于支持信号向量的数字HDL,为向量的每个比特注册一个回调。对于诸如Verilog-AMS之类的AMS HDL,需要不同类型的模数转换器。如果没有为端口定义数模转换器,则使用定义的数模转换器的默认连接块。在优选实施例中,为每个不同类型的数模转换器注册不同的回调处理例行程序,但是在另一实施例中,仅仅注册一个回调例行程序。这里,回调处理例行程序访问设计数据库,以便确定需要的数模转换器的类型。如功能方框715所示,还需要将模拟方程和回调相联系。
根据功能方框720,访问细化的混合信号数据库,以及找到所有端口实例的位置,其中端口的输入侧是数字的,而另一侧连接到被数字地建成模型的元件的端口。对于每个端口,记录必须在每个模拟转换步骤结束时更新的数字数值列表(参考描述了如何使用这些列表的图8a和8b)。如功能方框725所示,必须初始化数字和模拟仿真器。这就需要分析AMS数据库,以便确定比如模拟时间步骤需要的最多时间。或者,可能涉及数字的运行模式预设脚本或者运行数学模型的脚本,以便按照用户对仿真控制脚本的设置来正确初始化模拟方。
如功能方框730/735所示,在优选实施例中,在仿真设置期间,产生使用SDF文件读取注释的数字延迟和使用SPF文件读取注释的模拟参数的延迟注释。因为设计者常常喜欢按照HDL中编码的条件来进行条件注释,在另一实施例的仿真期间,可能产生注释。对于本实施例,注册“注释动作的结束”回调,以便更新模拟方程和状态,以及数字状态。在另一可选择的实施例中,仅仅在混合信号细化期间允许注释。本实施例允许更有效的仿真,因为数值被汇编在仿真模型中,但是因为缺少灵活性,所以并不是很流行。
如功能方框740所示,仿真设置的最后步骤是调度“数字时间进度(time advance)仿真的第一次结束”的回调。在优选实施例中,在模拟仿真之前运行数字仿真,并且“时间进度的结束”栅栏事件(fence event)被用于停止数字时间移动和运行模拟求解程序(见图8a和8b仿真回调中执行的步骤)。第一个“时间进度的结束”的回调或者调度在时间0的结束,或者使用普通的数字时间进度量来调度。数字仿真时间进度和模拟仿真时间进度之间的时间量通常称为时间增量(delta)。对于设计中的所有或者几乎所有的具体模拟示例(通常称为大A小D),因为可以将数字增量(delta)调整到在仿真周期的结束时发生,所以在时间进度事件的第一次结束之后模拟仿真器正常运行。对于设计中的所有或者几乎所有的具体数字示例(通常称为小A大D),因为不需要调用模拟求解程序,所以数字仿真器正常运行,除了在每个数字增量之后,加入了执行时间进度回调结束,这是非常有效而简单的。
参考图8a和8b,可以看出根据本发明的、基于PLI的AMS仿真的主要控制和同步仿真步骤发生在“数字时间进度的结束”回调中。回调与在一定的时间过去之后进行触发的报警时钟非常相似。在数字离散事件时间到达数字时间步骤的末尾之后,在该回调中执行图8a和8b中的步骤。图8a和8b中描述的优选实施例使用时间移动和Verilog-AMS草案1.5的图9中定义的AMS同步方法,如下同步循环应该同步数字和模拟内核,因此两者都不会计算另一方不适合接收的结果。同步算法可以使用下一部分描述的模拟和数字内核的特征。图9中示出了示例操作。图9示例操作1.模拟引擎开始暂态分析并将状态信息发送到数字引擎(901,902)。
2.数字引擎使用自己的时间步骤(903)开始运行;但是,如果没有数模转换事件,则不用通知模拟引擎,并且数字引擎继续仿真,直到其不能够推进(advance)它的时间,而不超过模拟分析的时间(904)。然后将仿真的控制返回到模拟引擎(905)。重复这个过程(907,908,909,910和911)。
3.如果数字引擎产生数模转换事件(912),则将仿真控制返回到模拟引擎(913)。模拟引擎返回到数字引擎最后交出的控制点上(914)。模拟引擎再次计算模拟结果直到数模转换事件发生时(915)。模拟引擎然后进行下一时间步骤(916)。
4.如果模拟引擎产生模数转换事件,则将控制返回到数字引擎(917),其进行仿真,直到发生模数转换事件的时间,然后交出控制(918和919)。
5.继续进行本过程,直到暂态分析结束。关于模拟和数字算法的假设1.数字算法中的时间进度●数字仿真具有一些最小的时间颗粒度,并且在该颗粒度的整数倍的时间处发生所有的数字事件。
●数字仿真器在给定的仿真时间中总是接收事件,设在稍后的时间其不再执行事件。一旦在给定的时间执行了事件,其不接收前面时间的事件。
●数字仿真器总报告最近执行的事件的时间和下一个即将到来的事件的时间。
2.模拟算法中的时间进度●模拟仿真器通过计算一系列的解来推进时间。每个解具有相关的时间,它与数字时间不同,并且不遵循具体的最小颗粒度。
●模拟仿真器不能确切告知下一个解收敛时的时间。因此,可以告知最近计算的解的时间,但不是下一解的时间。
●通常,模拟解是一个或者多个前面的解的函数。在给定的时间计算出解之后,模拟仿真器或者接收或者拒绝该解;在此后不再计算这个解,直到已接受当前时间的解。
3.模数转换事件●当模拟仿真器计算时,由转换单元(执行模数转换动作的模型)产生模数转换事件。
●模拟事件(例如,cross,initial step和final step)产生了它们发生时的模拟解。
●因此,产生任意模数转换事件,作为具体的暂时解。这意味着事件可以同产生这些事件的解保持关联,直到它们被传递到数字仿真器,然后,如果拒绝的话,它们与解一起被拒绝。
4.数模转换事件可能导致它们发生时的模拟解。
现在仍旧要细化Verilog-AMS和本同步方法。当草案标准结束时,其将被提交给IEEE,批准作为标准。在本发明的其它实施例中使用了其它的同步方法,并且由于要研究连续模拟和离散数字时间同步,其它的实施例也可以使用新发现的同步方法。因为HDL PLI允许整个计算机程序的一般性,所以使用这里公开的PLI系统和方法可以实现任何的这种方法。
如功能方框810所示,在数字时间移动完成之后,并且确定了模拟时间增量或者收敛停止条件之后,按照功能方框805,调用模拟求解程序并且进行收敛,或者到达更高的时间极限带,以便模拟时间跟上数字时间。当所有的模拟求解程序结束(从仅使用一个求解程序的实施例中的回调返回),如功能方框815所示,分析返回所有模拟求解程序的原因。根据功能方框815计算的信息被用于计算数字时间量,以便进行下一数字增量,如功能方框840所示。接着,如功能方框820所示,遍历图7的功能方框720中保留的模数转换模拟节点列表,以便确认哪一个信号改变了逻辑值。当通过特定的电压阈值时,或者当用户编程的AMS HDL条件得到满足时,通常发生逻辑值变化。功能方框825示出了在预备下一模拟求解程序的调用时需要的其它的处理过程。
功能方框830示出了可选择的步骤,即再注释从模拟状态变化转变来的数字延迟,这增加了建模的精度。模拟电路状态可以改变数字延迟(可能是由于电容效应);然后通过调用数字HDL PLI提出的延迟例行程序来改变数字延迟。在功能方框835中,更新任意的显示的模拟波形,并且执行任何的模拟控制或者检查脚本。运行诸如MATLAB之类的数学软件包,计算模拟收敛或者其它的模拟状态特性,然后将它们用于结束或者改变AMS仿真。
开始功能方框840,执行为下一数字仿真步骤预备的操作。注意,判断方框805用于跳过回调执行过程中的模拟时间移动(通常是时间0)。由于在优选实施例中数字时间在模拟时间之前移动,所以需要这样做,但是在其它的实施例中,模拟时间可以首先移动。在优选实施例中,功能方框805到835被跳过。
如功能方框840所示,计算调度下一AMS仿真回调的数字时间。计算中使用功能方框815中所示的前一模拟求解程序得出的结果。如功能方框845所示,注册下一数字仿真“时间进度结束”回调。然后,根据功能方框850,回调结束,从回调返回控制。
在本发明的操作中,功能方框855和860异步进行,即无论何时发生数模输入数字事件,调用功能方框855中引用的回调,执行,然后返回,无论数字模拟器何时开始,其都运行直到它被指示停止和执行回调例行程序。如方框855所示,无论何时因为数字数值的变化而发生了注册在数模输入端口中的数值变化回调(见图7,功能方框710),都将数字数值转换成模拟节点数值,然后更新模拟数据和方程。更有效的实施例可以存储所有的数模输入变化,然后在数字仿真周期结束时处理它们。当数字数值改变成另一数值然后又变回开始的数值时,这样可以减少要处理的数据量。如功能方框860所示,在数字仿真期间,更新数字波形显示,并且运行程序性的HDL,以便测试数字仿真的结束。因为内部的数字状态总是正确的,所以动态显示数字数值,但是对于模拟方面,仅仅在方程收敛点处才出现正确的状态。
这里公开的本发明也可以有使用除电压外的电路数值来仿真模拟电路的其它实施例。一般的模拟仿真使用晶体管节点电压,但是可以使用微分方程来描述其它的模拟电路数值,例如频率、电流或者磁场强度,以及求解这些数值,实现其它类型的模拟仿真,假设数值仍旧具有时域分量。在这些其它的实施例中,除了要改变模数和数模操作,以便在不同的模拟电路特性和数字逻辑值之间映射不同之外,AMS仿真都相同。在这些其它的实施例中,转换过程可能需要大量的计算。
应该注意的是,上面描述的流程图表示出了控制流程的优选方向。但是,在本发明的条件下,执行步骤的次序和/或执行步骤的同时性是可以变化的,而不偏离本发明的精神和实质。
最好通过使用计算机系统来执行本发明,图10中给出了计算机系统的示例。图10的计算机系统包括具有中央处理单元1013和存储器1011的计算机1000,用于执行本发明的程序指令。本计算机系统中可以使用输入外设1014以及输出外设1015。
可以按照其它的特定方式来实施本发明,而不偏离其基本性质的思想;因此,应该认为示出的实施例要说明本发明的各个方面,而非是局限性的,对附加权利要求而非上述说明的提及指示了本发明的范围。
权利要求
1.一种仿真既具有数字元件又具有模拟元件的电路的系统,其中所述电路的至少一部分被编码成硬件描述语言(HDL)模型,包括数字仿真器,其利用了编程语言接口(PLI),其中所述的数字仿真器按照所述的HDL模型产生数字电路信息;模拟仿真器,其利用了所述的PLI,其中所述模拟仿真器按照所述HDL模型产生模拟电路信息;和混合信号程序,其利用了所述PLI、控制所述数字和模拟仿真器以及同步离散数字时间和连续模拟时间,其中三个所述数字仿真器、所述模拟仿真器和包括混合信号引擎的所述混合信号程序使用所述PLI。
2.根据权利要求1所述的系统,其特征在于所述数字仿真器包括细化程序,其中所述细化程序将电路网络表描述的数字部分转换成内部数字和所述数字仿真器中的实例结构数据库,和所述模拟仿真器包括细化程序,其中所述细化程序将电路网络表描述的模拟部分转换成所述模拟仿真器中的内部数据库。
3.根据权利要求2所述的系统,其特征在于运行所述混合信号程序,以便读取数字仿真器数据库,并且将数字仿真器数据库传送到所述模拟仿真器,其中运行所述混合信号程序,以便读取模拟仿真器数据库,并且将模拟仿真器数据库传送到所述数字仿真器,以及,其中所述混合信号程序利用数字仿真器数据库和模拟仿真器数据库中读取的数据,以便进行混合信号接口处理功能。
4.根据权利要求1所述的系统,其特征在于所述数字仿真器包括事件引擎,以调度离散时间数字事件。
5.根据权利要求1所述的系统,其特征在于所述模拟仿真器包括模拟电路方程求解程序。
6.根据权利要求1所述的系统,其特征在于还包括时间同步装置,它能使所述混合信号引擎调度PLI回调,其中所述PLI回调通过所述数字仿真器来停止数字仿真,以便所述连续模拟时间可以推进到所述离散数字时间或者可以移动到同步点。
7.根据权利要求1所述的系统,其特征在于还包括时间同步装置,它使所述混合信号引擎从PLI回调中返回,其中当从所述PLI回调返回时,推进所述数字仿真器,使得所述离散数字时间推进到所述连续模拟时间,或着可以移动到同步点。
8.根据权利要求1所述的系统,其特征在于还包括数字数值转换器,它能够使所述混合信号引擎调度关于数字信号的数值改变回调,其中一旦所述的数字信号中发生变化,则所述数值改变回调能够使所述混合信号引擎将所述数字信号转变为模拟数值。
9.根据权利要求1所述的系统,其特征在于还包括模数转换器,它能够使所述混合信号引擎从模拟波形曲线确定数字数值。
10.根据权利要求1所述的系统,其特征在于还包括数模转换器,它能够使所述混合信号引擎从数字数值确定模拟数值。
11.根据权利要求1所述的系统,其特征在于所述数字仿真器维持数字数据库,而所述模拟仿真器维持模拟数据库,以及,其中所述混合信号引擎能够从所述数字数据库和所述模拟数据库读取数值和向所述数字数据库和所述模拟数据库写数值。
12.根据权利要求11所述的系统,其特征在于所述混合信号引擎向所述数字数据库或者所述模拟数据库的写操作提供仿真控制。
13.根据权利要求12所述的系统,其特征在于所述仿真控制包括数字控制脚本。
14.根据权利要求12所述的系统,其特征在于所述仿真控制包括模拟控制脚本。
15.一种用于仿真电路的模拟混合信号仿真方法,所述的电路既具有数字元件又具有模拟元件,其中所述的电路由一个或者多个硬件描述语言(HDL)描述,包括以下步骤读取HDL;细化所述电路的所述数字元件的HDL;细化所述电路的所述模拟元件的HDL;执行关于HDL的混合信号细化,以确定数字和模拟相互作用位置;在所述混合信号细化之后执行混合信号初始化;和按照所述混合信号初始化来执行混合信号仿真,其中所述执行步骤包括数字仿真、模拟仿真和所述数字仿真的时间与所述模拟仿真的时间的同步,其中通过使用编程语言接口(PLI)来至少部分地实现上述步骤中的各个步骤。
16.根据权利要求15所述的方法,其特征在于细化所述数字元件的HDL的所述步骤包括创建数字电路网络表描述,和将所述数字网络表描述转换成数字和实例结构数据库,其中细化所述模拟元件的HDL的步骤包括创建模拟电路网络表和将所述模拟电路网络表转换成数据库。
17.根据权利要求16所述的方法,其特征在于执行混合信号初始化的所述步骤包括读取数字数据库和使所述模拟仿真利用所述数字数据库中的数据,包括读取模拟数据库和使所述数字仿真利用所述模拟数据库中的数据,包括利用所述数字数据库和所述模拟数据库中的所述数据执行混合信号处理。
18.根据权利要求15所述的方法,其特征在于所述执行混合信号仿真的步骤包括调度离散时间数字事件。
19.根据权利要求15所述的方法,其特征在于所述执行混合信号仿真的步骤包括求解模拟电路方程。
20.根据权利要求15所述的方法,其特征在于所述执行混合信号仿真的步骤包括执行数字仿真。
21.根据权利要求15所述的方法,其特征在于所述执行混合信号仿真的步骤包括调度PLI回调,其中所述PLI回调停止数字仿真,以使所述模拟元件的定时推进到所述数字元件的定时或者推进到预定同步时间。
22.根据权利要求15所述的方法,其特征在于执行混合信号仿真的所述步骤包括从PLI回调返回,其中一旦从所述PLI回调返回,推进所述数字元件的所述定时,以使所述数字元件的所述定时推进到所述模拟元件的所述定时或者推进到预定的同步时间。
23.根据权利要求15所述的方法,其特征在于执行混合信号仿真的步骤包括按照数字信号调度数值改变回调,其中一旦所述的数字信号中发生变化,所述数字改变回调能将所述数字信号转化为模拟数值。
24.根据权利要求15所述的方法,其特征在于所述执行混合信号仿真的步骤包括从模拟波形曲线确定数字数值。
25.根据权利要求15所述的方法,其特征在于所述执行混合信号仿真的步骤包括从数字数值确定模拟数值。
26.根据权利要求15所述的方法,其特征在于所述执行混合信号仿真的步骤包括从数字仿真数据库和模拟仿真数据库中读取数值和向数字仿真数据库和模拟仿真数据库中写入数值。
27.根据权利要求26所述的方法,其特征在于向所述数字仿真数据库或者所述模拟仿真数据库写数值来控制对所述混合信号仿真的执行。
28.根据权利要求27所述的方法,其特征在于所述数值包括数字控制脚本。
29.根据权利要求27所述的方法,其特征在于所述数值包括模拟控制脚本。
30.一种用于仿真既具有数字元件又具有模拟元件的电路的系统,其中所述电路的至少一部分被编码成硬件描述语言(HDL)模型,所述系统包括用于读取HDL的读取装置;第一细化装置,用于细化所述电路的所述数字元件的HDL;第二细化装置,用于细化所述电路的所述模拟元件的HDL;第三细化装置,用于执行关于HDL的混合信号细化,以确定数字和模拟相互作用位置;初始化装置,用于在所述混合信号细化之后进行混合信号初始化;和执行装置,用于按照所述混合信号初始化来执行混合信号仿真,其中所述执行装置包括用于执行数字仿真的数字仿真装置、用于执行模拟仿真的模拟仿真装置和用于同步所述数字仿真的定时和所述模拟仿真的定时的同步装置,其中上述装置中的任何一个都利用了编程语言接口(PLI)。
31.根据权利要求30所述的系统,其特征在于所述第一细化装置包括用于创建数字电路网络表描述的装置和将所述数字网络表描述转换成数字和实例结构数据库的装置,以及,所述第二细化装置包括用于创建模拟电路网络表的装置和用于将所述模拟电路网络表转换成数据库的装置。
32.根据权利要求31所述的系统,其特征在于所述初始化装置包括用于读取数字数据库的装置和能够使所述模拟仿真装置利用所述数字数据库中的数据的装置,包括读取模拟数据库的装置和用于使所述数字仿真装置利用所述模拟数据库中的数据的装置,以及包括用于利用所述数字数据库和所述模拟数据库中的数据以执行混合信号处理的装置。
33.根据权利要求30所述的系统,其特征在于所述执行装置包括调度离散时间数字事件的装置。
34.根据权利要求30所述的系统,其特征在于所述执行装置包括用于求解模拟电路方程的装置。
35.根据权利要求30所述的系统,其特征在于所述执行装置包括用于执行数字仿真的装置。
36.根据权利要求30所述的系统,其特征在于所述执行装置包括用于调度PLI回调的装置,其中所述PLI回调停止数字仿真,以使所述模拟仿真的所述定时推进到所述数字仿真的定时或者推进到预定的同步时间。
37.根据权利要求30所述的系统,其特征在于所述执行装置包括用于从PLI回调返回的装置,其中一旦从所述PLI回调返回,推进所述数字仿真的所述定时,以使所述数字仿真的所述定时推进到所述模拟仿真的所述定时或者推进到预定的同步时间。
38.根据权利要求30所述的系统,其特征在于所述执行装置包括按照数字信号调度数值改变回调的装置,其中一旦所述数字信号中发生改变,所述数值改变回调能够将所述数字信号转化为模拟数值。
39.根据权利要求30所述的系统,其特征在于所述执行装置包括用于从模拟波形曲线确定数字数值的装置。
40.根据权利要求30所述的系统,其特征在于所述执行装置包括用于从数字数值确定模拟数值的装置。
41.根据权利要求30所述的系统,其特征在于所述执行装置包括用于从数字仿真数据库或者模拟仿真数据库读取数值的装置,和用于向数字仿真数据库或者模拟仿真数据库写数值的装置。
42.根据权利要求41所述的系统,其特征在于向所述数字仿真数据库或者所述模拟仿真数据库的所写数值规定了所述执行装置的执行控制。
43.根据权利要求42所述的系统,其特征在于所述数值包括数字控制脚本。
44.根据权利要求42所述的系统,其特征在于所述数值包括模拟控制脚本。
全文摘要
一种模拟和数字混合模式仿真的系统和方法,本系统和方法仿真用一个或者多个硬件描述语言(HDL)编码的模拟混合信号(AMS)(300)系统,以便描述数字子系统、模拟电路和混合信号接口元件。它使用被称为HDL编程语言接口(PLI305)的特定类型应用程序接口(API)来实现和仿真(AMS)电路。使用PLI就可以大大简化和提高AMS仿真,因为使用PLI实现的混合模式引擎可以为数字引擎调用任何通常使用的数字仿真器和,为模拟引擎调用任何通常使用的模拟求解程序。该系统和方法集成了单一内核数字引擎AMS仿真的精度与结构简单和灵活性的数据交换AMS仿真。
文档编号G06F17/50GK1440537SQ01812264
公开日2003年9月3日 申请日期2001年7月5日 优先权日2000年7月5日
发明者史蒂文·J·迈耶 申请人:史蒂文·J·迈耶
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1