掌桥专利:专业的专利平台
掌桥专利
首页

事务的调试追踪和控制的方法

文献发布时间:2023-06-19 13:49:36


事务的调试追踪和控制的方法

技术领域

本发明涉及路由类模块设计技术领域,特别涉及一种事务的调试追踪和控制的方法。

背景技术

在芯片验证的工作中,常常会遇到包含路由功能的模块,用来对流量(traffic)进行路由。一个典型的应用场景即片上总线系统(SOC)中的AMBA总线路由选择。除此之外,很多专用集成电路(ASIC)中也有相似的总线路由模块。

在现有的设计中,实现方法如图1所示,可以看到,这里的DUT(Device UnderTest,被测器件)的左边通过interface连接到master上,右边通过interface连接到slave上。DUT通过路由选择功能将相关的流量从master路由到对应的slave上。

备注:master即主动发起动作的模块,一般会主动发起读写等操作请求,然后经由interface接口连接到DUT,然后DUT通过路由功能路由到相应的interface接口上,直到相应的slave上,这里的slave即从属模块,被动接收master发起的操作,然后进行动作响应。通常master和slave会根据访问地址范围进行划分。

如图1所示,可以看到,由于存在多种不同的interface,相应的,会存在多种不同类型的transaction,通常 transaction在验证平台里起到如下两种作用:(1)用于在UVM验证组件或对象之间进行通信,包括将其驱动到interface上,比如将激励封装成transaction并驱动给DUT。(2)从interface上监测信号并封装成transaction,再广播给验证环境里的其他组件或对象,通常不同的接口都会有相应不同的transaction类型。这里不同类型的transaction虽然基本都派生于UVM的组件uvm_sequence_item,但是其内部的成员变量,接口方法和随机约束各不相同。我们在验证调试的过程中,常常需要将这些不同的transaction所包含的信息打印到日志文件中,以帮助调试。现有的方案是在编写transaction的时候,使用UVM的field automation宏对相应的成员变量进行注册,然后就可以使用UVM提供的一些数据操作的接口方法,包括:

copy:复制;

compare:比较;

pack:将数据打包;

unpack:将数据解包;

print:打印;

sprint:返回待打印的字符串。

这样一来就不用自己去编写代码去实现了,比较方便。

上述方案可行但是存在以下一些缺陷:

(1)这些transaction相互独立,相互之间缺少通路之间的联系,很难通过这些独立的transaction清楚的获知源端到终端之间的数据流通路信息,尤其是在涉及到比较复杂的路由通路的时候。这些都是在芯片验证工作中的必要信息,对于RTL设计中模块之间的数据通信非常重要。

(2)transaction的打印格式各一,不便于验证调试工作。

(3)缺少系统级功能验证所需要的一些数据信息,比如统计流量信息,记录master和slave的编号,记录流量的生命周期等,这些信息对于系统级功能验证非常重要。

(4)缺少对于验证平台中所有transaction的标准化的总体控制方法,而这对于系统级功能验证同样非常重要,比如对于输入激励的产生,覆盖率收集、有效数据通路的产生控制等。因此对于包含路由类模块设计的验证,迫切需要有一种对transaction的调试追踪和控制的方法,以提升验证工作的效率。

发明内容

根据本发明实施例,提供了一种事务的调试追踪和控制的方法,包含如下步骤:

编写参数化类作为系统级事务,在参数化类里增加需要共享的数据成员变量、共享的接口方法以及需要被子类重载的虚方法;

采集事务类的数据,传递事务类的数据至参数化类中,获得新的参数化类;

为新的参数化类定义新的数据类型,创建新的参数化类的新的父类;

对父类进行派生,即可使用参数化类的共享的数据成员变量和共享的接口方法,并自定义需要被子类重载的虚方法,实现事务的调试追踪和控制。

进一步,虚方法包含:获取地址的方法。

进一步,为新的参数化类定义新的数据类型是通过typedef定义的。

进一步,接口方法包含:字符串转换方法。

进一步,事务类的数据包含:流量信息、节点编号信息以及流量的生命周期信息。

根据本发明实施例的事务的调试追踪和控制的方法,实现简化验证人员的工作,提升验证工作的质量和效率,加快项目推进的进度,进一步加强对于输入激励的产生,覆盖率收集、有效数据通路的产生控制等。

要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并 且意图在于提供要求保护的技术的进一步说明。

附图说明

图1为现有技术中事务调试追踪和控制的方法的原理图。

图2为根据本发明实施例事务的调试追踪和控制的方法的流程图。

图3为transaction的派生结构图。

具体实施方式

以下将结合附图,详细描述本发明的优选实施例,对本发明做进一步阐述。

首先,将结合图2~3描述根据本发明实施例的事务的调试追踪和控制的方法,用于芯片验证中,其应用场景很广。

如图2所示,本发明实施例的事务的调试追踪和控制的方法,具有如下步骤:

在S1中,如图3所示,编写参数化类(mixin_class)作为系统级事务(transaction),在参数化类(mixin_class)里增加需要共享的数据成员变量、共享的接口方法以及需要被子类重载的虚方法。在本实施例中,虚方法包含:获取地址的方法,接口方法包含:字符串转换方法。进一步,事务类的数据包含:流量信息、节点编号信息以及流量的生命周期信息,增加对于系统功能验证的支持。

在S2中,如图3所示,采集事务类的数据,传递事务类的数据至参数化类(mixin_class)中,获得新的参数化类。

在S3中,如图3所示,为新的参数化类定义新的数据类型,创建新的参数化类的新的父类。在本实施例中,为新的参数化类定义新的数据类型是通过typedef定义的。

在S4中,如图3所示,对父类进行派生,即可使用参数化类(mixin_class)的共享的数据成员变量和共享的接口方法,并自定义需要被子类重载的虚方法,实现事务(transaction)的调试追踪和控制。

以上,参照图2~3描述了根据本发明实施例的事务的调试追踪和控制的方法,实现简化验证人员的工作,提升验证工作的质量和效率,加快项目推进的进度,进一步加强对于输入激励的产生,覆盖率收集、有效数据通路的产生控制等。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

相关技术
  • 事务的调试追踪和控制的方法
  • 一种用于调试微控制器的指令追踪控制器
技术分类

06120113821841