CN115730546A - 一种片上网络协议的软硬件协同监测方法及装置 - Google Patents
一种片上网络协议的软硬件协同监测方法及装置 Download PDFInfo
- Publication number
- CN115730546A CN115730546A CN202211483323.1A CN202211483323A CN115730546A CN 115730546 A CN115730546 A CN 115730546A CN 202211483323 A CN202211483323 A CN 202211483323A CN 115730546 A CN115730546 A CN 115730546A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- message
- protocol
- monitoring
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种片上网络协议的软硬件协同监测方法及装置,本发明方法包括通过可综合的硬件部分中的共享函数体声明部件提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文,然后将CHI报文不进行检验直接输出,或者对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出。本发明适用于FPGA原型平台、硬件资源占用小、***成本低、实现快捷简单,能够实现在原型平台上对CHI协议报文的高效监测和分析,能够有效加速SoC问题的定位和性能分析,提升SoC设计效率。
Description
技术领域
本发明属于集成电路领域中的硅前验证领域,具体涉及一种片上网络协议的软硬件协同监测方法及装置。
背景技术
在芯片设计到正式上市的整个阶段中,SoC(System on Chip,片上***)的验证是一项非常繁复的任务。投入到SoC验证的时间和精力,可以占据整个***开发设计时间的60%甚至更多。只有在硅前验证阶段有了足够充分的验证结果支持,才有信心进行流片。然而在***级验证阶段,工程师们对于芯片功能、性能等方面的高效验证手段有限。对于功能验证方面,在问题查错时一般使用抓取波形等调试方法,SoC很难定位具体出错的模块,一个问题的定位可能会消耗一个月甚至数月的时间,极大地影响了生产效率;而在性能验证方面,当SoC性能未达到预期设计指标时,工程师们很难根据全***的性能数据定位具体性能瓶颈。因此,在SoC开发过程中,如何高效准确地对大型SoC***进行功能和性能验证,是亟待解决的难题。基于这样的情况相关研究人员从总线协议入手,通过对SoC片上网络协议地分析更多地获取芯片内部状态信息,提高芯片可观察性,进而高效地对问题进行定位分析和处理。CHI协议是目前广泛采用的一种片上协议规范,包含协议层、网络层、链路层。协议层是整个架构的最顶层,以事务为基本,管理事务流与节点缓存状态转换;网络层负责对协议进行分组路由,确定目标节点、源节点等信息并添加到数据包中,保证数据包可以在互联中路由到目的地;链路层以数据片为基本单位从硬件层面完成请求通道、输出数据通道、输出反馈通道、输入反馈通道、输入数据通道、监听通道六个链路通道的实现,具有高带宽、多并发的优点。从CHI协议的运行情况可以了解通过片上网络互联的多个部件运行状态。
为了增大工程师们对于片上互联情况的了解,需要实现一种基于片上网络协议的高效监测器用于对片上网络协议的监测,目前许多公司开发了VIP用于对AXI、CHI等片上网络协议的监测,然而这些工具由全部可综合或全部不可综合的形式实现,全部不可综合的实现方式为面向模块验证不适用于在FPGA原型平台的***级验证,全部可综合的实现方法在实际的使用中对FPGA原型平台的硬件资源占用较大。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种片上网络协议的软硬件协同监测方法及装置,本发明能够实现对片上网络协议的高效监测,在FPGA平台上通过可综合、不可综合两部分结构,实现了一种适用于FPGA原型平台、且硬件资源占用小、***成本低、验证方式实现快捷简单的***级验证方法,能够实现在原型平台上对CHI协议报文的监测和分析,能够有效加速SoC问题的定位和性能分析,提升SoC设计效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种片上网络协议的软硬件协同监测方法,包括通过可综合的硬件部分中的共享函数体声明部件提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文,然后将CHI报文不进行检验直接输出,或者对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出。
还包括通过可综合的硬件部分提供存储参数配置部件,以用于设置数据存储配置信息以供不可综合的软件部分使用,所述数据存储配置信息包含数据文件和日志文件LOG的输出位置、数据包参数配置文件位置以及待测SoC的节点号。
还包括通过可综合的硬件部分提供监测状态控制部件,以用于在没有监测需求时,将使能信号置低以停止输出传输CHI报文或监测结果,在有监测需求时,将使能信号置高以回复输出传输CHI报文或监测结果。
一种使用前述的片上网络协议的软硬件协同监测方法的软硬件协同监测装置,包括相互连接的DPI-C接口和片上网络协议监测器,所述片上网络协议监测器包括:
数据传输模块,用于通过可综合的硬件部分中的共享函数体声明部件提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文;
数据片解码组码模块,用于对CHI报文进行解码和组码;
协议分析模型模块,用于对组码后的数据包进行指定的协议分析处理;
所述数据传输模块通过绑定的方式与待测SoC中的CHI协议信号相连,所述数据传输模块、数据片解码组码模块、协议分析模型模块依次相连,其中所述数据片解码组码模块、协议分析模型模块为不可综合的软件部分。
所述数据传输模块中的共享函数体声明部件通过导入import的方式在可综合的硬件部分中声明硬件部分与软件部分共享的函数体。
所述数据传输模块中不可综合的软件部分包括:数据片参数配置模块,用于设置CHI总线协议数据片的字段格式以支持不同的CHI协议,且使用参数输入的方法读入CHI协议的可配置参数字段,具体参数包含地址位宽、数据位宽、节点号位宽、事务号位宽、自定义位宽;监测器数据管理模块,用于完成共享的函数体的实例化,用于实现主请求通道、从数据通道、从反馈通道、从监听通道、主反馈通道、主数据通道的数据传输,不同数据由唯一的句柄索引标识其在句柄列表中的位置;监测器模式控制模块,用于通过宏定义的方法选择离线模式与在线模式,离线模式将CHI报文不进行检验直接输出,在线模式下对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出。
所述监测器模式控制模块在离线模式将CHI报文不进行检验直接输出包括:步骤1,当片上网络协议监测器使能信号置高时,监测时钟开始计数,根据存储参数配置部件中的数据文件输出位置创建数据文件DAT,并将数据文件DAT句柄保存在监测器数据管理模块中的句柄列表中;步骤2,当被监测通道中的有效信号拉高时,将此时通道中的数据片完整信息、监测时钟计数、通道类型通过共享函数体传输至工作站,根据存储参数配置部件中的节点号在句柄列表中查找数据文件句柄,将数据输出在数据文件DAT中;步骤3,当片上网络协议监测器使能信号置低时,关闭数据文件DAT;所述监测器模式控制模块在在线模式下对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出包括:步骤1,当片上网络协议监测器使能信号置高时,监测时钟开始计数,根据存储参数配置部件中的日志文件LOG输出位置,创建日志文件LOG,将日志文件LOG句柄保存在监测器数据管理模块15中的句柄列表中;步骤2,当被监测通道中的有效信号拉高时,将此时通道中的数据片完整信息、监测时钟计数、通道类型通过共享函数体传输至工作站中,由数据片解码组码模块及协议分析模型模块在线完成协议监测,根据存储参数配置部件中的节点号在句柄列表中查找日志文件LOG句柄,将监测结果输出在日志文件LOG中;步骤3,当片上网络协议监测器使能信号置低时,关闭日志文件LOG。
所述数据片解码组码模块包括:解码模块,用于对数据包进行操作,按照数据传输模块中数据包参数配置模块中传入的数据片字段格式,对CHI协议中主请求通道、从数据通道、从反馈通道、从监听通道、主反馈通道、主数据通道六个通道中报文根据CHI协议规范分别进行解码,将完整数据片根据位宽通过移位和与或操作分解为各个字段信息,将解码后的字段信息存储在数据片结构体中;组码模块,用于将数据片结构体中数据解析为事务流控制变量;所述事务流控制变量具体包含按照操作码字段映射得到的是否为无数据类型报文、是否为可监听类型报文、是否为原子类型报文、是否为缓存状态设置相关报文、是否为DVM类型报文,以及按照是否进行反馈确认映射得到是否需要一个反馈报文;所述解码模块和组码模块相互连接,所述解码模块和数据传输模块的输出端相连,所述组码模块的输出端用于输出组码后的数据包,并同时将组码后的数据包作为协议分析模型模块的输入。
所述协议分析模型模块包括:
事务流追踪模块,用于将数据片解码组码模块发送的数据转化为以事务流顺序为存储结构的事务流数据,且事务流数据包中使用请求和监听两种事务流结构体对事务流进行存储,所述事务流结构体包含一个请求或监听报文、一组数据报文、一个反馈报文、事务流计数、事务流操作解析变量以及结构体初始化函数;事务流计数用于标记事务生命周期的进行状态,每监测到报文,将事务流计数减一,计数为零时事务流生命周期结束;事务流操作解析变量用于确定事务流后续报文类型,包含:是否为无数据类型报文、是否为可监听类型报文、是否为原子类型报文、是否为缓存状态设置相关报文、是否为DVM类型报文;所述结构体初始化函数用于初始化所有事务流操作解析变量、事务计数初始值和报文;
链路层检验模块,用于检验六种通道链路层数据的正确性,包含通道的信用计数检验、报文链路层字段检验;
协议层检验模块,用于检验六种通道协议层事务流的正确性,进行详细地事务流的分析与冲突监测;
问题反馈模块,用于控制监测器发现致命错误的后续操作,当链路层输入模块与协议层检验模块监测到问题发生时,主动上报错误,并将问题发生的事务流完整信息和基本错误提示输出在监测日志中,根据监测器的设置可以选择停止或继续仿真;
所述事务流追踪模块、链路层检验模块以及协议层检验模块依次相连,所述链路层检验模块和协议层检验模块分别与问题反馈模块相连。
所述协议分析模型模块还包括覆盖率监测模块,用于对数据包中所有报文分通道进行监测,每一个通道包含一个报文类型计数表,用于记录每一种报文类型发生次数;当监测到报文时,将当前报文操作码字段对应的事务类型的计数加一;监测完成时,将各个通道中所有报文类型的发生次数、报文类型的覆盖率进行统计输出到日志文件LOG。
和现有技术相比,本发明主要具有下述优点:本发明包括通过可综合的硬件部分中的共享函数体声明部件提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文,然后将CHI报文不进行检验直接输出,或者对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出,本发明在FPGA平台上通过可综合、不可综合两部分结构,实现了一种适用于FPGA原型平台、且硬件资源占用小、***成本低、验证方式实现快捷简单的***级验证方法,能够实现在原型平台上对CHI协议报文的高效监测和分析,能够有效加速SoC问题的定位和性能分析,提升SoC设计效率。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2是本发明实施例监测装置的结构示意图。
图3是本发明实施例监测器中数据传输模块的结构示意图。
图4是本发明实施例监测器中二进制文件格式示意图。
图5是本发明实施例监测器中协议分析模型模块的结构示意图。
图例说明:1、数据传输模块;11、存储参数配置部件;12、共享函数体声明部件;13、硬件部分提供监测状态控制部件;14、参数配置模块;15、监测器数据管理模块;16、监测器模式控制模块;2、数据片解码组码模块;3、协议分析模型模块;31、事务流追踪模块;32、链路层检验模块;33、协议层检验模块;34、问题反馈模块;35、覆盖率监测模块。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清晰,以下结合附图和实施案例,对本发明进行进一步详细说明。需要理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限制本发明。
如图1所示,本实施例片上网络协议的软硬件协同监测方法包括通过可综合的硬件部分中的共享函数体声明部件12提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件12提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文,然后将CHI报文不进行检验直接输出,或者对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出。
此外,本实施例片上网络协议的软硬件协同监测方法还包括通过可综合的硬件部分提供存储参数配置部件11,以用于设置数据存储配置信息以供不可综合的软件部分使用,数据存储配置信息包含数据文件和日志文件LOG的输出位置、数据包参数配置文件位置以及待测SoC的节点号。
此外,本实施例片上网络协议的软硬件协同监测方法还包括通过可综合的硬件部分提供监测状态控制部件13,以用于在没有监测需求时,将使能信号置低以停止捕捉待测SoC中的CHI报文,在有监测需求时,将使能信号置高以恢复捕捉待测SoC中的CHI报文,并输出传输CHI报文或监测结果。
本实施例片上网络协议的软硬件协同监测方法在FPGA平台上通过可综合、不可综合两部分结构,实现了一种适用于FPGA原型平台、且硬件资源占用小、***成本低、验证方式实现快捷简单的***级验证方法,能够实现在原型平台上对CHI协议报文的高效监测和分析,能够有效加速SoC问题的定位和性能分析,提升SoC设计效率。
如图2所示,本实施例还提供一种使用前述的软硬件协同监测方法的软硬件协同监测装置,包括相互连接的DPI-C接口(Direct Programming Interface for C,面向C语言的直接编程接口)和片上网络协议监测器(简称监测器),监测器包括:
数据传输模块1,用于通过可综合的硬件部分提供共享函数体声明部件11,以提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文;
数据片解码组码模块2,用于对CHI报文进行解码和组码;
协议分析模型模块3,用于对组码后的数据包进行指定的协议分析处理;
数据传输模块1通过绑定的方式与待测SoC中的CHI协议信号相连,数据传输模块1、数据片解码组码模块2、协议分析模型模块3依次相连,其中数据片解码组码模块2、协议分析模型模块3为不可综合的软件部分。
参见图2,本实施例中数据传输模块捕捉待测SoC中的CHI报文,并将其从FPGA原型平台通过DPI-C接口传输到工作站中;数据片解码组码模块2处理CHI协议中数据片,将数据片按照数据传输模块1中的配置信息解码,将解码后的数据片结构体中事务流控制变量组码;协议分析模型模块3可完成事务流的追踪、报文的正确性检验和报文类型的覆盖率监测。数据传输模块1可将CHI报文不进行检验直接输出,或者利用数据片解码组码模块2、协议分析模型模块3对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出,分别对应两者模式:离线模式中所述数据传输模块1将数据包输出并存储在工作站,在线模式中所述数据传输模块1将数据包传输给数据片解码组码模块2,数据片解码组码模块2将数据包解码组码后传输给协议分析模型模块3,由协议分析模型模块3完成协议分析并向工作站输出监测日志作为监测结果。
数据传输模块1中的共享函数体声明部件12通过导入import的方式在可综合的硬件部分中声明硬件部分与软件部分共享的函数体。此外,存储参数配置部件11用于设置监测器的数据存储方式,包含数据文件和日志文件的输出位置、数据包参数配置文件位置、被监测节点的节点号;监测状态控制部件13用于控制监测器的使能,当没有监测器使用需求时,在FPGA平台将监测器的使能信号置低,停止通过DPI-C接口向工作站传输数据,减少资源的占用。当存在监测器使用需求时,将监测器的使能信号置高,使本监测器开始工作。
作为一种可选的实施方式,数据传输模块1中不可综合的软件部分可采用使用C或C++语言实现。如图3所示,数据传输模块1中不可综合的软件部分包括:数据片参数配置模块14,用于设置CHI总线协议数据片的字段格式以支持不同的CHI协议,且使用参数输入的方法读入CHI协议的可配置参数字段,具体参数包含地址位宽、数据位宽、节点号位宽、事务号位宽、自定义位宽;由于CHI协议标准中的部分字段存在可配置的情况,各个待测SoC中实际实现的CHI协议存在不同,本实施例方法中具体使用参数输入的方法读入CHI协议的可配置参数字段。
监测器数据管理模块15,用于完成共享的函数体的实例化,用于实现主请求通道、从数据通道、从反馈通道、从监听通道、主反馈通道、主数据通道的数据传输,不同数据由唯一的句柄索引标识其在句柄列表中的位置;
监测器模式控制模块16,用于通过宏定义的方法选择离线模式与在线模式,离线模式将CHI报文不进行检验直接输出,在线模式下对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出。
本实施例中,监测器模式控制模块16在离线模式将CHI报文不进行检验直接输出包括:
步骤1,当片上网络协议监测器使能信号置高时,监测时钟开始计数,根据存储参数配置部件11中的数据文件输出位置创建数据文件DAT,并将数据文件DAT句柄保存在监测器数据管理模块15中的句柄列表中;
步骤2,当被监测通道中的有效信号拉高时,将此时通道中的数据片完整信息、监测时钟计数、通道类型通过共享函数体传输至工作站,根据存储参数配置部件11中的节点号在句柄列表中查找数据文件DAT句柄,将数据输出在数据文件DAT中;
步骤3,当片上网络协议监测器使能信号置低时,关闭数据文件DAT。
本实施例中,监测器模式控制模块16在在线模式下对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出包括:
步骤1,当片上网络协议监测器使能信号置高时,监测时钟开始计数,根据存储参数配置部件11中的日志文件LOG输出位置,创建日志文件LOG,将日志文件LOG句柄保存在监测器数据管理模块15中的句柄列表中;
步骤2,当被监测通道中的有效信号拉高时,将此时通道中的数据片完整信息、监测时钟计数、通道类型通过共享函数体传输至工作站中,由数据片解码组码模块2及协议分析模型模块3在线完成协议监测,根据存储参数配置部件11中的节点号在句柄列表中查找日志文件LOG句柄,将监测结果输出在日志文件LOG中;
步骤3,当片上网络协议监测器使能信号置低时,关闭日志文件LOG。
数据片解码组码模块2包括:
解码模块,用于对数据包进行操作,按照数据传输模块1中数据包参数配置模块14中传入的数据片字段格式,对CHI协议中主请求通道、从数据通道、从反馈通道、从监听通道、主反馈通道、主数据通道六个通道中报文根据CHI协议规范分别进行解码,将完整数据片根据位宽通过移位和与或操作分解为各个字段信息,将解码后的字段信息存储在数据片结构体中;以主请求通道为例,解码后的数据片结构体包含标识码、目标节点号、源节点号、逻辑进程号、事务号、操作码、地址、数据大小、是否允许重试、信贷协议类型、是否进行反馈确认、返回节点号、返回事务号、存储节点号、存储节点有效位、存储逻辑进程号、存储逻辑进程有效位、安全属性、内存属性、监听属性、共享属性、独占访问、排序属性、字节顺序、跟踪标记、自定义位;标识码为解码过程中生成的每一条事务流唯一的标识码,以便于后续的问题定位;
组码模块,用于将数据片结构体中数据解析为事务流控制变量;事务流控制变量具体包含按照操作码字段映射得到的是否为无数据类型报文、是否为可监听类型报文、是否为原子类型报文、是否为缓存状态设置相关报文、是否为DVM类型报文,以及按照是否进行反馈确认映射得到是否需要一个反馈报文;解码模块和组码模块相互连接,解码模块和数据传输模块1的输出端相连,组码模块的输出端用于输出组码后的数据包DAT,并同时将组码后的数据包DAT作为协议分析模型模块3的输入。
如图4所示,数据包DAT的格式为二进制格式,其中信息包含该节点的句柄索引、通道类型、监测器的时钟计数、完整报文;该节点的句柄索引为存储参数配置部件11中被监测节点的节点号;通道类型为八位二进制数,低四位用于标志报文所述通道,高四位用于标志为是否为返还信用报文;由于FPGA平台的DPI操作有可能是乱序的,在监测器中使用时钟计数的方法标记报文的传入时间。
如图5所示,本实施例中的协议分析模型模块3包括:
事务流追踪模块31,用于将数据片解码组码模块2发送的数据转化为以事务流顺序为存储结构的事务流数据,且事务流数据包中使用请求和监听两种事务流结构体对事务流进行存储(由于在CHI协议中一个事务流通常由一个请求或监听报文开始,因此在事务流数据包中使用请求和监听两种事务流结构体对事务流进行存储)。
其中,事务流结构体包含一个请求或监听报文、一组数据报文、一个反馈报文、事务流计数、事务流操作解析变量以及结构体初始化函数;事务流计数用于标记事务生命周期的进行状态(于根据CHI协议规范,每一种事务流包含的后续事务类型和数目是固定的),每监测到报文,将事务流计数减一,计数为零时事务流生命周期结束;事务流操作解析变量用于确定事务流后续报文类型,包含:是否为无数据类型报文、是否为可监听类型报文、是否为原子类型报文、是否为缓存状态设置相关报文、是否为DVM类型报文;结构体初始化函数用于初始化所有事务流操作解析变量、事务计数初始值和报文;
链路层检验模块32,用于检验六种通道链路层数据的正确性,包含通道的信用计数检验、报文链路层字段检验;
协议层检验模块33,用于检验六种通道协议层事务流的正确性,进行详细地事务流的分析与冲突监测;
问题反馈模块34,用于控制监测器发现致命错误的后续操作,当链路层输入模块与协议层检验模块监测到问题发生时,主动上报错误,并将问题发生的事务流完整信息和基本错误提示输出在监测日志中,根据监测器的设置可以选择停止或继续仿真;
事务流追踪模块31、链路层检验模块32以及协议层检验模块33依次相连,链路层检验模块32和协议层检验模块33分别与问题反馈模块34相连。
其中,事务流追踪模块31按照时间顺序依次读取数据包中六个通道的报文以实现对六种通道链路层数据的事务流追踪,详细步骤包括:S1:对于主请求通道,当检测到一个请求报文时创建一个请求事务流结构体,完成结构体初始化,并将此结构体存储在事务流追踪列表中;S2:对于从监听通道,当检测到一个监听报文时创建一个监听事务流结构体,完成结构体初始化,并将此结构体存储在事务流追踪列表中;S3:对于从数据通道、从反馈通道、主反馈通道、主数据通道,当检测到一个数据或反馈报文时,对其ID域进行检验,根据目标节点号、源节点号、事务号确定此报文属于事务流追踪列表中哪个事务流,并将此报文存储在该事务流结构体中;S4:重复S1-S3,对事务流进行跟踪,直到事务流生命周期结束,从事务流追踪列表中将事务流删除,在报文解析与检验模块中对事务流继续监测;作为一种可选的实施方式,将完整的事务流生命周期输出在日志文件LOG中。
链路层检验模块32用于检验六种通道链路层数据的正确性,包含通道的信用计数检验、报文链路层字段检验。事务报文的输入及信用计数方法为,如果为事务报文,信用计数减一,如果为信用返回报文,信用计数加一,信用值小于零时,报错;事务流的链路层字段检验,包含检验该报文的操作码字段是否为协议规范中规定数值,如果不符合规范则报错;所述协议层冲突监测,用于监测该报文是否符合CHI协议规范报文,如果不符合规范则报错,包含可监听请求报文是否存在一个RESP报文作为回复,监听请求报文EXP_COMP_ACK字段是否为真,不可监听请求报文ORDER字段是否为00。
参见图5,作为一种可选的实施方式,本实施例的协议分析模型模块3还包括覆盖率监测模块35,用于对数据包中所有报文分通道进行监测,每一个通道包含一个报文类型计数表,用于记录每一种报文类型发生次数;当监测到报文时,将当前报文操作码字段对应的事务类型的计数加一;监测完成时,将各个通道中所有报文类型的发生次数、报文类型的覆盖率进行统计输出到日志文件LOG。
综上所述,本实施例实现了对CHI总线的监测功能,通过对CHI总线信号的深入解析,成功实现了对事务流的追踪,能够对总线上的事务响应错误、超时错误、信用不足等问题进行主动报错,缩短问题定位时间;通过对通道报文的捕捉,实现对SoC中协议报文类型的覆盖率分析;本实施例设计了一种软硬件协同实现的监测器,将监测器中可综合部分放在FPGA原型平台上实现、不可综合部分在工作站中实现,使用DPI-C模式完成SV到C的传输,可以做到减少硬件资源占用的同时进行高效性能分析。本实施例软硬件协同实现了对CHI协议信号的监测功能,能够完成对事务流的追踪、对总线事务响应错误、超时错误、信用不足问题进行主动报错,实现了对SoC中协议报文类型的覆盖率分析,可用于应用于软件仿真和FPGA原型平台对SoC中的片上网络协议进行监测和分析,通过获取CHI协议各个节点之间的总线事务传输情况,到减少硬件资源占用的同时进行高效地性能分析,高效地完成协议分析,达到辅助定位验证中遇到问题的目的,可加速SoC问题的定位和性能分析,提升SoC设计效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种片上网络协议的软硬件协同监测方法,其特征在于,包括通过可综合的硬件部分中的共享函数体声明部件(12)提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件(12)提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文,然后将CHI报文不进行检验直接输出,或者对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出。
2.根据权利要求1所述的片上网络协议的软硬件协同监测方法,其特征在于,还包括通过可综合的硬件部分提供存储参数配置部件(11),以用于设置数据存储配置信息以供不可综合的软件部分使用,所述数据存储配置信息包含数据文件和日志文件LOG的输出位置、数据包参数配置文件位置以及待测SoC的节点号。
3.根据权利要求2所述的片上网络协议的软硬件协同监测方法,其特征在于,还包括通过可综合的硬件部分提供监测状态控制部件(13),以用于在没有监测需求时,将使能信号置低以停止捕捉待测SoC中的CHI报文,在有监测需求时,将使能信号置高以恢复捕捉待测SoC中的CHI报文,并输出传输CHI报文或监测结果。
4.一种使用权利要求1~3中任意一项所述的片上网络协议的软硬件协同监测方法的软硬件协同监测装置,包括相互连接的DPI-C接口和片上网络协议监测器,所述片上网络协议监测器包括:
数据传输模块(1),用于通过可综合的硬件部分提供共享函数体声明部件(11),以提供用于软件部分共享使用的函数体;通过不可综合的软件部分首先针对共享函数体声明部件提供的函数体进行实例化以从通过片上网络协议的各个通道捕捉待测SoC中的CHI报文;
数据片解码组码模块(2),用于对CHI报文进行解码和组码;
协议分析模型模块(3),用于对组码后的数据包进行指定的协议分析处理;
所述数据传输模块(1)通过绑定的方式与待测SoC中的CHI协议信号相连,所述数据传输模块(1)、数据片解码组码模块(2)、协议分析模型模块(3)依次相连,其中所述数据片解码组码模块(2)、协议分析模型模块(3)为不可综合的软件部分。
5.根据权利要求4所述的软硬件协同监测装置,其特征在于,所述数据传输模块(1)中的共享函数体声明部件(12)通过导入的方式在可综合的硬件部分中声明硬件部分与软件部分共享的函数体。
6.根据权利要求5所述的软硬件协同监测装置,其特征在于,所述数据传输模块(1)中不可综合的软件部分包括:数据片参数配置模块(14),用于设置CHI总线协议数据片的字段格式以支持不同的CHI协议,且使用参数输入的方法读入CHI协议的可配置参数字段,具体参数包含地址位宽、数据位宽、节点号位宽、事务号位宽、自定义位宽;监测器数据管理模块(15),用于完成共享的函数体的实例化,用于实现主请求通道、从数据通道、从反馈通道、从监听通道、主反馈通道、主数据通道的数据传输,不同数据由唯一的句柄索引标识其在句柄列表中的位置;监测器模式控制模块(16),用于通过宏定义的方法选择离线模式与在线模式,离线模式将CHI报文不进行检验直接输出,在线模式下对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出。
7.根据权利要求6所述的软硬件协同监测装置,其特征在于,所述监测器模式控制模块(16)在离线模式将CHI报文不进行检验直接输出包括:步骤1,当片上网络协议监测器使能信号置高时,监测时钟开始计数,根据存储参数配置部件(11)中的数据文件DAT输出位置创建数据文件DAT,并将数据文件DAT句柄保存在监测器数据管理模块(15)中的句柄列表中;步骤2,当被监测通道中的有效信号拉高时,将此时通道中的数据片完整信息、监测时钟计数、通道类型通过共享函数体传输至工作站,根据存储参数配置部件(11)中的节点号在句柄列表中查找数据文件DAT句柄,将数据输出在数据文件DAT中;步骤3,当片上网络协议监测器使能信号置低时,关闭数据文件DAT;所述监测器模式控制模块(16)在在线模式下对CHI报文进行解码、组码以及指定的协议分析处理后将监测结果输出包括:步骤1,当片上网络协议监测器使能信号置高时,监测时钟开始计数,根据存储参数配置部件(11)中的日志文件LOG输出位置,创建日志文件LOG,将日志文件LOG句柄保存在监测器数据管理模块(15)中的句柄列表中;步骤2,当被监测通道中的有效信号拉高时,将此时通道中的数据片完整信息、监测时钟计数、通道类型通过共享函数体传输至工作站中,由数据片解码组码模块(2)及协议分析模型模块(3)在线完成协议监测,根据存储参数配置部件(11)中的节点号在句柄列表中查找日志文件LOG句柄,将监测结果输出在日志文件LOG中;步骤3,当片上网络协议监测器使能信号置低时,关闭日志文件LOG。
8.根据权利要求7所述的软硬件协同监测装置,其特征在于,所述数据片解码组码模块(2)包括:解码模块,用于对数据包进行操作,按照数据传输模块(1)中数据包参数配置模块(14)中传入的数据片字段格式,对CHI协议中主请求通道、从数据通道、从反馈通道、从监听通道、主反馈通道、主数据通道六个通道中报文根据CHI协议规范分别进行解码,将完整数据片根据位宽通过移位和与或操作分解为各个字段信息,将解码后的字段信息存储在数据片结构体中;组码模块,用于将数据片结构体中数据解析为事务流控制变量;所述事务流控制变量具体包含按照操作码字段映射得到的是否为无数据类型报文、是否为可监听类型报文、是否为原子类型报文、是否为缓存状态设置相关报文、是否为DVM类型报文,以及按照是否进行反馈确认映射得到是否需要一个反馈报文;所述解码模块和组码模块相互连接,所述解码模块和数据传输模块(1)的输出端相连,所述组码模块的输出端用于输出组码后的数据包,并同时将组码后的数据包作为协议分析模型模块(3)的输入。
9.根据权利要求8所述的软硬件协同监测装置,其特征在于,所述协议分析模型模块(3)包括:
事务流追踪模块(31),用于将数据片解码组码模块(2)发送的数据转化为以事务流顺序为存储结构的事务流数据,且事务流数据包中使用请求和监听两种事务流结构体对事务流进行存储,所述事务流结构体包含一个请求或监听报文、一组数据报文、一个反馈报文、事务流计数、事务流操作解析变量以及结构体初始化函数;事务流计数用于标记事务生命周期的进行状态,每监测到报文,将事务流计数减一,计数为零时事务流生命周期结束;事务流操作解析变量用于确定事务流后续报文类型,包含:是否为无数据类型报文、是否为可监听类型报文、是否为原子类型报文、是否为缓存状态设置相关报文、是否为DVM类型报文;所述结构体初始化函数用于初始化所有事务流操作解析变量、事务计数初始值和报文;
链路层检验模块(32),用于检验六种通道链路层数据的正确性,包含通道的信用计数检验、报文链路层字段检验;
协议层检验模块(33),用于检验六种通道协议层事务流的正确性,进行详细地事务流的分析与冲突监测;
问题反馈模块(34),用于控制监测器发现致命错误的后续操作,当链路层输入模块与协议层检验模块监测到问题发生时,主动上报错误,并将问题发生的事务流完整信息和基本错误提示输出在监测日志中,根据监测器的设置可以选择停止或继续仿真;
所述事务流追踪模块(31)、链路层检验模块(32)以及协议层检验模块(33)依次相连,所述链路层检验模块(32)和协议层检验模块(33)分别与问题反馈模块(34)相连。
10.根据权利要求9所述的软硬件协同监测装置,其特征在于,所述协议分析模型模块(3)还包括覆盖率监测模块(35),用于对数据包中所有报文分通道进行监测,每一个通道包含一个报文类型计数表,用于记录每一种报文类型发生次数;当监测到报文时,将当前报文操作码字段对应的事务类型的计数加一;监测完成时,将各个通道中所有报文类型的发生次数、报文类型的覆盖率进行统计输出到日志文件LOG。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211483323.1A CN115730546A (zh) | 2022-11-24 | 2022-11-24 | 一种片上网络协议的软硬件协同监测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211483323.1A CN115730546A (zh) | 2022-11-24 | 2022-11-24 | 一种片上网络协议的软硬件协同监测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115730546A true CN115730546A (zh) | 2023-03-03 |
Family
ID=85297913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211483323.1A Pending CN115730546A (zh) | 2022-11-24 | 2022-11-24 | 一种片上网络协议的软硬件协同监测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115730546A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938451A (zh) * | 2023-09-14 | 2023-10-24 | 飞腾信息技术有限公司 | 一种密码运算方法、装置、片上***及设备 |
-
2022
- 2022-11-24 CN CN202211483323.1A patent/CN115730546A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938451A (zh) * | 2023-09-14 | 2023-10-24 | 飞腾信息技术有限公司 | 一种密码运算方法、装置、片上***及设备 |
CN116938451B (zh) * | 2023-09-14 | 2023-12-22 | 飞腾信息技术有限公司 | 一种密码运算方法、装置、片上***及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324526B (zh) | 接口测试***、方法和服务器 | |
JP2022537620A (ja) | 人工知能チップ検証 | |
US20090248390A1 (en) | Trace debugging in a hardware emulation environment | |
CN112380255A (zh) | 一种业务处理方法、装置、设备和存储介质 | |
CN115730546A (zh) | 一种片上网络协议的软硬件协同监测方法及装置 | |
CN114880176A (zh) | 一种航空数据转换单元测试***、方法及装置 | |
CN107480056A (zh) | 一种软件测试方法和装置 | |
CN116909934B (zh) | 电子自动化设计软件的命令测试方法、装置、设备及介质 | |
CN111859833B (zh) | 可配置***级验证环境构造方法、***及介质 | |
CN116090380B (zh) | 数字集成电路验证的自动化方法及装置、存储介质和终端 | |
CN112731117A (zh) | 芯片的自动验证方法和***,及存储介质 | |
CN113079061A (zh) | 一种物联网性能测试方法及*** | |
CN115185825A (zh) | 接口测试的调度方法及装置 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理*** | |
EP4081911A1 (en) | Edge table representation of processes | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
CN115239212B (zh) | 空气质量模式的监控方法、设备、***及存储介质 | |
CN114840178B (zh) | 基于数字化仿真平台的工艺文件生成方法、装置及设备 | |
CN114448851B (zh) | 一种数据自动化测试方法及*** | |
CN116450305B (zh) | 基于分布式任务调度的soar平台组件执行方法与装置 | |
CN113900874A (zh) | 一种测试向量管理***及测试向量管理方法 | |
CN116414702A (zh) | 一种uvm寄存器覆盖率代码快速生成方法 | |
CN113835941A (zh) | 基于可编程芯片的用例测试方法及装置 | |
CN116204420A (zh) | 一种模块级Simulink测试用例稳定生成方法 | |
CN117151479A (zh) | 基于故障树模型的工程审计风险溯源方法、装置及介质 |
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 |