CN115130402B - 一种缓存验证方法、系统、电子设备及可读存储介质 - Google Patents
一种缓存验证方法、系统、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115130402B CN115130402B CN202211044099.6A CN202211044099A CN115130402B CN 115130402 B CN115130402 B CN 115130402B CN 202211044099 A CN202211044099 A CN 202211044099A CN 115130402 B CN115130402 B CN 115130402B
- Authority
- CN
- China
- Prior art keywords
- bus
- design
- information
- tested
- cache
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种缓存验证方法、系统、电子设备及可读存储介质,该方法包括:获取被测设计的顶层描述信息,所述顶层描述信息为用于描述所述被测设计的结构化信息,所述被测设计为具有缓存功能的电路设计;根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;按照预先设定的激励模式生成激励,所述激励用于对所述被测设计进行验证;根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。本发明实施例可以降低缓存验证成本,提高缓存验证的适用范围和验证效率。并且,本发明实施例还可以支持多种激励模式,增加了缓存验证的覆盖率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种缓存验证方法、系统、电子设备及可读存储介质。
背景技术
在中央处理器(Central Processing Unit,CPU)和片上系统(System on Chip,SoC)的设计中,通常会引入高速缓存(Cache)来改善带宽和延迟。Cache的协议普遍比较复杂,且Cache的中间状态繁多,导致Cache的正确性验证面临诸多问题。当前主要存在两类验证方法:一类是构建一个参考设计(Reference,Ref)与Cache的被测设计(Design UnderTest,DUT)进行实时的差分对比,确保DUT和Ref的功能、操作行为、实现结果等完全一致;另一类是基于某一类总线协议设计验证模板(Verification IP,VIP),通过VIP对DUT进行仿真验证。
其中,在第一类验证方法中,需要针对每一种DUT构建对应的REF,成本较高,且验证过程复杂。在第二类验证方法中,现有的VIP通常是面向单一总线端口的,需要验证人员手动配置VIP与DUT之间的接口以适配DUT的缓存拓扑结构,操作过程复杂,验证效率较低。
发明内容
本发明实施例提供一种缓存验证方法、系统、电子设备及可读存储介质,可以解决现有技术中缓存验证的成本高、验证效率低的问题。
为了解决上述问题,本发明实施例公开了一种缓存验证方法,所述方法包括:
获取被测设计的顶层描述信息,所述顶层描述信息为用于描述所述被测设计的结构化信息,所述被测设计为具有缓存功能的电路设计;
根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;
按照预先设定的激励模式生成激励,所述激励用于对所述被测设计进行验证;
根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;
基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。
另一方面,本发明实施例公开了一种缓存验证系统,所述系统包括:
顶层描述获取模块,用于获取被测设计的顶层描述信息,所述顶层描述信息为用于描述所述被测设计的结构化信息,所述被测设计为具有缓存功能的电路设计;
编译处理模块,用于根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;
激励生成模块,用于按照预先设定的激励模式生成激励,所述激励用于对所述被测设计进行验证;
仿真处理模块,用于根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;
缓存验证模块,用于基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。
再一方面,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述的缓存验证方法。
本发明实施例还公开了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的缓存验证方法。
本发明实施例包括以下优点:
本发明实施例提供了一种缓存验证方法,通过获取被测设计的顶层描述信息,根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;然后,按照预先设定的激励模式生成激励,并根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;最后,根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息,基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。相比于现有技术中构建参考设计与被测设计进行差分比对的方法,本发明实施例基于一致性总线协议进行缓存验证,无需针对每一种被测设计构建对应的参考设计,降低了验证成本,提高了缓存验证效率。并且,相比于现有技术中构建面向单一总线端口的验证模板的方法,本发明实施例提供的缓存验证方法,无需手动配置验证模板与被测设计之间的接口,可以根据被测设计的顶层描述信息自动对被测设计进行编译处理得到可执行文件,解决了在被测设计频繁变动的场景下如何进行缓存验证的问题,提高了缓存验证的适用范围和验证效率。此外,本发明实施例可以按照预先设定的激励模式生成激励,支持多种激励模式,增加了缓存验证的覆盖率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种缓存验证方法实施例的步骤流程图;
图2是本发明的一种缓存验证系统实施例的结构框图;
图3是本发明示例提供的一种用于缓存验证的电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
方法实施例
参照图1,示出了本发明的一种缓存验证方法实施例的步骤流程图,所述方法具体可以包括如下步骤:
步骤101、获取被测设计的顶层描述信息,所述顶层描述信息为用于描述所述被测设计的结构化信息,所述被测设计为具有缓存功能的电路设计。
步骤102、根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件。
步骤103、按照预先设定的激励模式生成激励,所述激励用于对所述被测设计进行验证。
步骤104、根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息。
步骤105、基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。
需要说明的是,本发明中的“设计”指的是一组具有特定功能的电路设计,所述被测设计为具有缓存功能的电路设计。可以理解的是,一个芯片由多个电路设计模块组合而成,例如,一个芯片可以包括缓存模块、取指模块等。为了验证芯片设计的正确性,通常会分别验证芯片中各个模块的正确性,然后再对芯片整体进行验证。本发明实施例提供的缓存验证方法,用于对芯片中的缓存模块进行正确性验证。本发明中的“缓存”、“缓存模块”均指高速缓存Cache。
Cache是位于CPU和DRAM(Dynamic Random Access Memory,动态随机存取存储器)主存之间的缓存存储器,其规模较小,但速度很高,通常由SRAM(Static Random AccessMemory,静态存储器)组成。CPU的通用寄存器的速度远高于主存,当CPU直接从主存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可以从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,提高了系统的访存速度。
在CPU和SoC设计中,通常会引入Cache来改善带宽和延迟,Cache的正确性验证成为了CPU和SoC设计中的一个重要环节。本发明实施例提供的缓存验证方法,主要基于Tilelink总线协议对缓存进行正确性验证。其中,TileLink协议是一种片上的一致性总线协议,可为多个主设备提供与从设备一致的内存映射访存。TileLink协议主要用于片上系统,可用于连接通用多处理器、协处理器、加速器、DMA引擎以及简单或复杂的设备,使用快速可扩展互连以提供低延迟和高吞吐量数据搬运。
本发明实施例在具有缓存功能的被测设计进行正确性验证时,先获取被测设计的顶层描述信息。需要说明的是,所述被测设计的顶层描述信息为用于描述所述被测设计的结构化信息。在本发明中,所述顶层描述信息可以采用自定义的一组JSON格式书写,所述顶层描述信息可以包括但不限被测设计的主从复制(Master & Slave)个数、总线参数、自定义数据域格式等。其中,主从复制指的是主机数据更新后根据配置和策略,自动同步到备机的Master / Slave机制,Master以写为主,Slave以读为主。所述总线参数指的是被测设计中处理器核与缓存之间的总线的参数,具体可以包括但不限于TileLink协议中规定的地址位宽、以字节为单位的数据总线宽度,也即数据位宽、大小字段的位宽、区分源(主)端所需的比特数、区分终(从)端所需的比特数等。所述自定义数据域格式指的是总线事务信息中数据的格式,所述总线事务信息包括总线请求事务和总线响应事务对应的信息。
获取到被测设计的顶层描述信息之后,根据顶层描述信息对被测设计进行编译处理,得到被测设计的可执行文件。其中,所述可执行文件可以为被测设计和验证模板组合起来的验证系统。示例性地,可以使用Verilator 软件把被测设计编译成一个仿真器,然后与验证模板进行组合得到一个验证系统。其中,所述验证模板用于给编译的仿真器注入激励。
需要说明的是,本发明中的激励(stimutli)指的是用于对被测设计进行缓存验证的测试请求。在本发明实施例中,可以按照预先设定的激励模式生成激励。其中,所述激励模式可以包括但不限于随机激励模式、定向激励模式和预取激励模式。
作为一种示例,所述激励模式包括随机激励模式,所述按照预先设定的激励模式生成激励,包括:按照一致性总线协议的规定确定总线请求类型和每种总线请求类型对应的总线参数的取值范围;根据所述总线请求类型和每种总线请求类型对应的总线参数的取值范围,随机生成激励。在随机激励模式下,激励的总线请求类型、总线参数都可以随机产生。具体地,可以先按照一致性总线协议的规定,确定总线请求类型和每种总线请求类型对应的总线参数的取值范围;然后,根据总线请求类型以及总线参数的取值范围随机生成激励。随机激励模式下生成的激励,可以对被测设计的大部分功能进行测试。
作为另一种示例,所述激励模式包括定向激励模式,所述按照预先设定的激励模式生成激励,包括:获取用户设定的激励约束条件,所述激励约束向量包括生成激励的时间戳、总线请求类型和总线参数中的至少一项;根据所述激励约束条件生成激励。在定向激励模式下,用户可以预先设定激励约束条件,如生成激励的时间戳、总线请求类型、总线参数定向激励模式下生成的激励,可以对随机激励覆盖不到的功能进行测试。在实际应用中,可以提供一个通用的激励接口,以供用户灵活编写所需的定向激励。
作为又一种示例,所述激励模式包括预取激励模式,所述预取激励模式对应的总线请求类型为总线预取请求。在本发明实施例中,还支持总线预取请求的激励的生成。可以理解的是,在预取激励模式下,生成的激励的总线请求类型均为总线预取请求,其他的参数,如生成激励的时间戳、总线参数等,可以根据TileLink协议确定,也可以由用户设定。
相比于现有的生成随机激励进行缓存验证的方法,本发明实施例提供的缓存验证方法,不仅支持随机激励模式,还支持定向激励模式和预取激励模式,可以对随机激励覆盖不到的功能进行验证,能够充分模拟被测设计在真实环境中的行为,提升了验证覆盖率,有利于提高缓存验证效率。
生成激励之后,根据激励对可执行文件进行仿真处理,得到总线响应信息。示例性地,以所述可执行文件包括对被测设计进行编译得到的仿真器和验证模板组合起来的验证系统为例,可以通过验证模板将激励注入到仿真器中,仿真器接收到激励后,根据激励携带的总线请求类型、总线参数等进行处理器核与缓存之间的总线请求事务的仿真,得到总线响应信息。
可选地,所述根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息,包括:根据所述激励生成总线请求事务;将所述总线请求事务发送至所述可执行文件的处理器核与缓存之间的总线上进行仿真处理,得到总线响应信息。在本发明实施例中,可以对激励进行包装,按照TileLink协议规定的总线请求事务的格式生成总线请求事务,然后将生成的总线请求事务发送至可执行文件的处理器核与缓存之间的总线上进行仿真处理,得到总线响应信息。根据激励生成的总线请求事务的请求类型、总线参数与预先设定的激励模式对应的总线请求类型和总线参数相匹配。
最后,基于TileLink协议对可执行文件的总线响应信息进行检查,得到检查结果。可以理解的是,TileLink协议中规定了总线上的事务信息(包括总线请求信息和总线响应信息)合法的情况与非法的情况。根据TileLink协议的规定,可以判断总线响应信息是否非法。例如,可执行文件的激励为“Acquire NtoT 请求” ,即请求 T 权限,得到的总线响应信息为“GrantAck toB”,即响应 B 权限,显然,响应的权限与请求的权限不一致,按照TileLink协议,该总线响应信息非法,换言之,本次的验证结果为验证失败。在另一种可能的验证场景中,假设可执行文件的激励为定向激励,激励约束条件为数据位宽为6,也即请求数据,总线响应信息仅返回了256 bit数据,显然,响应的数据与请求的数据不一致,按照TileLink协议,该总线响应信息非法,等等。诸如此类,按照TileLink协议对每一组激励和总线响应信息进行检查,得到验证结果。
相比于现有技术中构建参考设计与被测设计进行差分比对的方法,本发明实施例提供的缓存验证方法,无需针对每一种被测设计构建对应的参考设计,降低了验证成本,提高了缓存验证效率。相比于现有技术中构建面向单一总线端口的验证模板的方法,本发明实施例提供的缓存验证方法,无需手动配置验证模板与被测设计之间的接口,可以根据被测设计的顶层描述信息自动对被测设计进行编译处理得到可执行文件,解决了在被测设计频繁变动的场景下如何进行缓存验证的问题,提高了缓存验证的适用范围;并且,本发明实施例可以按照预先设定的激励模式生成激励,支持多种激励模式,增加了缓存验证的覆盖率,提高了缓存验证效率。
在本发明的一种可选实施例中,步骤102所述根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件,包括:
子步骤1021、根据所述顶层描述信息生成被测设计和验证模板之间的连接逻辑;
子步骤1022、根据所述连接逻辑对所述被测设计和所述验证模板进行编译处理,得到所述被测设计对应的可执行文件。
在本发明实施例中,在生成被测设计对应的可执行文件时,可以先根据顶层描述信息生成被测设计与验证模板之间的连接逻辑。示例性地,可以利用专门的Python 脚本对被测设计的顶层描述信息进行解读,将结构化语言,如JSON格式编写的顶层描述信息,转换为可编译C语言、C++语言等的连接代码,得到被测设计与验证模板之间的连接逻辑。然后,根据该连接逻辑对被测设计和验证模板进行编译处理,得到可执行文件。
本发明实施例可以根据被测设计的顶层描述信息自动生成被测设计与验证模板之间的连接逻辑,进而根据连接逻辑生成可执行文件,无需用户手动连接被测设计与验证模板,使得验证模板能够自适应匹配多种被测设计,提高了缓存验证的适用性和灵活性。
可选地,所述顶层描述信息包括所述被测设计的拓扑结构信息和一致性总线协议规定的总线参数,子步骤1021所述根据所述顶层描述信息生成被测设计和验证模板之间的连接逻辑,包括:
步骤S11、根据所述被测设计的拓扑结构信息确定验证模板与所述被测设计之间的接口数;
步骤S12、按照所述接口数和所述总线参数配置所述验证模板与所述被测设计之间的接口,所述接口符合片上系统的一致性总线协议,且所述接口的数据传输参数与所述总线参数相匹配;
步骤S13、根据所述验证模板和所述被测设计之间的接口,生成所述被测设计与所述验证模板之间的连接逻辑。
作为一种示例,所述被测设计的顶层描述信息可以包括被测设计的拓扑结构信息和TileLink协议规定的总线参数。其中,所述拓扑结构信息用于指示被测设计中的各个功能模块、单元、节点之间的连接关系;所述总线参数用于指示所述被测设计中处理器核与缓存之间的传输数据所需遵循的规则。在本发明实施例中,可以根据被测设计的拓扑结构信息确定验证模板与被测设计之间的接口数。示例性地,可以先根据拓扑结构信息可以确定被测设计的处理器核的数目与缓存级数,再根据被测设计的处理器核数与缓存级数确定被测设计与验证模板之间的接口数。例如,被测设计仅包含一个处理器核,被测设计的缓存为三级缓存,其中,一级缓存L1cache为核内缓存,主要集成在CPU内部,每个处理器核都独占一个L1 Cache;二级缓存L2 Cache是L1 Cache的缓冲器,每个处理器核上都有一个独立的L2 Cache;三级缓存L3 Cache是所有的处理器核共享。通常情况下,L1 Cache包括一级指令高速缓存器L1I- Cache和一级数据高速缓存器L1D- Cache共2个一级高速缓存器,其中,L1I- Cache负责存储指令,L1D- Cache负责存储数据,那么,该被测设计与验证模板之间的接口数为处理器核数*一级高速缓存器的数目=1*2=2。同理,如果被测设计包括2个处理器核,缓存为三级缓存,则该被测设计与验证模板之间的接口数为4。
需要说明的是,被测设计与验证模板之间的接口均符合片上系统的TileLink协议,且接口的数据传输参数与TileLink协议的总线参数相匹配。示例性地,所述总线参数包括TileLink协议中规定的地址位宽、以字节为单位的数据总线宽度,也即数据位宽、大小字段的位宽、区分源(主)端所需的比特数、区分终(从)端所需的比特数等。在TileLink协议中,数据位宽以字节为单元,必须是2的整次幂,则被测设计与验证模板之间的数据传输参数中的数据位宽也必须以字节为单元,必须是2的整次幂。
根据验证模板与被测设计之间的接口,就可以生成被测设计与验证模板之间的连接逻辑。具体地,可以采用C语言或C++语言将被测设计与验证模板之间的接口数、接口的数据传输参数等信息编译出来,得到验证模板与被测设计之间的连接逻辑。
在本发明的一种可选实施例中,步骤101所述获取被测设计的顶层描述信息之后,所述方法还包括:
步骤S21、根据所述顶层描述信息配置数据计分板和权限计分板,其中,所述数据计分板用于记录所述被测设计中各个缓存块的数据信息;所述权限计分板用于记录所述被测设计中各个缓存块的属性信息;
步骤105所述基于一致性总线协议对所述总线响应信息进行检查,得到验证结果,包括:
步骤S22、根据所述数据计分板和所述权限计分板对所述总线响应信息进行检查;
步骤S23、若所述总线响应信息中的数据域信息与所述数据计分板中记录的数据信息不匹配,或者所述总线响应信息中的非数据域信息与所述权限计分板中记录的属性信息不匹配,则确定所述被测设计的验证结果为验证失败;
步骤S24、若所述总线响应信息中的非数据域信息与所述权限计分板中记录的属性信息相匹配,则根据所述总线响应信息更新所述权限计分板;
步骤S25、若所述总线响应信息中的数据域信息与所述数据计分板中记录的数据信息相匹配,则根据所述总线响应信息更新所述数据计分板。
在本发明实施例中,在获取到被测设计的顶层描述信息之后,还可以根据顶层描述信息配置数据计分板和权限计分板。其中,所述数据计分板用于记录所述被测设计中各个缓存块的数据信息,所述数据信息可以包括但不限于缓存块中的最新数据和将要写入缓存块的数据。所述权限计分板用于记录所述被测设计中各个缓存块的属性信息,所述属性信息可以包括但不限于缓存块的访存时间戳、权限、别名位、脏位等信息。
缓存块是缓存的基本单元,权限计分板和数据计分板中记录的信息均以缓存块的地址为索引。缓存块的别名位指的是缓存块的虚地址映射中Set的低位;缓存块的脏位用于指示该缓存块中的数据相对于内存是脏数据还是干净数据,脏数据指的是被修改过的数据。缓存块的权限为TileLink协议中规定的缓存块的读写权限,可以包括但不限于:1)Invalid:无效;2)Tip:独占读写权限;3)Branch:共享读权限;4)Trunk:上层有独占读写权限。其中,所述上层指的是处理器核,一旦缓存块的权限为Trunk,则访存出错。在权限计分板中,可以仅记录前3种权限。
数据计分板和权限计分板可以监听处理器核与缓存之间的总线上发生的任何主动或被动的总线事务,并根据监听结果更新自身数据。
配置数据计分板和权限计分板之后,在基于TileLink协议对激励的总线响应信息进行检查时,可以将总线响应信息中的数据域信息,如总线响应数据,与数据计分板中记录的数据信息进行匹配。如果总线响应信息中的数据域信息与数据计分板中记录的数据信息不匹配,则可以确定被测设计的验证结果为验证失败。例如,输入的激励的数据位宽为6,也即请求数据,那么数据计分板在监听到该激励对应的总线请求事务后,会把将要写入缓存块的数据更新为“512 bit”,总线响应信息仅返回了256 bit数据,显然,与数据计分板中记录的数据信息不匹配,可以确定验证失败,不对数据计分板中的记录进行更新。反之,如果总线响应信息中的数据域信息与数据计分板中记录的数据相匹配,例如总线响应信息返回了512 bit数据,则可以根据总线响应信息更新数据计分板,例如,将数据计分板中的最新数据(也即当前数据)更新为总线响应信息中的512bit的数据。
将总线响应信息中的非数据域信息,如总线请求类型、缓存块的权限、地址等信息,与权限计分板中记录的缓存块的属性信息进行匹配,如果总线响应信息中的非数据域信息与权限计分板中记录的属性信息不匹配,则可以确定被测设计的验证结果为验证失败。例如,激励为“Acquire NtoT 请求” ,即请求 T 权限,权限计分板在监听到该激励对应的总线请求事务后,将对应缓存块的权限更新为T权限。假设得到的总线响应信息为“GrantAck toB”,即响应 B 权限,显然,与权限计分板中记录的权限不匹配,则可以确定被测设计的验证结果为验证失败,不更新权限计分板中的记录。反之,如果总线响应信息中的非数据域信息与权限计分板中记录的属性信息相匹配,则根据总线响应信息更新权限计分板。
需要说明的是,在本发明实施例中,只要总线响应信息与数据计分板、权限计分板中的任意一项不匹配,就可以确定验证失败。
本发明实施例提供的缓存验证方法,可以基于被测设计的顶层描述信息配置符合TileLink协议的数据计分板和权限计分板进行总线事务信息的实时记录,从而可以根据数据计分板和权限计分板对被测设计的总线响应信息进行检查,提高了缓存验证的灵活性和验证效率。
在本发明的一种可选实施例中,所述顶层描述信息包括所述被测设计的拓扑结构信息和一致性总线协议规定的总线参数,步骤S21所述根据所述顶层描述信息配置数据计分板和权限计分板,包括:
子步骤S211、根据所述被测设计的拓扑结构信息确定权限计分板的数目N;
子步骤S212、根据所述总线参数确定数据计分板的第一存储空间和权限计分板的第二存储空间;
子步骤S213、根据所述第一存储空间配置1个数据计分板,并根据所述第二存储空间配置N个权限计分板。
其中,所述拓扑结构信息用于指示被测设计中的各个功能模块、单元、节点之间的连接关系;所述总线参数用于指示所述被测设计中处理器核与缓存之间的传输数据所需遵循的规则。
在本发明实施例中,可以根据被测设计的拓扑结构信息确定权限计分板的数目,以便配置的权限计分板能够全面记录被测设计中所有缓存块的属性信息。可选地,所述权限计分板的数目等于验证模板与所述被测设计之间的接口数。在本发明实施例中,可以先根据被测设计的拓扑结构信息确定被测设计与验证模板之间的接口数,然后将该接口数确定为权限计分板的个数,使得每一个接口对应一个权限计分板。
所述数据计分板为全局计分板,只有一个,以缓存块的地址为索引,记录每个缓存块的数据信息。
TileLink协议规定的总线参数可以反映各个缓存块中记录的数据需要满足的条件,根据总线参数,可以预估缓存块的数据信息、属性信息的大小,进而可以确定数据计分板和权限计分板的大小。
可选地,所述一致性总线协议规定的总线参数包括缓存块的状态位宽、权限位宽、和数据状态位宽。其中,缓存块的状态位宽用于反映缓存块的状态的数据大小。缓存块的状态共有10种:1)S_INVALID:缓存块为无效状态;2)S_VALID:缓存块为稳定的有效状态,无待定的请求;3)S_SENDING_A:正在准备发送缓存块的A通道请求,也即主端想要获取该缓存块中的数据;4)S_REACTING_B:正在准备响应针对缓存块的B通道请求,也即从端想要无效掉该缓存块;5)S_SENDING_C:正在准备发送缓存块的C通道请求,也即主端主动或被动释放该缓存块;6)S_C_WAITING_D:已发送完C通道请求,等待D通道响应;7)S_A_WAITING_D:已发送完A通道请求,等待D通道响应;8)S_C_WAITING_D_INTR:已发送完C通道请求,等待D通道响应过程中,收到了打断的B通道请求,在这种情况下,根据优先级,要先处理B通道请求,再处理D通道请求;9)S_A_WAITING_D_INTR:已发送完A通道请求,等待D通道响应过程中,收到了打断的B通道请求,在这种情况下,根据优先级,要先处理B通道请求,再处理D通道请求;10)S_SENDING_E:正在准备发送缓存块的E通道请求,也即在收到从端回复的数据,向从端发送响应。
需要说明的是,TileLink协议包括A、B、C、D、E共五个通道,其中,A通道为读写请求通道,包含读写地址、写数据、请求类型等信息;B通道为Slave(从端)请求通道,包含请求地址、请求类型等信息;C通道为Slave(从端)数据返回通道,包含地址、数据、返回类型等信息;D通道为读数据返回通道,包含读数据、返回类型等信息;E通道为D通道的返回通道,表示Master(主端)收到了D通道的数据。
权限位宽用于反映描述缓存块的权限所需的存储空间大小,在本发明实施例中,缓存块的权限有4中,缓存块的权限位宽可以为2。
数据状态位宽用于反映描述缓存块的数据状态所需的存储空间大小。在本发明实施例中,缓存块的数据状态用于反映缓存块是否有效,共包含3种数据状态:1)SB_INVALID:该缓存块无效;2)SB_VALID 该缓存块稳定有效;3)SB_PENDING:该缓存块即将被写入。本发明中缓存块的数据状态位宽为3。
在本发明实施例中,可以根据TileLink协议规定的总线参数确定数据计分板的第一存储空间和权限计分板的第二存储空间。具体地,所述第一存储空间和所述第二存储空间可以表示为:
其中,M1为数据计分板的第一存储空间,d为缓存块的地址位宽,A为缓存块大小,也即缓存块的存储空间,s为缓存块的数据状态位宽;M2为权限计分板的第二存储空间,t为缓存块的时间戳位宽,b为缓存块的别名位位宽,zh为缓存块的状态位宽,q为权限位宽,z为脏位位宽。缓存块大小、缓存块的地址位宽、时间戳位宽、别名位位宽、脏位位宽均可以根据被测设计中缓存块的属性信息确定。
确定出权限计分板的数目N,以及数据计分板的第一存储空间、权限计分板的第二存储空间之后,根据第一存储空间配置1个数据计分板,根据第二存储空间配置N个权限计分板,以便利用数据计分板和权限计分板进行总线事务信息的实时记录。
在本发明的一种可选实施例中,步骤103所述被测设计包括片上系统的寄存器传输级电路设计,所述寄存器传输级电路设计包含处理器核和多级缓存,所述按照预先设定的激励模式生成激励,包括:
步骤S31、在所述寄存器传输级电路设计的处理器核与多级缓存之间的总线上设置数据探针,所述数据探针用于传递所述总线上的第一事务信息;
步骤S32、基于所述数据探针获取所述总线上的第一事务信息,所述第一事务信息包括所述总线上的总线请求信息和总线响应信息;
步骤S33、根据所述总线请求信息和总线响应信息生成激励。
本发明实施例提供的缓存验证方法,还可以对片上系统(System on Chip,SoC)的寄存器传输级电路设计(Register Transfer Level,RTL)进行缓存验证。具体地,可以在SoC RTL的处理器核与多级缓存之间的总线上设置数据探针,所述数据探针用于传递SoCRTL总线上的第一事务信息。作为一种示例,可以在SoC RTL代码中增加DPI-C接口,将DPI-C接口作为数据探针,获取SoC RTL的第一事务信息并调用C函数,将第一事务信息传递出去。其中,所述第一事务信息包括SoC RTL总线上的总线请求信息和总线响应信息。基于数据探针获取到SoC RTL总线上的第一事务信息之后,可以根据第一事务信息生成激励,并在缓存验证过程中,将生成的激励注入到被测设计对应的可执行文件中进行仿真,得到总线响应信息,最后基于TileLink协议对该总线响应信息进行检查,得到验证结果。
本发明实施例可以在SoC RTL运行过程中通过数据探针实时获取SoC RTL的总线事务信息,并根据获取的总线事务信息生成激励进行缓正确性存验证,提升了缓存验证的覆盖率和验证效率。
在本发明的一种可选实施例中,所述被测设计包括仿真器,所述仿真器用于对芯片进行仿真处理,步骤103所述按照预先设定的激励模式生成激励,包括:
步骤S41、获取所述仿真器的仿真结果;
步骤S42、若所述仿真器的仿真结果为仿真失败,则获取所述仿真器的处理器核与缓存之间的总线上的第二事务信息,所述第二事务信息包括总线时序信息和缓存延迟信息;
步骤S43、根据所述总线时序信息和所述缓存延迟信息生成激励。
本发明实施例提供的缓存验证方法,还可以对仿真器的出错场景进行复现,以便测试人员定位仿真器的出错原因并对仿真器进行优化。所述仿真器包括FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)或仿真加速器等用于对芯片进行仿真处理的仿真器或仿真模块。
本发明实施例在获取到仿真器的仿真结果之后,可以对仿真结果进行分析,判断是否仿真成功。如果仿真结果为仿真失败,例如,仿真过程中断、仿真结果与预期结果不匹配等,则可以获取仿真器的处理器核与缓存之间的总线上的第二事务信息。其中,所述第二事务信息包括总线时序信息和缓存延迟信息。所述总线时序信息用于反映总线上发生的各项总线事务时间戳,缓存延迟信息用于反映各级缓存之间的延迟。当总线时序信息和缓存延迟信息确定之后,仿真器中的各项总线事务的发生顺序就是确定的。根据述总线时序信息和所述缓存延迟信息生成激励可以生成确定性激励,将生成的激励输入至被测设计对应的可执行文件进行仿真,就可以对仿真器的出错场景进行复现,便于快速定位错误。
可选地,所述方法还包括:若确定所述被测设计的验证结果为验证失败,则将所述激励对应的事务信息存储至内存数据库中,所述事务信息包括总线事务对应的时间戳、总线请求类型、总线参数、内存地址、总线事务数据中的至少一项。
在本发明实施例中,当被测设计的验证结果为验证失败时,可以将总线上的事务信息存储至内存数据库中,以供用户查看。
综上,本发明实施例提供了一种缓存验证方法,通过获取被测设计的顶层描述信息,根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;然后,按照预先设定的激励模式生成激励,并根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;最后,根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息,基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。相比于现有技术中构建参考设计与被测设计进行差分比对的方法,本发明实施例基于一致性总线协议进行缓存验证,无需针对每一种被测设计构建对应的参考设计,降低了验证成本,提高了缓存验证效率。并且,相比于现有技术中构建面向单一总线端口的验证模板的方法,本发明实施例提供的缓存验证方法,无需手动配置验证模板与被测设计之间的接口,可以根据被测设计的顶层描述信息自动对被测设计进行编译处理得到可执行文件,解决了在被测设计频繁变动的场景下如何进行缓存验证的问题,提高了缓存验证的适用范围和验证效率。此外,本发明实施例可以按照预先设定的激励模式生成激励,支持多种激励模式,增加了缓存验证的覆盖率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
系统实施例
参照图2,示出了本发明的一种缓存验证系统实施例的结构框图,所述系统具体可以包括:
顶层描述获取模块201,用于获取被测设计的顶层描述信息,所述顶层描述信息为用于描述所述被测设计的结构化信息,所述被测设计为具有缓存功能的电路设计;
编译处理模块202,用于根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;
激励生成模块203,用于按照预先设定的激励模式生成激励,所述激励用于对所述被测设计进行验证;
仿真处理模块204,用于根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;
缓存验证模块205,用于基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。
可选地,所述编译处理模块,包括:
连接逻辑生成子模块,用于根据所述顶层描述信息生成被测设计和验证模板之间的连接逻辑;
编译处理子模块,用于根据所述连接逻辑对所述被测设计和所述验证模板进行编译处理,得到所述被测设计对应的可执行文件。
可选地,所述顶层描述信息包括所述被测设计的拓扑结构信息和一致性总线协议规定的总线参数,所述连接逻辑生成子模块,包括:
接口数确定单元,用于根据所述被测设计的拓扑结构信息确定验证模板与所述被测设计之间的接口数;
接口配置单元,用于按照所述接口数和所述总线参数配置所述验证模板与所述被测设计之间的接口,所述接口符合片上系统的一致性总线协议,且所述接口的数据传输参数与所述总线参数相匹配;
连接逻辑生成单元,用于根据所述验证模板和所述被测设计之间的接口,生成所述被测设计与所述验证模板之间的连接逻辑。
可选地,所述系统还包括:
计分板配置模块,用于根据所述顶层描述信息配置数据计分板和权限计分板,其中,所述数据计分板用于记录所述被测设计中各个缓存块的数据信息;所述权限计分板用于记录所述被测设计中各个缓存块的属性信息;
所述缓存验证模块,包括:
信息检查子模块,用于根据所述数据计分板和所述权限计分板对所述总线响应信息进行检查;
验证结果确定子模块,用于若所述总线响应信息中的数据域信息与所述数据计分板中记录的数据信息不匹配,或者所述总线响应信息中的非数据域信息与所述权限计分板中记录的属性信息不匹配,则确定所述被测设计的验证结果为验证失败。
可选地,所述顶层描述信息包括所述被测设计的拓扑结构信息和一致性总线协议规定的总线参数,所述计分板配置模块,包括:
数目确定子模块,用于根据所述被测设计的拓扑结构信息确定权限计分板的数目N;
存储空间确定子模块,用于根据所述总线参数确定数据计分板的第一存储空间和权限计分板的第二存储空间;
计分板配置子模块,用于根据所述第一存储空间配置1个数据计分板,并根据所述第二存储空间配置N个权限计分板。
可选地,所述权限计分板的数目等于验证模板与所述被测设计之间的接口数。
可选地,所述缓存验证模块还包括:
权限计分板更新子模块,用于若所述总线响应信息中的非数据域信息与所述权限计分板中记录的属性信息相匹配,则根据所述总线响应信息更新所述权限计分板;
数据计分板更新子模块,用于若所述总线响应信息中的数据域信息与所述数据计分板中记录的数据信息相匹配,则根据所述总线响应信息更新所述数据计分板。
可选地,所述被测设计包括片上系统的寄存器传输级电路设计,所述寄存器传输级电路设计包含处理器核和多级缓存,所述激励生成模块,包括:
数据探针设置子模块,用于在所述寄存器传输级电路设计的处理器核与多级缓存之间的总线上设置数据探针,所述数据探针用于传递所述总线上的第一事务信息;
第一事务信息获取子模块,用于基于所述数据探针获取所述总线上的第一事务信息,所述第一事务信息包括所述总线上的总线请求信息和总线响应信息;
第一激励生成子模块,用于根据所述总线请求信息和总线响应信息生成激励。
可选地,所述被测设计包括仿真器,所述仿真器用于对芯片进行仿真处理,所述激励生成模块,包括:
仿真结果获取子模块,用于获取所述仿真器的仿真结果;
第二事务信息获取子模块,用于若所述仿真器的仿真结果为仿真失败,则获取所述仿真器的处理器核与缓存之间的总线上的第二事务信息,所述第二事务信息包括总线时序信息和缓存延迟信息;
第二激励生成子模块,用于根据所述总线时序信息和所述缓存延迟信息生成激励。
可选地,所述激励模式包括预取激励模式,所述预取激励模式对应的总线请求类型为总线预取请求。
可选地,所述系统还包括:
事务信息存储模块,用于若确定所述被测设计的验证结果为验证失败,则将所述激励对应的事务信息存储至内存数据库中,所述事务信息包括总线事务对应的时间戳、总线请求类型、总线参数、内存地址、总线事务数据中的至少一项。
综上,本发明实施例提供了一种缓存验证系统,通过获取被测设计的顶层描述信息,根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;然后,按照预先设定的激励模式生成激励,并根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;最后,根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息,基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。相比于现有技术中构建参考设计与被测设计进行差分比对的方法,本发明实施例基于一致性总线协议进行缓存验证,无需针对每一种被测设计构建对应的参考设计,降低了验证成本,提高了缓存验证效率。并且,相比于现有技术中构建面向单一总线端口的验证模板的方法,本发明实施例提供的缓存验证方法,无需手动配置验证模板与被测设计之间的接口,可以根据被测设计的顶层描述信息自动对被测设计进行编译处理得到可执行文件,解决了在被测设计频繁变动的场景下如何进行缓存验证的问题,提高了缓存验证的适用范围和验证效率。此外,本发明实施例可以按照预先设定的激励模式生成激励,支持多种激励模式,增加了缓存验证的覆盖率。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的缓存验证系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
参照图3,是本发明实施例提供的一种用于缓存验证的电子设备的结构框图。如图3所示,所述电子设备包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述实施例的缓存验证方法。
所述处理器可以是CPU(Central Processing Unit,中央处理器),通用处理器、DSP(Digital Signal Processor,数字信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmble Gate Array,现场可编程门阵列)或者其他可编辑器件、晶体管逻辑器件、硬件部件或者其任意组合。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
所述通信总线可包括一通路,在存储器和通信接口之间传送信息。通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。所述通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器可以是ROM(Read Only内存,只读内存)或可存储静态信息和指令的其他类型的静态存储设备、RAM(Random Access,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically Erasable Programmable ReadOnly,电可擦可编程只读内存)、CD-ROM(Compact Disa Read Only,只读光盘)、磁带、软盘和光数据存储设备等。
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备(服务器或者终端)的处理器执行时,使得处理器能够执行图1所示的缓存验证方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种缓存验证方法、系统、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种缓存验证方法,其特征在于,所述方法包括:
获取被测设计的顶层描述信息,所述顶层描述信息为用于描述所述被测设计的结构化信息,所述被测设计为具有缓存功能的电路设计;
根据所述顶层描述信息生成被测设计和验证模板之间的连接逻辑;
根据所述连接逻辑对所述被测设计和所述验证模板进行编译处理,得到所述被测设计对应的可执行文件;
按照预先设定的激励模式生成激励,所述激励用于对所述被测设计进行验证;
根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;
基于一致性总线协议对所述总线响应信息进行检查,得到验证结果。
2.根据权利要求1所述的方法,其特征在于,所述顶层描述信息包括所述被测设计的拓扑结构信息和一致性总线协议规定的总线参数,所述根据所述顶层描述信息生成被测设计和验证模板之间的连接逻辑,包括:
根据所述被测设计的拓扑结构信息确定验证模板与所述被测设计之间的接口数;
按照所述接口数和所述总线参数配置所述验证模板与所述被测设计之间的接口,所述接口符合片上系统的一致性总线协议,且所述接口的数据传输参数与所述总线参数相匹配;
根据所述验证模板和所述被测设计之间的接口,生成所述被测设计与所述验证模板之间的连接逻辑。
3.根据权利要求1所述的方法,其特征在于,所述获取被测设计的顶层描述信息之后,所述方法还包括:
根据所述顶层描述信息配置数据计分板和权限计分板,其中,所述数据计分板用于记录所述被测设计中各个缓存块的数据信息;所述权限计分板用于记录所述被测设计中各个缓存块的属性信息;
所述基于一致性总线协议对所述总线响应信息进行检查,得到验证结果,包括:
根据所述数据计分板和所述权限计分板对所述总线响应信息进行检查;
若所述总线响应信息中的数据域信息与所述数据计分板中记录的数据信息不匹配,或者所述总线响应信息中的非数据域信息与所述权限计分板中记录的属性信息不匹配,则确定所述被测设计的验证结果为验证失败。
4.根据权利要求3所述的方法,其特征在于,所述顶层描述信息包括所述被测设计的拓扑结构信息和一致性总线协议规定的总线参数,所述根据所述顶层描述信息配置数据计分板和权限计分板,包括:
根据所述被测设计的拓扑结构信息确定权限计分板的数目N;
根据所述总线参数确定数据计分板的第一存储空间和权限计分板的第二存储空间;
根据所述第一存储空间配置1个数据计分板,并根据所述第二存储空间配置N个权限计分板。
5.根据权利要求3至4任一项所述的方法,其特征在于,所述权限计分板的数目等于验证模板与所述被测设计之间的接口数。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述总线响应信息中的非数据域信息与所述权限计分板中记录的属性信息相匹配,则根据所述总线响应信息更新所述权限计分板;
若所述总线响应信息中的数据域信息与所述数据计分板中记录的数据信息相匹配,则根据所述总线响应信息更新所述数据计分板。
7.根据权利要求1所述的方法,其特征在于,所述被测设计包括片上系统的寄存器传输级电路设计,所述寄存器传输级电路设计包含处理器核和多级缓存,所述按照预先设定的激励模式生成激励,包括:
在所述寄存器传输级电路设计的处理器核与多级缓存之间的总线上设置数据探针,所述数据探针用于传递所述总线上的第一事务信息;
基于所述数据探针获取所述总线上的第一事务信息,所述第一事务信息包括所述总线上的总线请求信息和总线响应信息;
根据所述总线请求信息和总线响应信息生成激励。
8.根据权利要求1所述的方法,其特征在于,所述被测设计包括仿真器,所述仿真器用于对芯片进行仿真处理,所述按照预先设定的激励模式生成激励,包括:
获取所述仿真器的仿真结果;
若所述仿真器的仿真结果为仿真失败,则获取所述仿真器的处理器核与缓存之间的总线上的第二事务信息,所述第二事务信息包括总线时序信息和缓存延迟信息;
根据所述总线时序信息和所述缓存延迟信息生成激励。
9.根据权利要求1所述的方法,其特征在于,所述激励模式包括预取激励模式,所述预取激励模式对应的总线请求类型为总线预取请求。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述被测设计的验证结果为验证失败,则将所述激励对应的事务信息存储至内存数据库中,所述事务信息包括总线事务对应的时间戳、总线请求类型、总线参数、内存地址、总线事务数据中的至少一项。
11.一种缓存验证系统,其特征在于,所述系统包括:
顶层描述获取模块,用于获取被测设计的顶层描述信息,所述顶层描述信息为用于描述所述被测设计的结构化信息,所述被测设计为具有缓存功能的电路设计;
编译处理模块,用于根据所述顶层描述信息对所述被测设计进行编译处理,得到所述被测设计的可执行文件;
激励生成模块,用于按照预先设定的激励模式生成激励,所述激励用于对所述被测设计进行验证;
仿真处理模块,用于根据所述激励对所述可执行文件进行仿真处理,得到总线响应信息;
缓存验证模块,用于基于一致性总线协议对所述总线响应信息进行检查,得到验证结果;
所述编译处理模块,包括:
连接逻辑生成子模块,用于根据所述顶层描述信息生成被测设计和验证模板之间的连接逻辑;
编译处理子模块,用于根据所述连接逻辑对所述被测设计和所述验证模板进行编译处理,得到所述被测设计对应的可执行文件。
12.一种电子设备,其特征在于,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行如权利要求1至10中任一项所述的缓存验证方法。
13.一种可读存储介质,其特征在于,当所述可读存储介质中的指令由电子设备的处理器执行时,使得所述处理器能够执行如权利要求1至10中任一项所述的缓存验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211044099.6A CN115130402B (zh) | 2022-08-30 | 2022-08-30 | 一种缓存验证方法、系统、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211044099.6A CN115130402B (zh) | 2022-08-30 | 2022-08-30 | 一种缓存验证方法、系统、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115130402A CN115130402A (zh) | 2022-09-30 |
CN115130402B true CN115130402B (zh) | 2022-11-11 |
Family
ID=83387225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211044099.6A Active CN115130402B (zh) | 2022-08-30 | 2022-08-30 | 一种缓存验证方法、系统、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115130402B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115983173B (zh) * | 2023-03-21 | 2023-07-07 | 湖北芯擎科技有限公司 | 寄存器模型生成方法、装置、计算机设备及存储介质 |
CN116070567B (zh) * | 2023-03-27 | 2023-06-30 | 北京燧原智能科技有限公司 | 一种缓存电路的验证方法、装置、设备及存储介质 |
CN117234591B (zh) * | 2023-09-04 | 2024-04-16 | 上海合芯数字科技有限公司 | 指令验证方法、系统、设备、介质及产品 |
CN117648226A (zh) * | 2024-01-29 | 2024-03-05 | 北京开源芯片研究院 | 一种处理器缓存的工作机制的测试方法以及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081864A (en) * | 1997-07-31 | 2000-06-27 | Advanced Micro Devices, Inc. | Dynamic configuration of a device under test |
US5996050A (en) * | 1997-07-31 | 1999-11-30 | Advanced Micro Devices, Inc. | Cache coherency detection in a bus bridge verification system |
CN103150264B (zh) * | 2013-01-18 | 2014-09-17 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
GB2560336B (en) * | 2017-03-07 | 2020-05-06 | Imagination Tech Ltd | Address generators for verifying integrated circuit hardware designs for cache memory |
CN111611120B (zh) * | 2020-06-28 | 2023-05-30 | 中国人民解放军国防科技大学 | 一种片上多核处理器Cache一致性协议验证方法、系统及介质 |
CN112199291A (zh) * | 2020-10-16 | 2021-01-08 | 天津飞腾信息技术有限公司 | 一种多核处理器Cache一致性模拟验证方法及验证装置 |
CN113297017B (zh) * | 2021-05-07 | 2023-08-29 | 杭州德旺信息技术有限公司 | 一种基于uvm的soc验证系统及方法 |
CN114580344B (zh) * | 2022-04-24 | 2022-08-16 | 飞腾信息技术有限公司 | 测试激励生成方法、验证方法、验证系统及相关设备 |
-
2022
- 2022-08-30 CN CN202211044099.6A patent/CN115130402B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115130402A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115130402B (zh) | 一种缓存验证方法、系统、电子设备及可读存储介质 | |
US7000079B2 (en) | Method and apparatus for verification of coherence for shared cache components in a system verification environment | |
RU2430409C2 (ru) | Методология измерения покрытия в структурном состоянии взаимного соединения | |
US7434101B2 (en) | Highly specialized scenarios in random test generation | |
CN105930242B (zh) | 一种支持精确访存检测的多核处理器随机验证方法及装置 | |
CN110674055B (zh) | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 | |
CN112199291A (zh) | 一种多核处理器Cache一致性模拟验证方法及验证装置 | |
JP2021524966A (ja) | マルチコア相互接続のレベル2キャッシュへのアクセスを検証する方法 | |
CN109213641A (zh) | 缓存一致性检测系统及方法 | |
US8108197B2 (en) | Method to verify an implemented coherency algorithm of a multi processor environment | |
CN116049034A (zh) | 一种多核处理器系统的缓存一致性的验证方法及装置 | |
DeOrio et al. | Post-silicon verification for cache coherence | |
CN117076330B (zh) | 一种访存验证方法、系统、电子设备及可读存储介质 | |
CN117076337B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
US20060174155A1 (en) | System, method and computer program product for testing software | |
CN116795728B (zh) | 一种基于uvm的多核缓存一致性验证模组及方法 | |
US6751752B1 (en) | Checking events generated by a device | |
CN116167310A (zh) | 一种验证多核心处理器缓存一致性的方法及装置 | |
CN109783837A (zh) | 仿真设备、仿真系统、仿真方法和仿真程序 | |
US11061821B2 (en) | Method, system, and apparatus for stress testing memory translation tables | |
US9658849B2 (en) | Processor simulation environment | |
US10007568B2 (en) | Testing a non-core MMU | |
CN115372791A (zh) | 基于硬件仿真的集成电路的测试方法、装置及电子设备 | |
Petrochenkov et al. | Approaches to stand-alone verification of multicore microprocessor caches | |
US11022649B2 (en) | Stabilised failure estimate in circuits |
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 |