CN112257360A - 用于数据波形的调试方法、装置、调试系统以及存储介质 - Google Patents

用于数据波形的调试方法、装置、调试系统以及存储介质 Download PDF

Info

Publication number
CN112257360A
CN112257360A CN202011134751.4A CN202011134751A CN112257360A CN 112257360 A CN112257360 A CN 112257360A CN 202011134751 A CN202011134751 A CN 202011134751A CN 112257360 A CN112257360 A CN 112257360A
Authority
CN
China
Prior art keywords
data
waveform
data packet
signal
debugging
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011134751.4A
Other languages
English (en)
Other versions
CN112257360B (zh
Inventor
陶昱良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011134751.4A priority Critical patent/CN112257360B/zh
Publication of CN112257360A publication Critical patent/CN112257360A/zh
Application granted granted Critical
Publication of CN112257360B publication Critical patent/CN112257360B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种用于数据波形的调试方法、装置、调试系统以及存储介质。该调试方法包括:接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据;调用对应于所述至少一个数据包信号所在数据协议的数据包映射信息文件;使用所述多个波形数据查询所述数据包映射信息文件,得到与所述多个波形数据对应的数据解析函数;运行与所述多个波形数据对应的数据解析函数,将所述多个波形数据从第一格式解析为第二格式。上述调试方法可以将多个时间点的多个波形数据解析为可读的第二格式,以提高芯片设计中数据包的波形调试的效率,缩短芯片设计周期。

Description

用于数据波形的调试方法、装置、调试系统以及存储介质
技术领域
本公开的实施例涉及一种用于数据波形的调试方法、装置、调试系统以及存储介质。
背景技术
目前,在芯片设计,例如高性能图形处理器(Graphics Processing Unit,CPU)和中央处理器(Central Processing Unit,CPU)设计中,设计工程师检验设计是否满足预期的功能,一般通过仿真完成。对仿真波形的调试贯穿整个芯片设计的周期,例如,仿真波形包括寄存器传输级(RTL,Register Transfer Level)仿真波形调试、原型设计仿真波形调试以及门级网表(Gate Netlist)仿真波形调试等。在仿真过程中,一般先对各个功能模块进行仿真,全部通过后再对整个系统进行仿真。当设计工程师在仿真过程中发现错误时,就需要进行仔细调试,找出错误发生的原因,并且予以修改。如果出现了一些由于在芯片系统级设计中考虑不周而引起的无法修正的错误时,就需要系统设计工程师重新设计系统级方案。所以,仿真过程对于芯片设计的整个流程来说是至关重要的一环。
发明内容
本公开的实施例提供一种用于数据波形的调试方法、装置、调试系统以及存储介质。用于数据波形的调试方法可以将多个时间点的多个波形数据解析为可读的第二格式,以提高芯片设计中数据包的波形调试的效率,缩短芯片设计周期。
本公开至少一个实施例提供了一种数据波形的调试方法,该调试方法,包括:接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据;调用对应于所述至少一个数据包信号所在数据协议的数据包映射信息文件,其中,所述数据包映射信息文件包括多项数据包信号与对应的多项数据解析函数的对应关系,所述数据包映射信息文件根据所述至少一个数据包信号所在数据协议的规范文件和芯片设计文件确定;使用所述多个波形数据查询所述数据包映射信息文件,得到与所述多个波形数据对应的数据解析函数;运行与所述多个波形数据对应的数据解析函数,将所述多个波形数据从第一格式解析为第二格式,其中,所述第一格式与所述第二格式不同。
例如,在本公开至少一实施例提供的调试方法中,运行与所述多个波形数据对应的数据解析函数包括:将所述多个波形数据根据所述至少一个数据包信号所在的所述数据协议的规范文件重组,以得到待解析波形数据;解析所述待解析波形数据。
例如,在本公开至少一实施例提供的调试方法中,得到所述待解析波形数据包括:根据所述多个波形数据对应的所述至少一个数据包信号所在所述数据协议的规范文件,将所述多个波形数据的数值拆分到多个域段;基于所述规范文件,将所述多个域段的数值重新拼接,得到组合域段的数值。
例如,在本公开至少一实施例提供的调试方法中,所述采集序列包括信号采集序列和时间采集序列,其中,所述信号采集序列包括至少一个需要采集的数据包信号的名字,所述采集序列包括对应于每个所述需要采集的数据包信号的多个时间点。
例如,在本公开至少一实施例提供的调试方法中,接收所述至少一个数据包信号在所述采集序列中多个时间点的所述第一格式的多个波形数据之前,包括:接收波形显示装置对应于所述至少一个数据包信号发送的触发事件;根据所述触发事件产生请求信息;发送所述请求信息至所述波形显示装置以请求所述波形显示装置发送对应于所述触发事件的多个波形数据,其中,所述波形显示装置响应于所显示的第一数据包信号被触发,所述波形显示装置生成所述触发事件。
例如,在本公开至少一实施例提供的调试方法中,所调用的所述数据包映射信息文件包括触发数据包信号的名字和所述采集序列,所述请求信息包括基于所调用的所述数据包映射信息文件的采集序列。
例如,在本公开至少一实施例提供的调试方法中,请求所述波形显示装置发送对应于所述触发事件的所述多个波形数据包括:根据所述触发事件对应的所述被触发的第一数据包信号的名字,在所调用的所述数据包映射信息文件的所述触发数据包信号的名字中查找对应于所述被触发的第一数据包信号的名字,确定与所述被触发的第一数据包信号对应的采集序列。
例如,在本公开至少一实施例提供的调试方法中,所调用的所述数据包映射信息文件还包括分别与多项数据包信号对应的多个解析函数地址,所述多个解析函数地址每个用于获取对应的数据解析函数,其中,使用对应于所述被触发的第一数据包信号的名字,在调用的所述数据包映射信息文件中获取对应于所述被触发的第一数据包信号的名字的第一解析函数地址。
例如,在本公开至少一实施例提供的调试方法中,根据所述触发事件产生所述请求信息包括:响应于所述请求信息包括基于所调用的所述数据包映射信息文件的采集序列,按照所述采集序列中时间采集序列的多个时间点的顺序或所述采集序列中信号采集序列的至少一个需要采集的数据包信号的顺序,产生多个数据信号信息,所述多个数据信号信息每个包括需要采集的数据包信号的名字和一个时间点,分别根据所述多个数据信号信息,请求所述波形显示装置发送对应于所述多个数据信号信息每个的波形数据,直到所述多个数据信号信息每个对应的所述至少一个数据包信号在所述采集序列中多个时间点的多个波形数据全部被接收。
例如,在本公开至少一实施例提供的调试方法中,当所述波形显示装置所显示的所述被触发的第一数据包信号对应于一个数据包信号的多个时间点时,所述采集序列中采集时间序列包括所述一个数据包信号的多个时间点,所述多个数据信号信息包括对应于所述被触发的第一数据包信号的一个数据包信号的名字和多个时间点。
例如,在本公开至少一实施例提供的调试方法中,当所述波形显示装置所显示的所述被触发的第一数据包信号对应于多个数据包信号的多个时间点时,所述采集序列中信号采集序列包括所述多个数据包信号的名字,所述多个数据信号信息包括对应于所述被触发第一数据包信号的所述多个数据包信号的名字和多个时间点。
例如,在本公开至少一实施例提供的调试方法中,根据所述触发事件产生所述请求信息还包括:调用触发事件-回调函数映射表;根据所述触发事件查找触发事件-回调函数映射表,得到与所述触发事件对应的回调函数;根据与所述触发事件对应的回调函数得到与所述触发事件对应的指令,其中,所述请求信息还包括所述指令,所述指令用于请求所述波形显示装置发送对应于所述触发事件的多个波形数据,所述触发事件-回调函数映射表包括多项触发事件与对应的多项回调函数的对应关系。
例如,在本公开至少一实施例提供的调试方法中,请求所述波形显示装置发送对应于所述触发事件的多个波形数据包括:所述波形显示装置基于所述指令映射表响应于与所述触发事件对应的所述指令获得指令响应函数,并基于所述指令响应函数以及所述多个数据信号信息发送对应于所述触发事件的多个波形数据,其中,所述指令映射表包括多项指令与对应的多项指令响应函数的对应关系。
本公开至少一实施例还提供一种用于数据波形的调试装置,该调试装置包括:数据接收模块、映射信息文件调用模块、解析函数确定模块以及数据解析模块。数据接收模块配置为接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据;映射信息文件调用模块配置为调用对应于所述至少一个数据包信号所在数据协议的数据包映射信息文件,其中,所述数据包映射信息文件包括多项数据包信号与对应的多项数据解析函数的对应关系,所述数据包映射信息文件根据所述至少一个数据包信号所在数据协议的规范文件和芯片设计文件确定;解析函数确定模块配置为使用所述多个波形数据查询所述数据包映射信息文件,得到与所述多个波形数据对应的数据解析函数;数据解析模块配置为运行与所述多个波形数据对应的数据解析函数,将所述多个波形数据从第一格式解析为第二格式,其中,所述第一格式与所述第二格式不同。
本公开至少一实施例还提供另一种用于数据波形的调试装置,该调试装置包括:处理器和存储器,其中,所述存储器中存储有计算机可执行代码,所述计算机可执行代码当由所述处理器运行时,执行如上述任一项所述的用于数据波形的调试方法。
本公开至少一实施例还提供一种用于数据波形的调试系统,该调试系统包括:如权利要求上述任一项所述的调试装置和波形显示装置,波形显示装置与所述调试装置通信连接,其中,所述波形显示装置配置为根据输入操作产生和发送对应于所显示的被触发的第一数据包信号的触发事件,并基于接收的所述调试装置的数据请求发送对应的所述第一格式的多个波形数据。
例如,本公开至少一实施例提供的调试系统还包括:信息显示装置,所述信息显示装置与所述调试装置通信连接,所述信息显示装置配置为接收并显示所述调试装置发送的所述多个波形数据的所述第二格式的数据包信息。
本公开至少一实施例还提供一种计算机可读存储介质,其上存储有可执行代码,所述可执行代码在被处理器执行时,使得所述处理器执行如上述任一项所述的用于数据波形的调试方法。
本公开至少一实施例提供的一种用于数据波形的调试方法、装置、调试系统以及存储介质,通过将至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据解析为第二格式,从而可以将可读性差的第一格式的多个波形数据解析为可读的第二格式,进而确定多个时间点的数据包信号是否符合预期,以提高芯片设计中数据包的波形调试的效率,缩短芯片设计周期。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A为一种协议数据包的数据包信号的示意图;
图1B为另一种协议数据包的数据包信号的示意图;
图1C为再一种协议数据包的数据包信号的示意图;
图2为本公开至少一实施例提供的一种用于数据波形的调试方法的流程图;
图3为本公开至少一实施例提供的执行用于数据波形的调试方法的流程示意图;
图4为本公开至少一实施例提供的一种执行用于数据波形的调试方法的系统示意图;
图5为本公开至少一实施例提供的请求波形多个数据的流程示意图;
图6为本公开至少一实施例提供的在多个时间点的数据包信号的示意图;
图7为本公开至少一实施例提供的一种用数据波形的调试装置的结构示意图;
图8为本公开至少另一实施例提供的一种用数据波形的调试装置的结构示意图;
图9为本公开至少一实施例提供的一种用数据波形的调试系统的结构示意图;以及
图10为本公开至少一实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
通常芯片设计基于电子设计自动化工具(EDA)的设计流程,也就是说集成电路设计的各个步骤都是由工程师们在计算机上使用各种EDA工具来完成的。前端设计依次包含了系统级设计、RTL(Register Transfer Level,寄存器传输级)设计、RTL仿真、原型设计、物理实现等步骤,而后端设计则包括版图设计、物理验证以及后仿真等步骤。在RTL设计完成之后,需要对RTL进行仿真调试,即RTL级仿真波形调试,以判断RTL仿真波形调试过程中是否发生功能错误。当RTL的波形仿真中出现问题时,对RTL设计进行修改,直到RTL设计没有问题。在物理实现过程中,对RTL设计进行物理设计,包括逻辑综合,布局布线等。该物理设计后会得到最终的门级网表。基于该门级网表进行仿真波形调试,以判定门级网表仿真波形调试过程中是否发生功能错误或时序错误。物理实现并行地进行原型设计,例如RTL设计放到FPGA(Field Programmable Gate Array,现场可编程门阵列)或者Emulator(模拟器)上做原型设计验证。对原型设计做仿真调试,以判断原型设计仿真调试过程中是否发生功能错误。在芯片设计的过程中波形调试被应用到多个环节中。
而在波形调试的多个环节中,数据包一般由一个或多个比特(bit)信号构成,数据包一般由两个维度表示:信号和时间点。最简单的数据包由一个信号在一个时间点表示,而复杂的数据包则由多个信号在多个时间点的值才能表示,对这些数据包进行调试需要查阅大量资料,非常耗时,也容易出错,并且可能多次重复迭代。因此高效的数据包仿真波形调试方法,对减少调试迭代次数,缩短芯片设计周期有很大的帮助。
图1A为一种协议数据包的数据包信号的示意图。图1A示出了包括多个时间点的第一数据包信号CLK01。由于通信协议得总线宽度限制,一个时钟周期只能传递有限比特数据,当数据包位数大于总线宽度时,一个数据包的传输需要多个时钟周期才能完成。因此在波形上,一个数据包信息需要两个或者多个时钟周期的数值才能确认。如图1A所示,第一数据包信号CLK01的需要调试的第一波形数据Bus1对应多个时间点:0T-1,0T0和0T+1。上述三个时间点每个对应第一波形数据Bus1在比特[15:0]的数值,即16位数值,分别为:0x8042,0x3440,0x2fc4。三个时间点的第一波形数据BUS1的值组合成一个48比特的数据。例如,根据规范文件,三个时间点的第一波形数据Bus1的组合方式为:多个波形数据={0T+1Bus1[15:0],0T0Bus1[15:0],0T-1Bus1[15:0]}。组合后的48比特多个波形数据根据如下表01所示的方式,分为:命令地址,从机标识符,主机标识符,命令类型四个域段。
表01
比特(bit) [47:22] [21:14] [13:6] [5:0]
比特数 42比特 8比特 8比特 6比特
域段 命令地址 从机标识符 主机标识符 命令类型
多个波形数据的数值0x2fc434408042,先被转换为二进制数值,然后将二进制数值的第0比特至第5比特的数值作为命令类型的域段值,其它域段根据比特获得域段值。将该二进制的命令类型的域段值再转换为十进制数,再根据十进制的命令类型的域段值查找该数值对应的命令类型。例如,手动译码可以得到当前数据包为命令类型为写命令(6’d2),主机标识符为CPU0(8’d1),从机标识符为SLAVE1(8’d2),命令数据地址为0x17E21A。而根据预期该数据包信号是一个读命令,也就是说比特[5:0]应该等于6’d1。因此,可以确定当前数据包错误,需要检查设计是否有问题。
图1A所示的波形上只显示分散时间点的独立数值,无法明确知道当前时间点的数值表示的具体命令类型,因此需要对信号的所有分散时间点先进行合并,然后再根据数据包格式拆分,分析该数据包是否符合预期。
图1B为另一种协议数据包的数据包信号的示意图。图1B示出了包括多个时间点和多个波形数据的第一数据包信号CLK02。图1B所示的数据包属于多时间点多信号数据包。数据协议的通信数据包不仅分散在不同的信号上,还分散在不同的时钟周期上。图1B所示的波形上只显示分散信号在三个时钟周期的独立数值,无法明确知道当前时间点的数值表示的具体命令类型,因此需要对信号的所有分散时间点按照数据协议的规范文件进行重组合并,然后再根据数据包格式拆分,分析该数据包是否符合预期。
如图1B所示,该数据包由需要调试的第一波形数据Bus1和需要调试的第二波形数据Bus2分别在0T-1,0T0和0T+1三个时间点的值来确定。首先需要将这些的波形数据的值进行组合,也就是将6个波形数据的值进行组合,组合方式为:多个波形数据={T+1Bus1[15:0],T0 Bus1[15:0],T-1Bus1[15:0],T+1Bus2[3:0],T0 Bus2[3:0],T-1Bus2[3:0]}。组合后的60比特的多个波形数据根据如下表02所示的方式,分为:命令数据,命令地址,主机标识符和命令类型四个域段。
表02
比特(bit) [59:32] [31:12] [11:6] [5:0]
比特数 42比特 8比特 8比特 6比特
域段 命令数据 命令地址 主机标识符 命令类型
根据表02得到四个域段的数值之后,查找规范文件,得到数据包的命令类型。
图1B所示的复杂的数据包需要从多个时间维度和多个信号维度上才能确定具体的数据包,分析起来非常费时费力。
图1C为再一种协议数据包的数据包信号的示意图。图1C示出一种表示HBM2(HighBandwidth Memory,高带宽内存接口)协议数据包的命令。如图1C所示,对该数据包的波形调试,需要同时获取第三数据包信号0CK_t/0CK_c所对应的需要调试的第三波形数据0CKE在0T-1时间点的上升沿和0T0的上升沿的数值以及需要调试的第四波形数据0R/0C在0T0时间点的上升沿和0T0时间点的下降沿的数值。例如,需要获得如下数值:(a)0T0时间点的上升沿的第四波形数据0R/0C;(b)0T0时间点的下降沿的第四波形数据0R/0C;(c)0T-1时间点的上升沿的第三波形数据0CKE;(d)0T0的上升沿的第三波形数据0CKE。根据上述数据确定一个HBM2数据包的命令。
在对上述图1A-图1C所示的波形进行调试过程中,设计人员通常采用手动调试方法,即肉眼观察波形显示装置上的多个波形数据并进行人工译码工作。设计人员用肉眼观察波形得到多个波形数据,通过查阅规范文件,将多个波形数据进行重组,然后进一步将重组后的多个波形数据进行手动译码。根据译码结构判断当前数据包是否符合预期。再迭代至下一个数据包信号的波形数据,继续调试其它波形数据。例如,上述查找规范文件和分析波形数据的过程需要迭代多次,直到数据包的所有波形数据都调试正确。
上述手动调试方法十分费时,而且容易出错,尤其是数据量比较大时。目前,芯片设计的复杂度日益提高,芯片的更新迭代越来越快,亟需一种可以提高波形调试效率和正确率的方法,以缩短芯片开发周期。
本公开至少一实施例提供一种用于数据波形的调试方法。该用于数据波形的调试方法包括:接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据;调用对应于至少一个数据包信号所在数据协议的数据包映射信息文件,其中,数据包映射信息文件包括多项数据包信号与对应的多项数据解析函数的对应关系,数据包映射信息文件根据至少一个数据包信号所在数据协议的规范文件和芯片设计文件确定;使用多个波形数据查询数据包映射信息文件,得到与多个波形数据对应的数据解析函数;运行与多个波形数据对应的数据解析函数,将多个波形数据从第一格式解析为第二格式,其中,第一格式与所述第二格式不同。
在本公开上述实施例提供的用于数据波形的调试方法中,通过将至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据解析为第二格式,从而可以将可读性差的第一格式的多个波形数据解析为可读的第二格式,进而确定多个时间点的数据包信号是否符合预期,以提高芯片设计中数据包的波形调试的效率,缩短芯片设计周期。
图2为本公开至少一实施例提供的一种用于数据波形的调试方法的流程图;图3为本公开至少一实施例提供的执行用于数据波形的调试方法的流程示意图;图4为本公开至少一实施例提供的一种执行用于数据波形的调试方法的系统示意图。
图2所示本公开实施例提供的用于数据波形的调试方法包括步骤S110-S140。如图3所示本公开实施例所示的用于数据波形的调试方法包括步骤S201-S218。如图4所示本公开实施例所示的用于数据波形的调试方法包括步骤S301。
步骤S110:接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据。
例如,波形显示装置响应于所显示的第一数据包信号被触发,波形显示装置产生触发事件。例如,如图4所示,波形显示装置V1显示的第一数据包信号(例如,数据包信号Bus1)例如被鼠标40点击或在触控屏上被点击等,第一数据包信号被触发。例如,波形显示装置V1可以为Verdi波形显示工具。
例如,如图4所示,调试分析平台P1包括主机P10。本公开实施例提供的调试方法运行的主机。主机P10与波形显示装置V1和信息显示装置DISP连接。调试分析平台P1接收响应于第一数据包信号的至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据。第一格式为数值格式,例如为十六进制的数值(例如数值为图4中所示的数据包信号Bus1在T-1、T0以及T+1时间点的数值分别为0x897b、0x34df、以及0x2fc4),设计人员并不能直接从第一格式的多个波形数据获知其所对应的内容(例如T-1、T0以及T+1时间点的数值表示的命令类型或指令类型)。
例如,如图4所示,在对波形显示装置V1所显示的数据包的波形进行调试之前,设计人员S先进行步骤S301:输入配置。例如,在步骤S301中,设计人员S选择对那些数据协议的数据包进行解析。例如,设计人员选择调试分析平台P1的主机P10所要与之连接以及通信的波形显示装置V1。
例如,如图4所示,调试分析平台P1的主机P10与波形显示装置V1建立通信槽TK1。例如,通信槽TK1包括标准的TK(ToolKit)发送/接收通信机制。例如,该通信机制是TCL语言(为一种解释性编程语言)的工具包。该机制通过TK标准的发送命令以及接受命令进行通信。例如,通信槽TK1包括触发事件-回调函数映射表E10和指令映射表E20。本公开对于主机与波形显示装置的通信的方式不做限定。
例如,如图3所示,步骤S202:主机建立与波形显示装置的通信。步骤S202为主机与波形显示装置之间的数据以及信号的交互做好准备。
步骤S203:调试分析平台处于闲置状态。例如,调试分析平台P1的闲置状态为没有接收到触发事件或波形数据的状态。
步骤S204:无触发事件。当没有触发事件发生时,调试分析平台P1一直处于步骤203的闲置状态。
步骤S205:调试分析平台接收触发事件。例如,在一些实施例中,如图4所示,当设计人员(用户)使用鼠标40点击波形显示装置V1所显示的第一数据包信号(例如,数据包信号CLK或数据包信号Bus1等)时,波形显示装置V1响应于所显示的第一数据包信号(例如数据包信号CLK)被触发,生成第一触发事件21。调试分析平台P1接收波形显示装置V1对应于第一数据包信号发送的第一触发事件21。
步骤S206:主机根据触发事件查找触发事件-回调函数映射表。例如,在一些实施例中,如图4所示,主机P10调用触发事件-回调函数映射表E10。触发事件-回调函数映射表E10包括多项触发事件与对应的多项回调函数的对应关系,从而当接收波形显示装置发送的第一触发事件时,可以查找到与第一触发事件21对应的第一回调函数E11。例如,如表1示出触发事件-回调函数映射表的一个示例。
表1
格式 触发事件的名字:回调函数的名字
示例 CursorMove:cb_CursorMove(*args,**kwargs)
根据表1的内容,当接收到触发事件的名字为“CursorMove”时,查找触发事件-回调函数映射表,可以得到回调函数的名字为“cb_CursorMove(*args,**kwargs)”的回调函数。
步骤S207:主机检查触发事件的有效性。例如,在一些实施例中,如图4所示,主机P10需要检查第一触发事件21的有效性,包括:响应于触发事件-回调函数映射表包括与第一触发事件对应的对应关系,确定第一触发事件有效。当基于第一触发事件的名字查找触发事件-回调函数映射表时,若查找到对应的第一回调函数时,确定第一触发事件21有效,反之则第一触发事件21无效。当第一触发事件21无效时进入步骤S203。当第一触发事件21有效时,进入步骤S208。
例如,在一些实施例中,主机在检测触发事件的有效性的同时,还检查被触发的第一数据包信号的有效性。例如,通过检查被触发的第一数据包信号的名字是否对应记载于所调用的数据包映射信息文件(图4中的第一数据包映射文件J11)中,以确定第一数据包信号的有效性。
步骤S208:主机执行回调函数。例如,如图4所示,主机P10在执行第一回调函数E11的过程中,与波形显示装置V1通信,根据第一触发事件21产生请求信息,发送请求信息至波形显示装置V1以请求波形显示装置V1发送对应于第一触发事件21的多个波形数据。
如图2所示,步骤S120:调用对应于至少一个数据包信号所在数据协议的数据包映射信息文件。
例如,如图4所示,调试分析平台P1调用数据包信号所在数据协议的数据包映射信息文件10。例如,当调试分析平台P1对多个数据协议的数据包进行波形调试时,调试分析平台P1调用对应于多个数据协议的数据包映射文件,以对多种数据包进行波形调试。
例如,根据不同数据协议的规范文件和芯片设计过程中的芯片设计文件(例如,RTL文件)生成或编写对应的数据包映射文件。例如,如图4所示,每个数据协议对应一个规范文件D,在芯片设计的过程中生成芯片设计文件R。根据规范文件D中定义的内容可以确定数据包映射文件的具体内容,根据芯片设计文件R(例如,RTL文件)可以确定数据包映射文件中所用的数据包信号的名字等。至少一个数据包映射信息文件每个包括多项数据包信号与对应的多项数据解析函数的对应关系。
例如,如图3所示,步骤S201:调试分析平台调用至少一个数据包映射信息文件。至少一个数据包映射信息文件包括被触发的第一数据包信号对应的数据包映射文件。例如,如图4所示,调试分析平台P1可以调用多个数据包映射信息文件01,多个数据包映射信息文件01包括第一数据包映射文件11(例如与被触发的第一数据包信号对应)。
例如,在一些实施例中,数据包映射信息文件存储成为JSON(JavaScript ObjectNotation)文件。
例如,在一些实施例中,所调用的数据包映射信息文件包括触发数据包信号的名字和采集序列。触发数据包信号的名字与被触发的第一数据包信号的名字对应,以检查被触发的第一数据包信号的有效性。
例如,在一些实施例中,采集序列包括信号采集序列和时间采集序列。信号采集序列包括至少一个需要采集的数据包信号的名字。采集序列包括对应于每个需要采集的数据包信号的多个时间点。采集序列用于生成响应于触发事件的请求信息,以请求波形显示装置发送在采集序列中多个时间点的第一格式的多个波形数据。
例如,在一些实施例中,根据触发事件对应的被触发的第一数据包信号的名字,在所调用的数据包映射信息文件的触发数据包信号的名字中查找对应于被触发的第一数据包信号的名字,确定与被触发的第一数据包信号对应的采集序列。
例如,在一些实施例中,所调用的数据包映射信息文件还包括分别与多项数据包信号对应的多个解析函数地址。多个解析函数地址每个用于获取对应的数据解析函数。
例如,如图2所示,步骤S130:使用多个波形数据查询数据包映射信息文件,得到与多个波形数据对应的数据解析函数。例如,如图4所示,数据解析函数的内容根据规范文件D确定。
例如,一种数据包映射信息文件的示例如下所示。
Figure BDA0002736300710000131
在上述数据包映射信息文件中,解析函数地址为:protocol0.packet0.parser0;触发数据包信号的名字为:Bus1(对应于图4中波形显示装置V1所显示的数据包信号Bus1)。信号采集序列为:[“Bus1[15:0]”,“Bus2[1:0]”](对应于图4中波形显示装置V1所显示的数据包信号Bus1的比特[15:0]和Bus2的比特[1:0])。时间采集序列为:-1:0:+1(对应于图4中波形显示装置V1的时间点T-1、T0、T+1)。也就是说,当数据包信号Bus1被触发时,调试分析平台请求波形显示装置发送数据包信息Bus1和Bus2在时间点T-1、T0、T+1的多个波形数据。
例如,根据数据包信号可以查找数据包映射文件获得与数据包信号对应的数据解析函数。调试分析平台使用波形数据的对应的被触发的数据包信号的名字Bus1查询上述数据包映射信息文件,得到与多个波形数据对应的数据解析函数的地址,根据数据解析函数的地址调用相应的数据解析函数(例如图4中的第一数据解析函数)。
例如,如图4所示,主机P10使用对应于被触发的第一数据包信号的名字,在调用的数据包映射信息文件中获取对应于所被触发的第一数据包信号的名字的第一解析函数地址。
例如,如图4所示,数据解析函数存储可以存储在调试分析平台P1通过解析函数地址可以调用的存储元件中,例如读写存储器。例如,多个数据解析函数J10还可以编写在同一个数据文件中,每个数据解析函数被对应的解析函数地址所调用。
例如,如图2所示,步骤S140:运行与多个波形数据对应的数据解析函数,将多个波形数据从第一格式解析为第二格式。例如,如图4所示,主机P10通过运行第一数据解析函数J11将多个波形数据从第一格式解析为第二格式。第一格式与第二格式不同。
例如,第二格式为文本格式。例如,第二格式的第一波形数据为命令类型或指令类型。根据第二格式的第一波形数据可以直接得出第一格式的第一波形数据是否符合预期,从而判断出第一数据包信号所在的数据包是否出错。
例如,在一些实施例中,第一数据解析函数将输入的纯数值信息(第一格式的多个波形数据)解析成可读的文本信息(命令类型或指令类型)。
例如,如图3所示,步骤S217:主机解析第一格式的多个波形数据。例如,在一些实施例中,主机运行与多个波形数据对应的数据解析函数包括:将多个波形数据根据至少一个数据包信号所在的数据协议的规范文件重组,以得到待解析波形数据;解析待解析波形数据。例如,如图4所示,主机P10在波形调试的过程中,将数据包信号Bus1的多个时间点的波形数据进行重组,组合方式为:多个波形数据={0T+1Bus1[15:0],0T0 Bus1[15:0],0T-1Bus1[15:0]}。组合之后的多个波形数据为待解析的波形数据,例如为0x2fc434df897b。
例如,如图3所示,主机得到待解析波形数据包括:根据多个波形数据对应的所述至少一个数据包信号所在数据协议的规范文件,将多个波形数据的数值拆分到多个域段;基于规范文件,将多个域段的数值重新拼接,得到组合域段的数值。例如,在RISC-V(Reduced Instruction Set Computer,精简指令集计算机)指令数据协议的数据包中。例如,多个波形数据的数值0x1c418293,例如被拆分成立即数、源寄存器、操作码2、目的寄存器以及操作码1等域段。将操作码2和操作码2拼接为一个操作码域段,再根据操作码域段的数值解析得到命令类型。
例如,如图1A所示,待解析的波形数的数值0x2fc434408042根据表01将上述数值拆分到如下多个域段:比特[5:0](命令类型),比特[13:6](主机标识符),比特[21:14](从机标识符),以及比特[47:22](命令地址)。根据以上域段的数值可以得到第二格式的多个波形数据:命令类型为读命令。所以,根据第二格式的波形数据,可以直接判断数据包信号的内容是否符合预期,从而节省了大量的时间、人力物力,加快了芯片设计周期。
例如,如图3所示,步骤S218:显示第二格式的多个波形数据。例如,如图4所示,主机P10将多个波形数据的第二格式发送至信息显示装置DISP以在信息显示装置DISP上显示第一波形数据对应的信息。之后进入步骤S203,等待下一个触发事件的发生。设计人员或用户可以直接根据信息显示装置DISP上显示多个波形数据对应的信息,判断当前被触发的第一数据包信号是否符合预期。例如,信息显示装置DISP可以为显示面板等具有显示功能的装置。
例如,如图2所示,步骤S208包括步骤S209-步骤S215。
步骤S209:查找数据包映射信息文件。例如,主机根据触发事件对应的被触发的第一数据包信号的名字,在所调用的数据包映射信息文件的触发数据包信号的名字中查找对应于被触发的第一数据包信号的名字,确定与被触发的第一数据包信号对应的采集序列。
例如,如图4所示,当波形显示装置V1所显示的被触发的第一数据包信号对应于一个数据包信号的多个时间点时,采集序列中采集时间序列包括一个数据包信号的多个时间点,多个数据信号信息包括对应于被触发的第一数据包信号的一个数据包信号的名字和多个时间点。结合图1B所示的波形,被触发的第一数据包信号Bus1(或CLK02)对应于数据包信号Bus1和Bus2。例如,采集序列包括信号采集序列和时间采集序列。信号采集序列为:[“Bus1[15:0]”,“Bus2[1:0]”](对应于图4中波形显示装置V1所显示的数据包信号Bus1的比特[15:0]和Bus2的比特[1:0])。时间采集序列为:-1:0:+1(对应于图4中波形显示装置V1的时间点T-1、T0、T+1)。
步骤S210:检查数据采集序列。
例如,在一些实施例中,按照采集序列中时间采集序列的多个时间点的顺序或采集序列中信号采集序列的至少一个需要采集的数据包信号的顺序,检查是否对应于采集序列的波形数据都已经收到。例如,按照时间点的顺序,先检查数据包信号Bus1的T-1时间点的波形数据,然后是Bus1的T0时间点依次检查。当数据包信号Bus2的T+1时间的波形数据已经接收,说明已经收到对应于触发时间的所有波形数据,进入步骤S216。
步骤S211:有未完成的数据信号信息。当在步骤S210中发现对应于采集序列还存在尚没有被主机接收的波形数据,确定有未完成的数据信号信息。
例如,在一些实施例中,如图4所示,主机P10根据触发事件产生请求信息包括:响应于请求信息包括基于所调用的数据包映射信息文件的采集序列,按照采集序列中时间采集序列的多个时间点的顺序或采集序列中信号采集序列的至少一个需要采集的数据包信号的顺序,产生多个数据信号信息,多个数据信号信息每个包括需要采集的数据包信号的名字和一个时间点;分别根据多个数据信号信息,请求波形显示装置V1发送对应于多个数据信号信息每个的波形数据,直到多个数据信号信息每个对应的至少一个数据包信号在采集序列中多个时间点的多个波形数据全部被接收。例如,当信号采集序列为:[“Bus1[15:0]”,“Bus2[1:0]”],时间采集序列为:-1:0:+1时,将信号采集序列与时间采集序列组合可以得到多个数据信号信息的数量为6个,对应的多个波形数据的数量也为6个。例如,多个数据信号信息的其中一个包括数据包信号的名字Bus1和时间点T-1。
例如,在一些实施例中,如图4所示,当波形显示装置V1所显示的被触发的第一数据包信号对应于一个数据包信号的多个时间点时,采集序列中采集时间序列包括一个数据包信号的多个时间点。多个数据信号信息包括对应于被触发的第一数据包信号的一个数据包信号的名字和多个时间点。例如,如图1A所示的波形,被触发的第一数据包信号Bus1对应于数据包信号Bus1的多个时间点T-1、T0和T+1。多个数据信号信息包括Bus1:T-1、Bus1:T0、Bus1:T+1。此时,多个波形数据的数量为3个,对应地多个数据信号信息的数量为3个。
例如,如图4所示,例如,在一些实施例中,触发事件-回调函数映射表E10包括多个回调函数与多个触发事件的对应关系。例如,触发事件-回调函数映射表E10包括第一触发事件21-第一回调函数E11,第二触发事件22-第二回调函数E12。指令映射表E20包括多项指令与对应的多项指令响应函数的对应关系。例如,指令映射表E20包括第一指令E21-第一指令响应函数31,第二指令E22-第二指令响应函数32等。
例如,在一些实施例中,如图4所示,主机P10根据与触发事件对应的回调函数得到与触发事件对应的指令。请求信息还包括该指令。例如,主机P10根据第一触发事件21产生请求信息,还包括:发送包括指令(例如,第一指令E21)以及多个数据信号信息的请求信息至波形显示装置V1,以请求波形显示装置V1发送第一波形数据。波形显示装置V1根据所接收的多个数据信号信息将对应的波形数据发送出去。
例如,在一些实施例中,如图4所示,波形显示装置V1基于指令映射表E20响应于第一指令E21获得第一指令响应函数31,并基于第一指令响应函数31以及基于多个数据信号信息的每个逐一发送多个波形数据。例如,主机P10根据指令映射表E20,通过执行第一回调函数E11,调用第一指令E21,使得波形显示装置V1的第一指令响应函数31响应于第一指令E21根据第一数据信号信息获取多个波形数据。波形显示装置V1将多个波形数据再通过第一指令响应函数31逐一发送出去。
例如,如图3所示,步骤S212:主机发送数据信号信息至波形显示装置V1,以请求波形显示装置V1发送对应于数据信号信息的波形数据。
步骤S213:主机等待波形数据返回。例如,主机等待波形显示装置返回波形数据。
步骤S215:主机收到波形数据。例如,主机逐一接收对应于多个数据信号信息的波形数据。之后进入步骤S210再次检查采集序列。也就是说,主机收到一个波形数据,对应地检查一次采集序列。所以,步骤S210至步骤S215重复多次,直到多个数据信号信息每个对应的至少一个数据包信号在采集序列中多个时间点的多个波形数据全部被主机接收。
图5为本公开至少一实施例提供的请求波形多个数据的流程示意图。主机使用图5所示的多次握手的方式执行图3所示的步骤S208。
例如,如图5所示,结合本公开实施例前述提及的一种数据包映射文件的示例,介绍基于多次握手的方式执行回调函数。
步骤S401:调试分析平台P1输入配置。该步骤可以参考图4的步骤S301这里不再赘述。
例如,如图5所示,调试分析平台P1注册回调函数,即,建立如图4所示的触发时间-回调函数映射表E10,以与波形显示装置V1通信。
例如,如图5所示,波形显示装置V1返回注册状态和波形文件信息。例如,波形显示装置V1返回触发时间-回调函数映射表E10是否注册成功,返回所显示的波形文件所在的数据协议以及数据包的名称等,以使得调试分析平台P1基于波形文件信息调用数据包映射信息文件。
例如,上述调试分析平台P1注册回调函数和波形显示装置V1返回注册状态和波形文件信息为一次握手过程。
例如,如图5所示,步骤S406:设计人员请求查看某个时间点的某个数据包信号,从而产生触发事件。波形显示装置V1发送触发事件。例如,波形显示装置V1同时发送当前时间点信号信息(例如当前被触发的数据包信号的时间点以及名字等)。例如,当有效的触发事件发生后,当前时间点记为T0,检查数据采集时间点序列并开始数据请求-处理的握手,这里以数据采集时间点序列为T-1、T0以及T+1为例子。
步骤S402:调试分析平台P1处理信号信息并请求第一个波形数据。例如,调试分析平台P1接收触发事件,并响应于触发事件产生请求信息。例如,如前所述的请求信息包括多个数据信号信息和指令。多个数据信号信息例如包括用于请求第一波形数据的第一数据信号信息、第二数据信号信息……第N数据信号信息。例如,调试分析平台P1根据触发事件对应的被触发的第一数据包信号的名字查找数据包映射信息,得到采集序列;并根据采集序列产生多个数据信号信息。调试分析平台P1发送第一数据信号信息和指令至波形显示装置,请求第一波形数据(例如波形数据1)。例如,从数据采集时间点序列最左边的时间点开始,取时间点T-1,表示需要请求T-1时间点的数据。
例如,上述波形显示装置V1发送触发事件至调试分析平台P1,调试分析平台P1向波形显示装置V1请求一次波形数据为一次握手过程。
步骤S407:波形显示装置V1包含多次握手的数据信号信息自动请求处理过程。例如,波形显示装置V1收到一个数据信号信息,获得对应的波形数据,通过与指令对应的指令响应函数,将波形数据发送至调试分析平台P1。
步骤S403和步骤S404:处理返回波形数据并请求下一个波形数据。例如,结合图3所示的步骤S210,调试分析平台P1收到一个波形数据以后,检查采集序列,当还有其它数据信号信息对应的波形数据没有收到的时候,继续请求下一个波形数据,直到调试分析平台P1收到所有对应于触发事件的波形数据。每一次调试分析平台P1的请求波形数据和波形显示装置V1返回波形数据都为一次握手过程。例如,依次取下一个时间点,例如T0时间点和T-1时间点的波形数据。
例如,经过多次握手之后,进入步骤S405:处理返回波形数据并解析,之后将数据包信息显示。例如,结合图3所示的步骤S216至步骤S218,当对应于触发事件的多个波形数据都被调试分析平台P1收到,也就是没有多余时间点,握手过程完成之后,调试分析平台P1执行步骤S217和步骤S218,将多个波形数据解析为第二格式。设计人员或用户可以根据第二格式的多个波形数据,获悉数据包信号对应的命令类型或指令类型,以确定数据包是否符合预期。图5所示的示例可以得到了多个数据包信号在多个时间点的所有波形数据,可以高效地完成复杂数据包的分析。
图6为本公开至少一实施例提供的在多个时间点的数据包信号的示意图。图6为本公开实施例提供的调试防范应用于HBM2协议数据包的示例,下面将结合图4详细介绍。
例如,如图6和图4所示,在调试分析平台P1对波形显示装置V1所显示的波形进行调试之前,设计人员或用户根据HBM2协议的规范文件编写HBM2协议数据包的数据解析函数。根据规范文件和芯片设计文件所确定的数据包映射信息文件中的解析函数地址为ddr.hbm2.hbm2cmd_parser。
例如,设计人员或用户根据BM2协议的规范文件和芯片设计文件编写的数据包映射信息文件至少包括以下的内容:(a)解析函数地址(function)的域段指向HBM2数据包解析函数路径ddr.hbm2.hbm2cmd_parser;(b)触发数据包信号的名字(trigger)的域段为“.*CK_t.*”,需要匹配HBM2波形上触发信号的名字;(c)需要采集的信号采集序列为“CKE”和“C[7:0]”,时间采集序列为“-1:0:+1”,表示需要采集三个时间点的数据T-1,T0和T+1。
例如,如图4所示的调试分析平台P1启动,用户输入配置,例如选择所要连接得波形显示装置V1。例如,调试分析平台P1初始化,与波形显示装置V1建立通信槽TK1,直到通信槽TK1有效。例如,加载对应于BM2协议的数据包映射信息文件。例如,建立触发事件-回调函数映射表E100(图6所示),其中注册“触发事件-回调函数”对,例如注册的是“CursorMove:cb_CursorMove”对,表示当波形显示装置V1中的CursorMove事件发生时,可调试分析平台P1会自动调用预先编写cb_CursorMove函数。此时,波形显示装置V1显示HBM2数据包的波形。
例如,如图6所示,当用户使用,例如鼠标40、触控板、键盘、触控屏等外部设备,点击数据包信号CK_t的T0时间点时,希望看到在T0时间点上是什么命令类型。波形显示装置V1响应于被触发的数据包信号CK_t产生第一触发事件CursorMove。例如,波形显示装置V1通过如图4所示的通信槽TK1将第一触发事件CursorMove发送至调试分析平台P1。调试分析平台P1响应于接收的第一触发事件CursorMove基于触发事件-回调函数映射表E10中的第一回调函数cb_CursorMove检查第一触发事件的有效性,并基于BM2协议的数据包映射信息文件检查被触发的数据包信号CK_t的有效性。当调试分析平台P1确定第一触发事件CursorMove和被触发的数据包信号CK_t有效时,开始执行与第一触发事件CursorMove对应的第一回调函数cb_CursorMove。
例如,调试分析平台P1执行第一回调函数cb_CursorMove,根据HBM2协议的数据包映射信息文件的采集序列,产生多个数据信号信息。调试分析平台P1结合图5所示的多次握手的过程向波形显示装置V1发送多个数据信号信息以请求多个数据信号信息返回多个波形数据。例如,多个数据信号信息与指令映射表E200的第一指令E210同时发送至波形显示装置V1,波形显示装置V1根据多个数据信号信息获得多个波形数据并通过与第一指令E210对应的第一指令响应函数getSignalValue发送至调试分析平台P1。
例如,如图6所示,调试分析平台P1(例如通过第一回调函数cb_CursorMove)先执行最早时间点的数据信号信息的请求,即请求T-1时间点CKE和C[7:0]的数据;波形显示装置V1响应数据请求,读取T-1时间点CKE和C[7:0]的波形数据并将其通过通信槽TK1返回给调试分析平台P1,此时得到的值为CKE(T0-1)=1,C[7:0](T0-1)=0x1c。调试分析平台P1(例如通过第一回调函数cb_CursorMove)继续执行下一个时间点的数据信号信息的请求,即请求T0时间点CKE和C[7:0]的数据;波形显示装置V1响应数据请求,读取T0时间点CKE和C[7:0]的波形数据并将其通过通信槽TK1返回给调试分析平台P1,此时得到的值为CKE(T0)=1,C[7:0](T0)=0x28。调试分析平台P1(例如通过第一回调函数cb_CursorMove)继续执行下一个时间点的数据信号信息的请求,即请求T+1时间点CKE和C[7:0]的数据;波形显示装置V1响应数据请求,读取T+1时间点CKE和C[7:0]的波形数据并将其通过通信槽TK1返回给调试分析平台P1,此时得到的值为CKE(T+1)=1,C[7:0](T+1)=0xf3。
例如,调试分析平台P1(例如通过第一回调函数cb_CursorMove)发现采集序列“-1:0:+1”已经执行完成,将上述三个数据信号请求信息的波形数据根据规范文件合并,得到{(1,0x1c),(1,0x28),(1,0xF3)。根据BM2协议的数据包映射信息文件中设置的解析函数地址(function),得到解析函数地址为ddr.hbm2.hbm2cmd_parse。根据该解析函数地址调用相应的数据解析函数ddr.hbm2.hbm2cmd_parse。合并后的数据{(1,0x1c),(1,0x28),(1,0xF3)}传递给所调用的数据解析函数ddr.hbm2.hbm2cmd_parse并执行数据解析函数ddr.hbm2.hbm2cmd_parse。
例如,预先编写的数据解析函数ddr.hbm2.hbm2cmd_parse根据传入的数据,按照HBM2的规范协议进行解析,将纯数值转化为可读的文本文字(例如第二格式),并将显示在信息显示装置DISP上。显示在信息显示装置DISP上的第二格式的第一波形数据对应的信息如下所示。
触发信号:CK_t
触发时间:30733662.58ps
HBM2数据包信息:
命令名称:MRS
块地址:2
行地址:NA
列地址:NA
存储值:0xbb
读延时:0x17(26nCK)
写延时:0x3(4nCK)
根据HBM2协议,{(1,0x1c),(1,0x28),(1,0xF3)}表示一个MRS(Mode RegisterSet)命令,该命令针对地址为2的寄存器进行设置,设置值为0xbb,即读延时为0x17,写延时为0x3。因此,根据信息显示装置DISP上显示的信息,用户可以直接确定数据包是否符合预期。上述实施例中对HBM2协议数据包信号的解析过程耗时很少(总耗时不超过1秒),从而极大地提高了波形调试的效率。由此,本公开实施例提供的波形调试方法可以大大减小波形调试的时间,缩短芯片开发周期。
例如,本公开实施例还提供一种用于数据波形的调试装置。图7为本公开至少一实施例提供的一种用数据波形的调试装置的结构示意图。
例如,在一些实施例中,如图7所示,调试装置300包括数据接收模块310、映射信息文件调用模块320、解析函数确定模块330以及数据解析模块340。例如,上述各个模块可以使用硬件(例如FPGA(Field Programmable Gate Array,现场可编程门阵列)),也可以使用软件实现。
例如,在一些实施例中,如图7所示,数据接收模块310配置为接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据。例如,如图4所示,波形显示装置V1响应于所显示的第一数据包信号被触发,波形显示装置产生触发事件。主机P10与波形显示装置V1通信,根据触发事件产生请求信息,发送请求信息至波形显示装置以请求波形显示装置发送对应于第一触发事件的多个波形数据。例如,请求信息包括对应于采集序列的多个数据信号信息。多个数据信号信息包括对应于被触发的第一数据包信号的一个数据包信号的名字和多个时间点。
例如,在一些实施例中,映射信息文件调用模块320配置为调用对应于至少一个数据包信号所在数据协议的数据包映射信息文件,数据包映射信息文件包括多项数据包信号与对应的多项数据解析函数的对应关系,数据包映射信息文件根据至少一个数据包信号所在数据协议的规范文件和芯片设计文件确定。例如,如图4所示,调试分析平台P1调用数据包信号所在数据协议的数据包映射信息文件10。例如,当调试分析平台P1对多个数据协议的数据包进行波形调试时,调试分析平台P1调用对应于多个数据协议的数据包映射文件,以对多种数据包进行波形调试。例如,根据不同数据协议的规范文件和芯片设计过程中的芯片设计文件(例如,RTL文件)生成或编写对应的数据包映射文件。
例如,在一些实施例中,解析函数确定模块330配置为使用多个波形数据查询数据包映射信息文件,得到与多个波形数据对应的数据解析函数。例如,根据数据包信号可以查找数据包映射文件获得与数据包信号对应的数据解析函数。调试分析平台使用波形数据的对应的被触发的数据包信号的名字Bus1查询上述数据包映射信息文件,得到与多个波形数据对应的数据解析函数的地址,根据数据解析函数的地址调用相应的数据解析函数(例如图4中的第一数据解析函数)。
例如,在一些实施例中,数据解析模块340配置为运行与多个波形数据对应的数据解析函数,将多个波形数据从第一格式解析为第二格式,第一格式与第二格式不同。例如,如图6所示,主机P10通过运行第一数据解析函数J11将多个波形数据从第一格式解析为第二格式。第一格式与第二格式不同。例如,第二格式为文本格式。例如,第二格式的第一波形数据为命令类型或指令类型。根据第二格式的第一波形数据可以直接得出第一格式的第一波形数据是否符合预期,从而判断出第一数据包信号所在的数据包是否出错。
上述实施例中的用于数据波形的调试装置可以将可读性差的第一格式的多个波形数据解析为可读的第二格式,进而确定多个时间点的数据包信号是否符合预期,以提高芯片设计中数据包的波形调试的效率,缩短芯片设计周期。
例如,本公开实施例还提供另一种用于数据波形的调试装置。图8为本公开至少另一实施例提供的一种用数据波形的调试装置的结构示意图。
例如,如图8所示,该用于数据波形的调试装置400例如适于用来实施本公开实施例提供的用于数据波形的调试方法。用于数据波形的调试装置400可以是个人电脑、笔记本电脑、平板电脑、移动电话等终端装置也可以是工作站、服务器、云服务等。需要注意的是,图8示出的用于数据波形的调试装置400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8所示,用于数据波形的调试装置400可以包括处理设备(例如中央处理器、图形处理器等)410,其可以根据存储在只读存储器(ROM)420中的程序或者从存储设备480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM430中,还存储用于数据波形的调试装置400操作所需的各种程序和数据。处理设备410、ROM 420以及RAM 430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
通常,以下设备可以连接至I/O接口450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入设备460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出设备470;包括例如磁带、硬盘等的存储设备480;以及通信设备490。通信设备490可以允许用于数据波形的调试装置400与其他电子设备进行无线或有线通信以交换数据。虽然图8示出了用于数据波形的调试装置400,但应理解的是,并不要求实施或具备所有示出的设备,用于数据波形的调试装置400可以替代地实施或具备更多或更少的设备。
例如,根据本公开的实施例,上述用于数据波形的调试方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述用于数据波形的调试方法的程序代码。在这样的实施例中,该计算机程序可以通过通信设备490从网络上被下载和安装,或者从存储设备480安装,或者从ROM420安装。在该计算机程序被处理设备410执行时,可以执行本公开实施例提供的用于数据波形的调试方法中限定的功能。
例如,本公开实施例还提供一种用数据波形的调试系统。图9为本公开至少一实施例提供的一种用数据波形的调试系统的结构示意图。
例如,在一些实施例中,如图9所示,调试系统500包括如图7所示的调试装置300或如图8所示的调试装置400、信息显示装置DISP以及波形显示装置V1。
例如,如图9所示,波形显示装置V1与调试装置300/400通信连接。波形显示装置V1配置为根据输入操作产生和发送对应于所显示的第一数据包信号的触发事件,并基于接收的调试装置的数据请求(例如包括多个数据信号信息的请求信息)发送对应于触发事件的多个波形数据。例如,结合图6所示的实施例,波形显示装置V1响应于对数据包信号CK_t被触发产生第一触发事件CursorMove,并将该第一触发事件发送至调试装置300/400。波形显示装置V1根据指令映射表E200基于接收的调试装置的请求信息发送对应于第一触发事件的多个波形数据。请求信息包括第一指令E210和多个数据信号信息。第一指令E210调用第一指令响应函数:getSignalValue。波形显示装置V1响应于第一指令响应函数根据多个数据信号信息获得多个波形数据,并通过第一指令响应函数将第一波形数据发送至调试装置300/400。
例如,如图9所示,信息显示装置DISP与调试装置300/400通信连接,信息显示装置DISP配置为接收并显示调试装置300/400发送的多个波形数据的第二格式的数据包信息。第一波形数据的第二格式为协议数据包的可读信息。信息显示装置DISP显示协议数据包的可读信息,例如,命令类型、指令类型等。设计人员可以直接根据信息显示装置DISP显示的波形数据对应的信息直接确定数据包信号是否符合预期,以减小波形调试的时间,缩短芯片开发周期。
例如,本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机程序可执行代码(例如计算机可执行指令),当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的用于数据波形的调试方法;或者,当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的用于数据波形的调试方法。
图10为本公开至少一实施例提供的一种存储介质的示意图。如图10所示,存储介质700非暂时性地存储有计算机程序可执行代码701。例如,当计算机程序可执行代码701由计算机执行时可以执行根据上文所述的用于数据波形的调试方法中的一个或多个步骤。
例如,该存储介质700可以应用于上述用于数据波形的调试装置400中。例如,存储介质700可以为图8所示的用于数据波形的调试装置400中的存储器420。例如,关于存储介质700的相关说明可以参考图8所示的用于数据波形的调试装置400中的存储器420的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种用于数据波形的调试方法,包括:
接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据;
调用对应于所述至少一个数据包信号所在数据协议的数据包映射信息文件,其中,所述数据包映射信息文件包括多项数据包信号与对应的多项数据解析函数的对应关系,所述数据包映射信息文件根据所述至少一个数据包信号所在数据协议的规范文件和芯片设计文件确定;
使用所述多个波形数据查询所述数据包映射信息文件,得到与所述多个波形数据对应的数据解析函数;以及
运行与所述多个波形数据对应的数据解析函数,将所述多个波形数据从第一格式解析为第二格式,其中,所述第一格式与所述第二格式不同。
2.根据权利要求1所述的调试方法,其中,运行与所述多个波形数据对应的数据解析函数包括:
将所述多个波形数据根据所述至少一个数据包信号所在的所述数据协议的规范文件重组,以得到待解析波形数据;以及
解析所述待解析波形数据。
3.根据权利要求2所述的调试方法,其中,得到所述待解析波形数据包括:
根据所述多个波形数据对应的所述至少一个数据包信号所在所述数据协议的规范文件,将所述多个波形数据的数值拆分到多个域段;
基于所述规范文件,将所述多个域段的数值重新拼接,得到组合域段的数值。
4.根据权利要求1-3任一所述的调试方法,其中,所述采集序列包括信号采集序列和时间采集序列,其中,
所述信号采集序列包括至少一个需要采集的数据包信号的名字,
所述采集序列包括对应于每个所述需要采集的数据包信号的多个时间点。
5.根据权利要求4所述的调试方法,其中,接收所述至少一个数据包信号在所述采集序列中多个时间点的所述第一格式的多个波形数据之前,包括:
接收波形显示装置对应于所述至少一个数据包信号发送的触发事件;
根据所述触发事件产生请求信息;以及
发送所述请求信息至所述波形显示装置以请求所述波形显示装置发送对应于所述触发事件的多个波形数据,
其中,所述波形显示装置响应于所显示的第一数据包信号被触发,所述波形显示装置生成所述触发事件。
6.根据权利要求5所述的调试方法,其中,所调用的所述数据包映射信息文件包括触发数据包信号的名字和所述采集序列,
所述请求信息包括基于所调用的所述数据包映射信息文件的采集序列。
7.根据权利要求6所述的调试方法,其中,请求所述波形显示装置发送对应于所述触发事件的所述多个波形数据包括:
根据所述触发事件对应的所述被触发的第一数据包信号的名字,在所调用的所述数据包映射信息文件的所述触发数据包信号的名字中查找对应于所述被触发的第一数据包信号的名字,确定与所述被触发的第一数据包信号对应的采集序列。
8.根据权利要求7所述的调试方法,其中,所调用的所述数据包映射信息文件还包括分别与多项数据包信号对应的多个解析函数地址,
所述多个解析函数地址每个用于获取对应的数据解析函数,
其中,使用对应于所述被触发的第一数据包信号的名字,在调用的所述数据包映射信息文件中获取对应于所述被触发的第一数据包信号的名字的第一解析函数地址。
9.根据权利要求8所述的调试方法,其中,根据所述触发事件产生所述请求信息包括:
响应于所述请求信息包括基于所调用的所述数据包映射信息文件的采集序列,按照所述采集序列中时间采集序列的多个时间点的顺序或所述采集序列中信号采集序列的至少一个需要采集的数据包信号的顺序,产生多个数据信号信息,所述多个数据信号信息每个包括需要采集的数据包信号的名字和一个时间点,
分别根据所述多个数据信号信息,请求所述波形显示装置发送对应于所述多个数据信号信息每个的波形数据,直到所述多个数据信号信息每个对应的所述至少一个数据包信号在所述采集序列中多个时间点的多个波形数据全部被接收。
10.根据权利要求9所述的调试方法,其中,当所述波形显示装置所显示的所述被触发的第一数据包信号对应于一个数据包信号的多个时间点时,所述采集序列中采集时间序列包括所述一个数据包信号的多个时间点,
所述多个数据信号信息包括对应于所述被触发的第一数据包信号的一个数据包信号的名字和多个时间点。
11.根据权利要求9所述的调试方法,其中,当所述波形显示装置所显示的所述被触发的第一数据包信号对应于多个数据包信号的多个时间点时,所述采集序列中信号采集序列包括所述多个数据包信号的名字,
所述多个数据信号信息包括对应于所述被触发第一数据包信号的所述多个数据包信号的名字和多个时间点。
12.根据权利要求9所述的调试方法,其中,根据所述触发事件产生所述请求信息还包括:
调用触发事件-回调函数映射表;
根据所述触发事件查找触发事件-回调函数映射表,得到与所述触发事件对应的回调函数;以及
根据与所述触发事件对应的回调函数得到与所述触发事件对应的指令,其中,所述请求信息还包括所述指令,
所述指令用于请求所述波形显示装置发送对应于所述触发事件的多个波形数据,
所述触发事件-回调函数映射表包括多项触发事件与对应的多项回调函数的对应关系。
13.根据权利要求12所述的调试方法,其中,请求所述波形显示装置发送对应于所述触发事件的多个波形数据包括:
所述波形显示装置基于所述指令映射表响应于与所述触发事件对应的所述指令获得指令响应函数,并基于所述指令响应函数以及所述多个数据信号信息发送对应于所述触发事件的多个波形数据,
其中,所述指令映射表包括多项指令与对应的多项指令响应函数的对应关系。
14.一种用于数据波形的调试装置,包括:
数据接收模块,配置为接收至少一个数据包信号在采集序列中多个时间点的第一格式的多个波形数据;
映射信息文件调用模块,配置为调用对应于所述至少一个数据包信号所在数据协议的数据包映射信息文件,其中,所述数据包映射信息文件包括多项数据包信号与对应的多项数据解析函数的对应关系,所述数据包映射信息文件根据所述至少一个数据包信号所在数据协议的规范文件和芯片设计文件确定;
解析函数确定模块,配置为使用所述多个波形数据查询所述数据包映射信息文件,得到与所述多个波形数据对应的数据解析函数;以及
数据解析模块,配置为运行与所述多个波形数据对应的数据解析函数,将所述多个波形数据从第一格式解析为第二格式,其中,所述第一格式与所述第二格式不同。
15.一种用于数据波形的调试装置,包括:
处理器;和
存储器,其中,所述存储器中存储有计算机可执行代码,所述计算机可执行代码当由所述处理器运行时,执行如权利要求1-12任一所述的用于数据波形的调试方法。
16.一种用于数据波形的调试系统,包括:
如权利要求14或15所述的调试装置,
波形显示装置,与所述调试装置通信连接,
其中,所述波形显示装置配置为根据输入操作产生和发送对应于所显示的被触发的第一数据包信号的触发事件,并基于接收的所述调试装置的数据请求发送对应的所述第一格式的多个波形数据。
17.根据权利要求16所述的调试系统,还包括:
信息显示装置,所述信息显示装置与所述调试装置通信连接,所述信息显示装置配置为接收并显示所述调试装置发送的所述多个波形数据的所述第二格式的数据包信息。
18.一种计算机可读存储介质,其上存储有可执行代码,所述可执行代码在被处理器执行时,使得所述处理器执行如权利要求1-12任一所述的用于数据波形的调试方法。
CN202011134751.4A 2020-10-21 2020-10-21 用于数据波形的调试方法、装置、调试系统以及存储介质 Active CN112257360B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011134751.4A CN112257360B (zh) 2020-10-21 2020-10-21 用于数据波形的调试方法、装置、调试系统以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011134751.4A CN112257360B (zh) 2020-10-21 2020-10-21 用于数据波形的调试方法、装置、调试系统以及存储介质

Publications (2)

Publication Number Publication Date
CN112257360A true CN112257360A (zh) 2021-01-22
CN112257360B CN112257360B (zh) 2024-04-16

Family

ID=74263420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011134751.4A Active CN112257360B (zh) 2020-10-21 2020-10-21 用于数据波形的调试方法、装置、调试系统以及存储介质

Country Status (1)

Country Link
CN (1) CN112257360B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678747A (zh) * 2012-09-19 2014-03-26 上海华虹集成电路有限责任公司 适用于多类型cpu的联合仿真工具
CN103837824A (zh) * 2014-03-03 2014-06-04 中国科学院电子学研究所 数字集成电路自动测试系统
CN104458981A (zh) * 2013-09-18 2015-03-25 株式会社岛津制作所 波形处理辅助方法和波形处理辅助系统
CN105653207A (zh) * 2015-12-31 2016-06-08 深圳市德名利电子有限公司 一种闪存接口信息的实时解析方法和系统
CN106154202A (zh) * 2016-07-26 2016-11-23 东莞市广安电气检测中心有限公司 一种电器短路试验测量系统的校准方法
WO2017074568A1 (en) * 2015-10-27 2017-05-04 Xilinx, Inc. Methods and circuits for debugging circuit designs

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678747A (zh) * 2012-09-19 2014-03-26 上海华虹集成电路有限责任公司 适用于多类型cpu的联合仿真工具
CN104458981A (zh) * 2013-09-18 2015-03-25 株式会社岛津制作所 波形处理辅助方法和波形处理辅助系统
CN103837824A (zh) * 2014-03-03 2014-06-04 中国科学院电子学研究所 数字集成电路自动测试系统
WO2017074568A1 (en) * 2015-10-27 2017-05-04 Xilinx, Inc. Methods and circuits for debugging circuit designs
CN105653207A (zh) * 2015-12-31 2016-06-08 深圳市德名利电子有限公司 一种闪存接口信息的实时解析方法和系统
CN106154202A (zh) * 2016-07-26 2016-11-23 东莞市广安电气检测中心有限公司 一种电器短路试验测量系统的校准方法

Also Published As

Publication number Publication date
CN112257360B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
CN110162544B (zh) 异构数据源数据获取方法及装置
CN106648569B (zh) 目标序列化实现方法和装置
CN113887161A (zh) 一种片上网络设计实例的验证方法、装置、设备及介质
CN115757483A (zh) 一种自动化测试方法、装置、电子设备和存储介质
EP3532936B1 (en) Debugging system and method
CN112363938A (zh) 数据处理方法、装置、电子设备和存储介质
CN115422866A (zh) 用于在仿真器上仿真逻辑系统设计的方法及相关设备
CN112257359B (zh) 用于数据波形的调试方法、装置、调试系统以及存储介质
CN113391972A (zh) 一种接口测试方法及装置
CN112632884A (zh) 门级网表生成方法、装置及电子设备
CN112257360B (zh) 用于数据波形的调试方法、装置、调试系统以及存储介质
TW201839632A (zh) 處理自然語言的方法及裝置
CN115470125B (zh) 基于日志文件的调试方法、设备以及存储介质
EP4407467A1 (en) Autosar software verification method and apparatus, device, and storage medium
CN112307050B (zh) 一种重复关联计算的识别方法、装置及计算机系统
CN111143398B (zh) 基于扩展sql函数的超大集合查询方法及装置
CN111240972B (zh) 一种基于源代码的模型验证装置
JP2014194746A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
CN113138767A (zh) 代码语言转换方法、装置、电子设备及存储介质
CN112650773A (zh) 数据查询方法、装置、电子设备及存储介质
CN111125264A (zh) 基于扩展olap模型的超大集合分析方法及装置
JP6305644B2 (ja) アーキテクチャ生成装置およびアーキテクチャ生成プログラム
US11809363B1 (en) Debug methodology for a USB sub-system using unique identifier (UID) approach
CN110750569A (zh) 数据提取方法、装置、设备及存储介质
CN111125147B (zh) 基于扩展预计算模型和sql函数的超大集合分析方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant