专利名称:支持用于仿真结果观测的信号规范的方法、系统和程序产品的制作方法
技术领域:
本发明一般地涉及仿真数字设备、模块和系统,并且特别涉及数字设 备、模块和系统的计算机仿真。
背景技术:
在大多数数字设计过程中,检验数字设计的逻辑正确性并调试该设计 (如果必要的话)是非常重要的步骤。通过实际构建网络或通过在计算机
上仿真网络来测试逻辑网络。当逻辑网络变得非常复杂时,在实际构建i殳 计之前仿真该设计是必要的。这在设计被实现为集成电路时尤其如此,因 为集成电路的制^^要求相当多的时间并且纠正,的代价很高。数字设计 仿真的目的是检验该设计的逻辑正确性。
在典型的由常规电子计算机辅助设计(ECAD)系统所支持的自动化 设计过程中,设计师利用硬件描述语言(HDL)(例如VHDL)输入高级 描述,从而产生各种电路块及其互连的表示。ECAD系统将该设计描述编 译成最适于仿真的格式。然后在开发电路布置之前利用仿真器来检验该设 计的逻辑正确性。
仿真器通常是一种软件工具,其操作于电路的仿真模型或数字表示以
;M^示数据系统的输入的一系列输入激励(即,测试用例)。仿真器生成 电路响应的数字表示,然后该数字表示可以作为一列值在显示器屏幕上被 观测或被进一步解释(常常通过单独的软件程序),并且以图形形式被呈 现在显示器屏幕上。仿真器可以运行在通用计算机上或另外的电子装置部 件上(其通常附于通用计算机并专门为仿真而设计)。下文将完全以软件 形式运行在通用计算机上的仿真器称为"软件仿真器"。下文将在专门设计的电子装置的辅助下运行的仿真器称为"硬件仿真器"。
通常,软件仿真器进行大量的计算并且在用户看来运行得慢。为了优 化性能,对仿真模型的格式进行设计,以便被仿真器高效使用。本质上, 硬件仿真器要求包括电路描述的仿真模型以专门设计的格式进行通信。无
论哪种情况,都要求从HDL描述转换到仿真格式(下文称之为仿真可执 行模型)。
在此将仿真器的仿真可执行模型的测试用例的应用结果称为"所有事 件跟踪"(AET) 。 AET含有仿真可执行模型内信号的逻辑值和/或存储 元件。可以利用AET观测器向用户呈现AET的内容以便进行回顾和分析。
如将被理解的,对于大的仿真可执行模型来说,大量数据会呈现在 AET中,但并不是所有的数据都与用户有关。因此,常规AET观测器允 许用户输入输入/输出(I/O)列表,其指定用户期望观测的仿真可执行模 型中的信号。作为响应,常规AET观测器向用户仅呈现I/0列表中所标识 的仿真可执行模型内的那些信号。
发明内容
本发明认识到I/O列表的用户输入(例如,利用键盘)是乏味且耗时 的,特别是对于复杂的仿真可执行模型。因此,本发明提供了一种用于仿 真处理的方法、系统和程序产品。
根据示例性方法,通过数据处理系统来接收包括至少一个条目的数据 集,所述至少一个条目通过预定的信号组名称来指定信号组。响应于收到 所述数据集,处理所述数据集中的条目,以便标识信号组名称。访问与含 有仿真结果的事件跟踪文件相关联的信号组信息,以便确定作为所述信号 組的成员的多个信号的信号名称。然后将来自所述事件跟踪文件的与所迷 多个信号的实例相关联的仿真结果包括在对仿真结果的呈现中。
本发明的所有目的、特征和优点将在下面详细的文字描述中变得显而 易见。
在所附权利要求中阐明了被认为是本发明的特性的新颖的特征。然而, 当结合附图阅读的时候,通过参照下面对说明性实施例的详细描述,将最 好地理解本发明本身以及优选的使用方式及其进一步的目的和优点,在附
图中
图l是依照本发明的数据处理系统的图形表示;
图2描绘了图1所说明的数据处理系统的代表性硬件环境;
图3A是依照本发明的教导说明了数字设计实体的简化框图3B是依照本发明的教导描绘了仿真模型的图形表示;
图3C是依照本发明的教导说明了模型构建过程的流程图3D是依照本发明的教导描绘了表示设计的仿真模型数据结构的框
图4是描绘了仿真可执行模型的仿真以及向用户呈现仿真结果的流程
图5A描绘了依照现有技术的第一常规I/0列表;
图5B描绘了依照现有技术的第二常规I/O列表;
图5C-5D说明了依照本发明的示例性I/O列表;
图6A依照本发明描绘了包括信号组描述符的示例性设计实体HDL文
件;
图6B依照本发明说明了包括嵌套信号组描述符的示例性设计实体 HDL文件;以及
图7A-7C共同形成了依照本发明的示例性过程的高级逻辑流程图, AET观测器由此处理I/O列表以便生成对AET文件的呈现。
具体实施例方式
现在参照附图,并且特别参照图l,其中描绘了数据处理系统10的图 形表示,借此可以有利地利用本发明。如图所示,数据处理系统IO包括一 个或多个节点13与^M目连的工作站12。工作站12优选地包括高性能的多处理器计算机,例如可从纽约Armonk的国际商业机器(IBM)公司获得 的计算机系统的POWER系列之一。工作站12优选地包括非易失性和易 失性内部存储器,用于存储包括ECAD系统的软件应用,依照本发明的方 法和系统,其可以被用于开发和检验数字电路设计。如图所示,节点13 包括显示设备14、键盘16和鼠标20。在工作站12内执行的ECAD软件 应用优选地在显示设备14的显示屏22内显示图形用户接口(GUI),由此, 数字电路设计者可以使用键盘16和鼠标20进行交互。因而,通过利用键 盘16和鼠标20输入适当的输入,数字电路设计者能够根据下文进一步描 述的方法来开发和检验数据电路设计。
图2是数据处理系统10的较为详细的框图。如图所示,数据处理系统 10包括一个或多个中央处理单元(CPU) 24 (例如常规的微处理器),以 及通过系统互连26而相互连接的多个其它组件。尽管图2中未示出,然而 诸如CPU 24这样的CPU通常包括控制单元,其在计算机存储器中组织数
CPU通常还包括一个或多个运算逻辑单元,其执行诸如加法、比较、乘法 等的算术和逻辑操作。
数据处理系统10进一步包括随机访问存储器(RAM) 28,只读存储 器(ROM) 30、支持连接显示设备14的显示适配器32,以及用于连接外 围设备(例如盘和带驱动33 )的I/O适配器34。数据处理系统10进一步 包括用于将数据处理系统10连接到通信网络的通信适配器42以及用于将 键盘16、鼠标20、扬声器38、扩音器40和/或其它用户接口设备连接到系 统互连26的用户接口适配器36。
如本领域的技术人员将理解的,数据处理系统10在操作系统(例如, AIX)以及一个或多个其它程序的控制下工作,这些程序可以驻留于任何 适当的计算机可读介质中,例如RAM 28、 ROM 30、磁盘、磁带或光盘(后 三者位于盘和带驱动33中)。
所仿真的数字电路设计模型包括至少一个并且通常是多个子单元,下 文将其称为设计实体。图3A是其中可以实现本发明的方法和系统的示例性设计实体300的框图表示。设计实体300由多个组件定义实体名称、
实体端口,以及由设计实体300所实现的功能的表示。给定模型内的每个
实体都具有唯一的名称(图3A中未明确示出),在每个实体的HDL描述
中声明该唯一的名称。此外,每个实体通常含有多个信号互连(被称为端
口)以便向实体外部发送信号。这些外部信号可以是整个设计的主要输A7
输出(I/O)或整个设计内连接到其它实体的信号。
通常,端口,皮分类为属于三种截然不同的类型之一输入端口、输出
端口以及双向端口 。设计实体300被描绘为具有将信号传送到设计实体300
中的多个输入端口 303。输入端口 303连接至输入信号301。另外,设计实
体300包括将信号传送到设计实体300之外的多个输出端口 306。输出端
口 306连接至一组输出信号304。双向端口 305被用于将信号传送到设计
实体300之内和之外。双向端口 305依次连接至一组双向信号309。诸如
设计实体300的实体并不需要含有全部三种类型的端口 ,并且在简并
(degenerate)的情况下,根本不含端口。为了实现将实体端口连接到外
部信号,利用了映射技术,被称为"端口映射"。端口映射(图3A中未明
确示出)由在实体端口名称与实体所连接的外部信号之间的指定对应组成。
当构建仿真模型的时候,根据端口映射规范,利用ECAD软件将外部信号 连接到实体的适当端口。
最后,设计实体300含有主体部分308,其描述了由设计实体300所 实现的一个或多个功能。在数字设计的情况下,除了其它实体的实例化之 外,主体部分308还含有存储元件、逻辑门的互连,等等。通过实例化另 一实体内的实体,实现整个设计的层次描述。例如,微处理器可以含有相 同功能单元的多个实例。如此,微处理器本身将常被建模为单个实体。在 微处理器实体内,将存在任何重复的功能实体的多个实例化。
现在参照图3B,其中说明了可以在本发明的优选实施例中利用的示例 性仿真模型329的图形表示。仿真模型329包括多个层次设计实体。为了 视觉简洁并清楚,互连了仿真模型329内实体的很多端口和信号都未被明 确示出。在任何才莫型中, 一个且仅一个实体是所谓的"顶级实体(top-levelentity )"。顶级实体320是涵盖仿真模型329内所有其它实体的实体。也就 是说,顶级实体320直接或间接地实例化设计中的所有后辈实体 (descendant entities )。仿真模型329是由直接实例化FXU实体321的两 个实例321a和321b的顶级实体320组成的。每个实例化均具有关联的描 述,其含有实体名称和唯一的实例化名称。对于顶级实体320来说,将描 述310标记为"TOP: TOP"。描述310包括实体名称312 (其净皮标记为在 冒号之前的"TOP"),并且还包括实例化名称314 (其被标记为在冒号之 后的"TOP")。
对于特定实体来说,有可能被多次实例化,如关于FXU实体321的实 例化321a和321b所描绘的。实例化321a和321b是FXU实体321的不 同实例化,分别具有实例化名称FXUO和FXU1。顶级实体320位于仿真 模型329的层次内的最高级别。实例化后辈实体的实体在下文将被称为后 辈实体的"先辈(ancestor ),,。因此,顶级实体320是直接实例化FXU实 体实例化321a和321b的先辈。在仿真模型层级的任何给定级别,所有实 例化的实例化名称都必须是唯一的。
在FXU实体321的实例化321a内,分别直接实例化了实体A 325和 实体B326的单个实例实体325a和326a。类似地,相同FXU实体的实例 化321b分别含有实体A 325和实体B 326的实例化325b和326b。以类似 的方式,实例化326a和实例化326b分别直接将实体C 327的单个实例实 例化为实体327a和327b。
假设(不管单个或多重)实例化的所有实体具有唯一的实体名称并且 在任何给定层次级别的实例化名称相对彼此而言是唯一的,那么其它实体 内的实体嵌套就可以继续达到任意复杂级别。从一个或多个hdl文件构
造每个实体,该hdl文件含有描述实体所必需的信息。
与每个实体实例化相关联的是所谓的"实例化标识符"。对于给定实例
所组成的字符串。例如,FXU实体321的实例化321a内的实体C 327的 实例化327a的实例化标识符是"TOP.FXU0.B.C"。该标识符用于唯一标识仿真模型内的每个实例化。
在示例性仿真模型329内,各种信号被实例化(例如,信号E、 FO、 Fl、 G、 HO、 Hl、 L、 M、 N、 P和Q )。每个信号均具有关联的信号名称 (例如,"M")和信号实例化标识符,在优选实施例中,其是由开始于顶 级实体实例化名称并且终止于该信号名称的封闭实体实例化名称所组成的
字符串。因而,FXU实体321的实例化321a内的信号M的实例化标识符 是"TOP.FXUO.A.M"。该实例化标识符用于唯一标识仿真模型内的每个信 号实例化。应当注意到,信号(例如,信号P(0..4))可以是多比特信号向 量。还应当注意到, 一些信号(例如,信号TOP.FXUO.E、 TOP.FXUl.E、 TOP.FXUO.G和TOP.FXU1.G)当它们^i更计实体边界时被重新命名(分 别为信号 TOP.FXUO.FO 、 TOP.FXU1.F1 、 TOP.FXUO.HO 和 TOP,FXUl.Hl )。
现在参照图3C,其中描绘了可以在本发明的优选实施例中实现的模型 构建过程的流程图。该过程开始于一个或多个设计实体HDL源代码文件 340以及可能的一个或多个设计实体中间格式文件345,下文称其为"原型 文件(proto file )" 345,其可从HDL编译器342先前的运行中获得。HDL 编译器342处理HDL文件340,开始于仿真模型的顶级实体,并且以递归 方式前行通过描述了整个仿真^^莫型的所有HDL或原型文件。
在编译过程期间对于每个HDL文件340来说,HDL编译器342检查 原型文件345以确定先前编译的原型文件是否可用和一致。如果这样的文 件可用并且一致,则HDL编译器342将不重新编译该特定文件,而是将 参考现存的原型文件。如果没有这样的原型文件可用或原型文件不一致, 则HDL编译器342明确地重新编译所考虑的HDL文件340并且创建原型 文件344用于后续编译。这样的过程在下文中被称为"增式编译 (incremental complilation )"并且可以极大加速创建仿真可执行才莫型348 的过程。 一旦被HDL编译器342创建,原型文件344就可用,以便充当 后续编译中的原型文件345。
除了原型文件344之外,HDL编译器342还在计算机系统10的存储器44中创建两套数据结构,设计实体原型数据结构341和设计实体实例数 据结构343。设计实体原型数据结构341和设计实体实例数据结构343充 当仿真可执行模型348的内容的存储图像。数据结构341和343通过存储 器44被传递到模型构建工具346,该模型构建工具346将数据结构341和 343处理到仿真可执行模型348中。
下文将假设每个实体都通过单个HDL文件来描述。才艮据惯例或用以 实施本发明的特定HDL,可以要求该限制。然而,在特定情况下或对于特 定HDL来说,有可能通过利用超过一个的HDL文件来描述实体。本领域 的技术人员将意识并理解到,如果允许由多个HDL文件来描述实体,则 有必要进行扩展以实施本发明。此外,对于每个实体,假设在实体名称与 以下二者之间有直接对应表示实体的HDL文件的名称,以及用于实体 的原型文件的名称。
在下面的描述中,将以尾随".vhdl"的实体名称来指代对应于给定实 体的HDL源代码文件。例如,描述顶级实体320的HDL源代码文件将被 称为TOP.vhdl。这种标记约定仅用作记法方便而不应当被解释成将本发明 的适用范围限制于除了 VHDL之外的HDL。
返回附图3B,可以看出每个实体都可以直接或间接地实例化一个或多 个其它实体。例如,FXU实体直接实例化A实体325和B实体326。此夕卜, B实体326直接实例化C实体327。因此,FXU实体321直接或间接地实 例化A实体325、 B实体326和C实体327。由另一实体直接或间接实例 化的那些实体在下文中将被称为"后辈"。顶级实体320的后辈是FXU实 体321、 A实体325、 B实体326和C实体327。可以看出每个实体均具有 唯一的一组后辈并且每次实例化一实体,就创建该实体及其后辈的唯一实 例。在仿真模型329中,FXU实体321被顶级实体320实例化两次, FXU:FXUO 321a和FXU:FXU1 321b。 FXU实体321的每个实例化均创建 FXU、 A、 B和C实体的唯--组实例。
对于每个实体来说,有可能定义被称为"资料清单(bill-of-materials )" 或BOM的内容。BOM是具有实体本身以及实体后辈的日期和时间戳的HDL文件列表。再次参照图3C,在编译实体之后,用于实体的BOM被 存储在原型文件344中。因此,当HDL编译器342编译HDL文件340中 的特定HDL源代码文件的时候,生成包括BOM的原型文件344,该BOM 列出了构成实体以及实体后辈(如果有的话)的HDL文件340。 BOM还 含有当HDL文件正被编译的时候在计算机系统10的盘/带33上相应出现 时所参考的每个HDL文件的日期和时间戳。
如果随后改变了构成实体或实体后辈的任何HDL文件,则原型文件 344将被标记为不一致,并且HDL编译器342在后续重新编译时将重新编 译HDL文件340,如下面较为详细描述的。例如,返回图3B, FXU实体 321的BOM所参考的HDL文件是FXU.vhdl、 A.vhdl、 B.vhdl和C.vhdl, 其各自具有适当的日期和时间戳。顶级实体320的BOM所参考的文件是 具有适当日期和时间戳的TOP.vhdl、 FXU.vhdl、 A.vhdl、 B.vhdl、 C.vhdl 和FPU.vhdl。
返回图3C, HDL编译器342在计算机系统10的主存储器44中创建 仿真模型的结构的图像。该存储图像由下列组件组成"原型"数据结构 341和"实例"数据结构343。原型是这样的数据结构,即对于模型中的每 个实体来说,其含有与实体的端口、实体的正文内容以及直接被该实体所
实例化的其它实体的一系列参考有关的信息(在下文中,术语"原型,,将 被用于指代上述内存数据结构,并且术语"原型文件"将被用于描述中间 格式文件344)。因此,原型文件344是由HDL编译器342所产生的内存 原型数据结构的盘式表示(on-disk representation )。
实例数据结构是这样的数据结构,即对于模型内实体的每个实例来说, 其含有实例的实例名称、实例所参考的实体的名称,以及将实体与外部信 号互连所必需的端口映射信息。在编译期间,每个实体将仅具有一种原型 数据结构,然而,在实体具有多重实例化的情况下,每个实体可以具有一 个或多个实例数据结构。
为了有效地增式编译模型,HDL编译器342遵循编译的递归方法,在 该方法中,考虑并从原型文件345加载模型的连续实体(如果这样的文件可用并且与构成那些实体及其后辈的HDL源文件一致的话)。对于不能够 从现有原型文件345加载的每个实体来说,HDL编译器342递归地检查实 体的后辈,加载可从原型文件345获得的那些后辈实体,并且根据需要创 建与原型文件345不一致的用于那些后辈的原型文件344。下面示出了 HDL编译器342的主控制循环的伪代码(伪代码右侧的行号并不是伪代码 的一部分,而仅仅用作注释方便)。
<formula>formula see original document page 15</formula>当初始调用编译器342的时候,计算机系统10的存储器44中并不存 在原型数据结构341或实例数据结构343。主控制循环(例程 process—HDL—file0 (行5))被调用并且借助于参数"file"传递顶级实体 的名称。算法首先确定是否借助于例程protojoaded()(行15)而在存储 器44中呈现用于当前实体的原型数据结构。要注意,顶级实体的原型数据 结构绝不会出现在存储器中,因为该过程是在没有任何原型数据结构,iL^ 载到存储器44中的情况下开始的。如果存储器44中存在匹配的原型数据 结构,则才艮据需要通过例程creat—instanceO (行75 )在存储器44中创建 用于当前实体以及当前实体的后辈(如果有的话)的实例数据结构。然而,如果存储器44中并没有匹配的原型数据结构,则控制转到行 20,例程exists_proto—file()在那里检查原型文件345以便确定是否存在用 于实体的原型文件。当且仅当存在匹配原型文件的时候,调用例程 checkjbom()以便确定原型文件345是否一致。为了确定原型文件是否一 致,检查原型文件的BOM。例程check—bom()检查BOM中所列出的每个 HDL源代码文件,以便确定HDL源代码文件的日期或时间戳是否已经改 变或者是否已经删除了 HDL源代码文件。如果BOM中任何文件发生这两 种情况中的任何一种,则原型文件是不一致的并且例程check—bom()失败。 然而,如果check—bom()成功,则控制转到行25,在那里例程load_proto() 将原型文件和任何后辈原型文件加载到存储器44中,从而创建当前实体以 及当前实体的后辈(如果有的话)的原型数据结构341。 process—HDL—fileO 的构建确保了一旦已经检验出原型文件是一致的,则其所有的后辈原型文 件(如果有的话)也是一致的。
如果原型文件不存在或不一致,则控制转到行35,在那里例程 parse—HDL—file0加载当前实体的HDL源代码文件。例程parse—HDL—file() (行35 )检查HDL源代码文件的语法正确性,并且确定后辈实体(如果 有的话);故当前实体实例化。行40、 45和50构成循环,其中例程 process—HDL一fileO被递归调用以便处理当前实体所调用的后辈实体。该过 程以深度优先的方式递归重复遍历当前实体的所有后辈,从而创建当前实 体的所有后辈的原型数据结构341和原型数据文件344。 一旦处理了后辈 实体,控制就转到行55,在那里通过例程create—proto()来在存储器44中 为当前实体创建新的原型数据结构。然后控制转到行60,在那里通过例程 write—proto—file()将新的原型文件344 (包括关联的BOM)写入盘33。最 后,控制转到行75,在那里例程create—instance()根据需要创建当前实体 以及任何后辈实体的实例数据结构343。以这样的方式,process—HDL—fileO (行5)递归处理整个仿真模型,从而创建由原型数据结构341和实例数 据结构343组成的模型的内存图像。
如图3C中所进一步示出的,本发明进一步允许设计者在设计实体HDL文件340内包括一个或多个信号组指令350,其标识当观测仿真可执 行模型348的仿真结果时很可能感兴趣的特定信号。下面参照图6A-6B描 述信号组指令350的示例性语义学。除了上述处理之外,HDL编译器342 还优选地处理信号组指令350,以便生成信号组信息(SGI) 400,其利用 任何方便的数据结构(例如,链接列表、表格等)来表示感兴趣的信号的 信号实例化标识符。模型构建工具346然后视情况利用一些另外的格式转 换将信号组信息(SGI) 400放置到仿真可执行模型348内。
现在参照图3D,其中描绘了表示所编译的数据结构的框图,其可以在 本发明的优选实施例中实现。存储器44含有原型数据结构361,分别用于 仿真模型329中所参考的每个实体。另外,通过实例数据结构362来表示 仿真模型329中的实例化。借助于指示仿真模型329内实体的实例化的层 次性质的指针来连接实例数据结构362。最后,存储器44含有SGI 400。 图3C中的;R型构建工具346将存储器44的内容处理到存储器数据结构中, 以便产生仿真可执行模型348。
现在参照图4,其中描绘了依照本发明用于仿真设计并观测仿真结果 的过程的流程图。如图所示, 一旦已经通过图3C的过程获得了仿真可执 行模型348,就利用软件和/或硬件仿真器404来在测试用例402的情况下 仿真仿真可执行才莫型348,以便仿真数字设计的操作。在仿真期间,所有 事件跟踪(AET)文件406记录表示仿真可执行模型348对测试用例402 的响应的数据。AET文件406内的数据包括仿真可执行才莫型348内随时间 的各种信号和/或存储元件的值以及SGI400。
为了回顾AET文件406的内容,用户通常采用单独的或集成的观测器 程序,在此^皮称为AET观测器410。例如,用户可以请求AET观测器410 以图形格式在显示器屏幕22内或以硬拷贝格式呈现来自AET文件406的 数据。如上所述,通过在感兴趣的信号的数据集(在此称为1/0列表408) 中指定,用户可以将AET观测器410所呈现的数据有利地限制于特定的感 兴趣的信号。
如图5A所示,依照现有技术的常规I/O列表500是含有大量条目的列表,每个条目阐明了感兴趣的信号之一的信号实例化标识符,在这种情
况下其包括图3B的FXU实例化312a内的所有信号。因而,如将从图5A 中给出的简化例子可以理解的,在现有技术中,用户必须利用键盘16输入 潜在的大量信号实例化标识符中的每一个。这种手动键盘输入信号实例化 标识符的常规技术是乏味并且容易出错的。
另外, 一些仿真器404并不保护后辈设计实体中跨设计实体边界i^ 较高级别设计实体的信号的信号名称。相反,为了消除AET文件中的信号 重复,这样的仿真器404仅在AET文件中通过信号在其所出现的最高级别 设计实体中的信号名称来标识该信号。因此,如果采用了并不保护信号名
称的仿真器404,则用户必须利用这样的信号实例化标识符来指定I/O列 表500内的信号,即该信号实例化标识符采用来自信号所出现在的最高级 别设计实体的信号的信号名称。例如,通过将图5A的条目502与图5B的 I/O列表500,的对应条目504进行比较可以看出,并不保护信号名称的仿 真器404的用户必须利用如参考标号504所示的信号实例化标识符FO,而 不是如参考标号502所示的信号实例化标识符FXU.E。可以理解,对于其 工作主要是关于后辈设计实体的AET观测器410的用户来说,可能难以确
设;十^体)所利用的信号名: '、 " ' " ' *
代替常规的I/O列表500或500,,依照图5C,本发明允许AET观测 器410的用户利用一个或多个改进的I/O列表408替换对来自AET文件 406的数据的过滤呈现。如图5C所示,1/O列表408是含有一个或多个条 目的列表。除了如图5A或5B所示的含有常规信号实例化标识符的零个或 多个条目之外,1/O列表408的条目(例如条目510)可以通过对应于SGI 400内的信息的信号组实例化标识符来标识具有一个或多个感兴趣的信号 的一组信号。
如图所示,信号组实例化标识符以类似于信号实例化标识符的方式而 形成,并且由封闭实体实例化名称的字符串组成,该封闭实体实例化名称 的字符串开始于顶级实体实例化名称并且终止于由一对尖括号("<,,和">")所封闭的信号组名称,这一对尖括号指示括号内的内容是单独的信
号组名称空间(namespace)的成员。因而,FXU实体实例化321a内六个 感兴趣的信号可以通过单个条目"FXUO.<FXU—Group>"来简单标识,而 不是通过将信号实例化标识符单独输入I/0列表408中。如上所述,利用 设计实体HDL文件340内的信号组指令350来指定包括信号组 FXU—Group的各个信号。
现在参照图6A,其中说明了依照本发明的设计实体HDL文件340a 的示例性实施例。如本领域的技术人员应当理解的,设计实体HDL文件 340a包括描述设计实体(在这种情况下其是设计实体FXU 321)的常规 HDL源代码。常规HDL源代码包括端口映射600以及信号赋值语句602。 另夕卜,设计实体HDL文件340a依照本发明包括含有信号组指令350 (图 3C)的非常规HDL注释。
在设计实体HDL文件340a中,信号组指令350包括两种不同类型的 信号组指令信号组声明610和信号保护指令620。信号组声明610开始 于"—! ! Signal Group ^ro"/ —Am附e;"形式的HDL注释,并且结束 于"—! ! End Signal Group s/gw"/^ww/ —w"附e;"形式的HDL注释,其中
s/g"fl/^WW/7—是对于给定目标设计实体来说唯一的信号组名称(在该
例中是FXl^Group )。在信号组声明610的开始和结束语句之间,通过AET 观测器410将一个或多个感兴趣的信号的信号名称以所期望的呈现顺序列 出。在该实施例中,相对于目标设计实体(例如,FXU设计实体321)指 定信号名称。本发明的至少一些实施例允许利用常规语法"..\"来相对于 目标设计实体指定设计实体层次中较高的信号名称,以便指示层次中的下 一较高级别。
优选地允许用户进一步指定与信号组声明610内的信号呈现相关的附 加属性。例如,用户可以指定所期望的信号颜色、波形或二进制信号表示 的缺省值、所期望的对于非对齐比特向量的对齐,等等。因而,在信号組 声明610的语句612中,用户已经指定左对齐5比特信号向量B.C.P(0..4)。
如图6B的设计实体HDL文件340b所进一步描绘的,诸如信号组声明630这样的信号组声明还优选地允许用户指定嵌套信号组到任何合法深 度。为了指定包括一部分较大信号组的嵌套信号组,用户只是在信号组声 明中包括语句,其对于尖括号(即,"<"和">")中所封闭的信号组引用 嵌套信号组的实例化标识符。使用尖括号允许HDL编译器342在信号的 名称空间与信号组名称之间进行区分。
重新参照图6A,利用信号保护指令620来向仿真器404指示缺省地 并不保护重新命名的信号的较低级别信号名称,这么^故是为了特定的重新 命名的信号(例如,信号G)。因而,假设仿真器404缺省地并不保护重新 命名的信号的较低级别名称,AET文件406将含有信号实例化标识符 TOP.FXUO.G和TOP.FXU1.G的数据。如以上参照图5B所讨论的,保护 熟悉的信号名称的能力不需要用户向I/O列表输入可能不熟悉的信号实例 化标识符TOP.FXU1.HO和TOP.FXU1.H1来观测所保护的信号G的信号 数据。
现在参照图7A-7C,其中描绘了依照本发明的示例性过程的高级逻辑 流程图,AET观测器410由此来处理I/0列表408。作为逻辑流程图,从 逻辑上而不是按顺序描绘了操作,并且很多所说明的操作都可以并行或以 替代顺序实现。
如图所示,该过程开始于图7A的块700,并且然后前进到块702,其 说明了确定用户是否已经输入1/0列表408的参考范围,也就是说,将参 照其来解析所有其它I/O列表条目的仿真可执行才莫型348的范围。缺省地, 参考范围是仿真可执行模型348中的顶级设计实体实例,例如,图3B中 的顶级设计实体实例320。在一个实施例中,允许用户输入"Scope limit uVis似Mce—sft^Vig。. [cfesigw—e"ft^v] ./iwtofice—stnVig/"形式的进一步P艮寺寸参 考范围的命令,其中/"stowce^W"g。和,Vis似wce—Wr/"g7是任选的设计实 体实例字符串(对于//i^mce—s加ViW来说,开始于顶级设计实体实例), 并且方括号中的^s/g"jw,/印是任选的设计实体名称。合法的参考范围命
令包括三个任选字段,Vw似"Ce一5^//^ 、 [to/g"一e"鄉和/"5似"CC—5^/"^
中的至少一个。参考范围命令可以与AET观测器410进行通信,例如,通过命令行或在i/o列表408内。如果插入I/O列表408中,则参考范围命 令优选地应用于该I/O列表408中的所有条目。
如块702所示,如果用户还未输入不同的参考范围,则AET观测器 410将参考范围缺省地设置成仿真可执行模型348的顶级设计实体实例, 如块704所示。此后,该过程通过页面连接符A到图7B。如果在块702 处AET观测器410确定用户已经输入了不同的参考范围,则AET观测器 410进一步解析该参考范围命令,以便在块710处确定该参考范围命令是 否含有括号中的语法(例如,ew,/0;)。如果没有,则该过程前进 到块713,其说明了 AET观测器410确定由参考范围命令所指定的设计实 体实例是否存在于仿真可执行模型348中。如果不存在,则处理在块715 处出错终止。如果存在,则该过程从块713转到块720,其描绘了AET观 测器410将参考范围设置成参考范围命令的/附toMce一Wr,Vi^ 字段内所指定 的特定设计实体实例。例如,假设图3B的仿真可执行模型329,参考范围 命令"Scope limit:TOP.FXU0"将参考范围设置成FXU设计实体321的实 例321a。在该参考范围情况下,可以将图5C的I/O列表408的条目510 简化为〈FXU—Group>。此后,该过程通过页面连接符A到图7B。
返回块710,响应于确定参考范围命令采用了括号中的语法,在块712 处,AET观测器410接着确定所命名的设计实体是否存在于仿真可执行模 型348中。如果不存在,则处理在块714处出错结束。然而,如果指定的 设计实体存在于仿真可执行模型348中,则AET观测器410递归地搜索仿 真可执行模型348,以便标识由/wWflwcej加'"^所定义的存在于仿真可执 行模型348部分内的设计实体的所有实例(如果存在的话)。如块718处所 示,如果在指定范围内不存在指定设计实体的任何实例,则处理在块714 处出错终止。如果在块718处AET观测器410确定所指定的设计实体的至 少一个实例位于指定范围内,则在块722处AET观测器410进一步确定在 指定范围内是否M现设计实体的单个实例。如果是的话,则该过程转到 块720,其说明了 AET观测器410将设计实体的此单个实例设置为参考范 围。此后,该过程通过页面连接符A到图7B。如果在块722处AET观测器410确定在指定范围内发现指定设计实体 的超过一个的实例,则AET观测器410将设计实体实例的列表呈现给用户 进行选择,例如,通过在显示器屏幕22内显示的图形菜单(块724)。然 后,AET观测器410接收用户输入,其在定义所期望的参考范围时指定多 个设计实体实例中的单个设计实体实例,如块726所示。例如,假设图3B 的仿真可执行模型329和图5D的I/O列表408,,在图5D的参考标号512 处所给出的参考范围命令"Scope limit: [FXU]"将使得AET观测器410将 FXU实例321a和321b定位于仿真可执行模型329内,并且向用户呈现实 例321a和321b的实例标识符用于选择。有利地,不管FXU实例321a和 321b中的哪一个是感兴趣的并且因此被用户选择,信号组都可以被指定为 <FXU—Group>,如图5D的I/O列表408,的条目512中所示。此后,该过 程转到已经描述过的块720。
现在参照图7B,该过程开始于页面连接符A,并且然后前进到块730, 其表示这样的处理循环,即AET观测器410借此来处理一个或多个I/O列 表408内的每个条目以构造对AET文件406的呈现。如果在块730处AET 观测器410确定I/O列表内的所有条目都已经^f皮处理,则该过程转到下面 所描述的块732。然而,如果1/0列表408内的至少一个条目尚未被处理, 则该过程前进到块740,其描绘了 AET观测器410移至I/O列表408内的 第一或下一信号标识条目,并且将该条目的工作范围初始化成参考范围。 相对于参考范围(即,按照参考范围所隐含限制的)来处理I/O列表408
内的信号标识条目,并且信号标识条目采用 一般形式<formula>formula see original document page 22</formula>
其中
/"加wce一stW"g2和//Mtfffice_s^n'"g3是任选的设计实体实例字符串; 方括号(即,"["和"]")中所封闭的rf^^i—是任选的设计实 体名称;
*是任选的通用操作符,其指示指定范围内所有的实例;
以及s/g""/s是所要求的参数,其指定信号名称、尖括号(即,"<"和">") 中所封闭的信号组名称,或者空的尖括号(其表示指定范围内的所有信号 组)。
图7B中所示的过程从块740前进到块742,其描绘了 AET观测器410 确定当前信号标识条目是否具有前导设计实体实例限定符(例如,
WW"g2 )。如果没有,则该过程转到下文所描述的块752。如果有, 则该过程从块742前进到块744,其说明了 AET观测器410确定所指定的 设计实体实例是否存在于仿真可执行模型348的参考范围内。如果不是, 则处理在块746处出错终止。如果是,则该过程前进到块750。块750说 明了 AET观测器410将当前范围设置成通过将设计实体实例限定符所定义 的范围附加到参考范围而形成的范围。接着,在块752处AET观测器410 确定I/O列表408的信号标识条目内的下一字段是否是方括号中所封闭的 ^s/g"—限定符。如果不是,则该过程通过页面连接符B到图7C。如 果是的话,则信号标识条目的处理在块754处继续。
块754示出了 AET观测器410递归搜索仿真可执行模型348以便在当 前范围内定位具有与指定设计实体名称相匹配的实体名称的所有设计实体 实例。然后在块756处,AET观测器410确定是否存在任何这样的设计实 体实例。如果没有,则处理在出错条件下于块746处结束。如果存在,则 在块760处,AET观测器410进一步确定括号中的语法是否含有表示包括 指定范围内所有设计实体实例的星号。如果有的话,则AET观测器410 将该条目的工作范围缩窄到在块754处所定位的一个或多个设计实体实例 (块761)。此后,该过程通过页面连接符B转到图7C。
返回到块760,响应于否定的确定,该过程前进到块762,其说明了 AET观测器410确定是否在块754处发现单个设计实体实例。如果发现, 则在块764处将工作范围设置成该单个设计实体实例。此后,该过程通过 页面连接符B转到图7C。另 一方面,如果在块762处AET观测器410确 定在块754处发现超过一个的设计实体实例,则AET观测器410向用户呈 现设计实体实例的列表以便选择,例如,通过在显示器屏幕22内所显示的图形菜单(块770)。然后,AET观测器410接收用户输入,其在定义所期 望的工作范围时指定多个设计实体实例中的一个或多个设计实体实例,如 块772中所示。此后,该过程转到块764,其描绘了 AET观测器410依照 用户的选择而建立一个或多个工作范围。此后,该过程通过页面连接符B 转到图7C。
现在参照图7C,该过程开始于页面连接符B,并且然后前进到块774, 其描绘了 AET观测器410进一步解析信号标识条目,以便确定该条目是否 含有更多的实例限定符(例如,/附towce一^7Vi^ )来限制工作范围。如果 没有,则该过程转到下面所描述的块780。如果有,则在块776处AET观 测器410确定是否存在指定的设计实体实例。如果不存在,则该过程在块 786处出错结束。如果指定的设计实体实例存在,则AET观测器410将当 前信号标识条目的工作范围缩窄到第二实例限定符所指示的设计实体实例 (块778)。此后,该过程转到块780。
块780描绘了 AET观测器410进一步解析I/O列表408的信号标识条 目以便确定该条目的终止(信号)字段是否含有单个信号名称或信 号组名称。如果s/gmi&字段含有信号名称,则在块781处AET观测器410 接着确定在工作范围内是否存在指定信号。如果不存在,则处理在出错条 件下于块786处终止。如果在块781处AET观测器410确定在工作范围内 是否存在指定信号。如果不存在,则处理在出错条件下于块786处终止。 如果存在,则AET观测器410将指定信号添加到对AET文件406的呈现 中(块782)。此后,该过程通过页面连接符C返回到图7B中的块730。
再次参照块780,响应于确定信号标识条目的s/^m/s字段不含信号名 称,则该过程转到块783,其描绘了 AET观测器410确定s/gm/fc字段是 否含有空的尖括号。如果含有,则AET观测器410在工作范围内的设计实 体实例中递归定位所有的信号组实例,如块784处所示。如果在块785处 AET观测器确定不存在,则处理在块786处出错终止。另一方面,如果在 块785处,AET观测器410确定有一个或多个信号组出现,则在块790处, AET观测器410确定包括来自SGI400的信号组的各个信号并且将所有这样的信号添加到呈现中。此后,该过程通过页面连接符C返回到图7B。
返回块783,如果AET观测器410确定I/O列表408的信号标识条目 的s/g""&字段不含空的尖括号,而是指定了尖括号内的信号组名称,则该 过程转到块787。块787说明了 AET观测器410在工作范围内的设计实体 实例中递归定位指定信号组实例的实例。如块788所表示的,如果没有信 号组实例;陂定位,则处理在出错条件下于块786处结束。可选地,如果所 命名的信号组中的至少一个实例被定位,则处理前进到块7卯以及已经作 过描述的后续块。
如前所述,本发明提供了一种处理用于呈现的仿真结果的方法、系统 和程序产品。依照本发明,通过使用预先确定的信号组以及视情况使用范 围命令,充分降低了过滤仿真结果呈现所要求的用户输入量。另外,通过 支持信号保护指令,增强了对仿真结果的轻松理解,其中信号保护指令使 得设计者能够指定这样的信号,即在出现信号重新命名时将保护该信号的 信号名称。
虽然如参照优选实施例所描述的,已经特别示出了本发明,但是本领 域的技术人员应当理解,在不背离本发明的精神和范围的情况下,可以对 其进4亍各种形式和细节的改变。例如,可以利用驻留在如图1和图2中所 述的通常配置的一个或多个计算机系统的随机访问存储器28或非易失性 存储器中的程序代码来实现本发明的实施例之一。直到计算机系统10要求 的时候,程序代码集可以被存储在另外的计算机可读存储设备中,例如盘 驱动33或CD-ROM,或者在另外的计算机的数据存储器中,并且当用户 希望的时候通过局域网或广域网(例如因特网)传输该程序代码集。计算 机可用介质中所含的程序代码可以被称为计算初4呈序产品。
权利要求
1.一种数据处理系统中的数据处理方法,所述方法包括接收作为输入的数据集,所述数据集包括通过预定的信号组名称来指定信号组的至少一个条目;响应于接收到所述数据集处理所述数据集中的条目,以便标识信号组名称;访问与含有仿真结果的事件跟踪文件相关联的信号组信息,以便确定作为所述信号组的成员的多个信号的信号名称;以及在呈现中包括来自所述事件跟踪文件的那些与所述多个信号的实例相关联的仿真结果。
2. 根据权利要求l的方法,其进一步包括通过参照描述了仿真可执 行^:莫型中所实例化的设计实体的hdl源代码文件,建立所述信号组中信号名称的成员关系。
3. 根据权利要求1或2的方法,其中所述信号组包括第一信号组,并 且所述第一信号组包括共同将所述多个信号作为成员的第二和第三信号 组。
4. 根据权利要求1、 2或3的方法,其进一步包括 接收标识特定信号的保护指令,对于所述特定信号来说,将保护关联的信号名称以免重新命名;以及响应于接收到所述保护指令,在所述呈现中通过所述关联的信号名称 来标识所述信号。
5. 根据权利要求1至4中任何一项的方法,其进一步包括接收作为输入的范围命令,所述范围命令指示就仿真可执行模型中的 设计实体实例而言的参考范围;以及响应于接收到所述范围命令,解释与所述参考范围相关的所述数据集 中的所述至少一个条目。
6. 根据权利要求1至5中任何一项的方法,其进一步包括处理所述数据集中的条目,以便标识所述条目内具有仿真可执行模型中的多个设计实体实例的设计实体名称;以及响应于标识所述设计实体名称,呈现所述多个设计实体实例的实例标 识符供用户选择;以及响应于用户选择所述实例标识符之一,缩窄属于所迷信号组的信号的 实例所处的范围。
7. —种程序产品,其包括 计算机可读介质;以及在所述计算机可读介质内的程序代码,其使得数据处理系统实现以下 方法,所述方法包括接收作为输入的数据集,所述数据集包括通过预定的信号组名称来指 定信号组的至少一个条目;响应于接收到所述数据集处理所述数据集中的条目,以便标识信号组名称;访问与含有仿真结果的事件跟踪文件相关联的信号組信息,以便确定作为所述信号組的成员的多个信号的信号名称;以及在呈现中包括来自所述事件跟踪文件的那些与所述多个信号的实例相 关联的仿真结果。
8. 根据权利要求7的程序产品,其中所述方法进一步包括通过参照 描述了仿真可执行模型中所实例化的设计实体的HDL源代码文件,建立 所述信号组中信号名称的成员关系。
9. 根据权利要求7或8的程序产品,其中所述信号组包括第一信号组, 并且所述第一信号组包括共同将所述多个信号作为成员的第二和第三信号 组。
10. 根据权利要求7、 8或9的程序产品,其中所述方法进一步包括 接收标识特定信号的保护指令,对于所述特定信号来说,将保护关联的信号名称以免重新命名;以及响应于接收到所述保护指令,在所述呈现中通过所述关联的信号名称来标识所述信号。
11. 根据权利要求7至10中任何一项的程序产品,其中所述方法进 一步包括接收作为输入的范围命令,所述范围命令指示就仿真可执行模型中的 设计实体实例而言的参考范围;以及响应于接收到所述范围命令,解释与所述参考范围相关的所述数据集 中的所述至少一个条目。
12. 根据权利要求7至11中任何一项的程序产品,其中所述方法进 一步包括处理所述数据集中的条目,以便标识所述条目内具有仿真可执行才莫型 中的多个设计实体实例的设计实体名称;以及响应于标识所述设计实体名称,呈现所述多个设计实体实例的实例标 识符供用户选择;以及响应于用户选择所述实例标识符之一,缩窄属于所述信号組的信号的 实例所处的范围。
13. —种数据处理系统,其包括 处理器;以及耦合于所述处理器的数据存储器,所述数据存储器包括使得所述数据 处理系统实现以下方法的程序代码,所述方法包括接收作为输入的数据集,所述数据集包括通过预定的信号組名称来指 定信号组的至少一个条目;响应于接收到所述数据集处理所述数据集中的条目,以便标识信号組名称;访问与含有仿真结果的事件跟踪文件相关联的信号組信息,以便确定 作为所述信号组的成员的多个信号的信号名称;以及在呈现中包括来自所述事件跟踪文件的那些与所述多个信号的实例相 关联的仿真结果。
14. 根据权利要求13的数据处理系统,其中所述方法进一步包括通过参照描述了仿真可执行模型中所实例化的设计实体的HDL源代码文 件,建立所述信号组中信号名称的成员关系。
15. 根据权利要求13或14的数据处理系统,其中所述信号组包括第 一信号组,并且所述第一信号组包括共同将所述多个信号作为成员的第二 和第三信号组。
16. 根据权利要求13、 14或15的数据处理系统,其中所述方法进一 步包括接收标识特定信号的保护指令,对于所述特定信号来说,将保护关联 的信号名称以免重新命名;以及响应于接收到所述保护指令,在所述呈现中通过所述关联的信号名称 来标识所述信号。
17. 根据权利要求13至16中任何一项的数据处理系统,其中所述方 法进一步包括接收作为输入的范围命令,所述范围命令指示就仿真可执行模型中的 设计实体实例而言的参考范围;以及响应于接收到所述范围命令,解释与所述参考范围相关的所述数据集 中的所述至少一个条目。
18. 根据权利要求13至17中任何一项的数据处理系统,其中所述方 法进一步包括处理所述数据集中的条目,以便标识所述条目内具有仿真可执行模型 中的多个设计实体实例的设计实体名称;以及响应于标识所述设计实体名称,呈现所述多个设计实体实例的实例标 识符供用户选择;以及响应于用户选择所述实例标识符之一,缩窄属于所述信号组的信号的 实例所处的范围。
全文摘要
根据一种数据处理的方法,由数据处理系统接收包括至少一个条目的数据集,所述至少一个条目通过预定的信号组名称来指定信号组。响应于接收到所述数据集,处理所述数据集中的条目,以便标识信号组名称。访问与含有仿真结果的事件跟踪文件相关联的信号组信息,以便确定作为所述信号组的成员的多个信号的信号名称。然后将来自所述事件跟踪文件的与所述多个信号的实例相关联的仿真结果包括在对仿真结果的呈现中。
文档编号G06F17/50GK101410841SQ200780011529
公开日2009年4月15日 申请日期2007年5月2日 优先权日2006年5月3日
发明者D·E·威廉斯, G·波波克, W·勒斯纳 申请人:国际商业机器公司