CN117077584A - 基于自动化验证环境生成和运行功能模型的创建方法 - Google Patents

基于自动化验证环境生成和运行功能模型的创建方法 Download PDF

Info

Publication number
CN117077584A
CN117077584A CN202210503852.7A CN202210503852A CN117077584A CN 117077584 A CN117077584 A CN 117077584A CN 202210503852 A CN202210503852 A CN 202210503852A CN 117077584 A CN117077584 A CN 117077584A
Authority
CN
China
Prior art keywords
data structure
data
model
functional
interface
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
Application number
CN202210503852.7A
Other languages
English (en)
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.)
Essex Technology Shanghai Co ltd
Original Assignee
Essex Technology Shanghai 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 Essex Technology Shanghai Co ltd filed Critical Essex Technology Shanghai Co ltd
Priority to CN202210503852.7A priority Critical patent/CN117077584A/zh
Publication of CN117077584A publication Critical patent/CN117077584A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/08Intellectual property [IP] blocks or IP cores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种基于自动化验证环境生成和运行功能模型的创建方法,通过根据预设架构方案,构建若干功能模型;根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个package中;定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换。能够将验证工作的启动时间从提供设计技术文档的时间点提前到架构工程师给出原型设计的时间点。模型接口统一数据结构后,方便前后级模型的级联,不需要额外注意接口匹配等问题,降低模型的复用难度。

Description

基于自动化验证环境生成和运行功能模型的创建方法
技术领域
本公开涉及数字验证技术领域,尤其涉及一种基于自动化验证环境生成和运行功能模型的创建方法、装置和创建系统。
背景技术
DPU是一个融合多领域IP的新领域芯片,包含SOC,NVMe控制器, OVS,VirtIO,TOE等等技术,而这些技术当中有一些功能是相似的,或者是有前后级关系的。基于这种情况,用户希望验证工程师可以将一些功能进行一次编写调试,多处多次调用,节省验证工程师多次开发相同功能代码的时间的同时,还能保证调用该功能的验证环境的预期结果是一致的。
目前,现在流行的验证方法学——UVM提供了一套通用的环境结构以及环境重用的方案。UVM中提供了以agent或者env为基础单元的复用方案。但是当芯片规模越来越大,研发团队决定采取IP化设计的方式来实现一颗大规模芯片时,复用的单元可能会很小也可能会很大,所以以agent或者env 为基础单元的复用形式就显得不够方便:一是验证团队不一定会为每一个IP 都提供一套验证环境去测试;二是实际操作中IP的开发和其他模块的环境开发可能是同步的,这样无法及时得到所需IP对应的VIP;三是对于一个较小的复用单元编写一套agent,会消耗额外的时间。
另外,以现有的通用技术上来说,这些功能的开发调试,是配合整套验证环境的开发的。而整个芯片的研发是从架构工程师制定架构编写HLD开始的,搭建一套验证环境需要更详细LLD,也就是说通常一项验证任务的开始时间就已经落后了,如果此时该功能很复杂,或者算法很难调试的话,验证工作就更加落后了。
用户更希望这些功能的调试能够在架构工程师编写HLD的时候就参与进去,先对架构工程师提出的方案进行模型开发,进行可行性测试。同时将这个模型代码重用到后面的验证环境中作为功能模型直接使用,这样就将整个验证任务的开始时间提前到了HLD的阶段,为后续的验证工作争取到了更多的时间。
另外还有一种不推荐的环境复用方式是将另一套环境想要的代码复制过来,这种方式会带来一系列的负面问题,包括代码同步问题,可靠性问题,多种风格的代码融合在一起带来的可读性,维护问题等等。这种方式还需要被复制的环境要先于当前环境稳定。
最后,即使用户在HLD阶段就对架构方案进行建模,编写了对应的模型,可以给后续环境使用了,但是实际LLD的详细设计过程中,可能定义的接口信号和模型并不会完全一致。这是因为由于个人经验和风格,以及理解的不同,导致重复工作,甚至返工。再者这种方式下,遇到架构更新时,需要通知到所有相关的验证工程师,带来额外工作量。如果通知不及时或者漏掉了某些验证工程师,还会因为信息同步不及时,导致环境没有更新,带来额外的debug成本。
发明内容
为了解决上述问题,本申请提出一种基于自动化验证环境生成和运行功能模型的创建方法、装置和创建系统,以此。
本申请一方面,提出一种基于自动化验证环境生成和运行功能模型的创建方法,包括如下步骤:
S100、根据预设架构方案,构建若干功能模型;
S200、根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个package中;
S300、定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;
S400、将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换。
作为本申请的一种可选实施方案,可选地,在步骤S100中,所述根据预设架构方案,构建若干功能模型,包括:
S110、设定数据结构建立条件;
S120、根据所述数据结构建立条件,建立统一模型接口的数据结构,其中,所述数据结构包括:用于验证环境各组件和功能模型之间通信的事务性数据结构,以及,用于验证环境和DUT之间通信用的接口性数据结构;
S130、将所述数据结构保存至不同的package中。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,包括:
S411、通过transaction预先构造预期事务性数据;
S421、调用第一数据结构,将所述事务性数据通过第一数据结构输入至对应的功能模型,并通过该功能模型将数据处理成满足预设条件的需求数据;
S431、调用第二数据结构,将所述功能模型处理得到的需求数据通过第二数据结构转换成接口性数据,并经由sequence送入driver。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S412、通过driver接收由sequence转发的transaction;
S422、预设判断条件,对所述transaction的激励进行分析判断,判断所述激励是以接口性数据结构存在还是事务性数据结构存在:
若是存在接口性数据,则将接口性数据按时序驱动到DUT;
若是不存在接口性数据,则调用第五数据结构,通过第五数据结构将所述transaction中包含的事务性数据转换成接口性数据,并将接口性数据按时序驱动到DUT。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S431、通过RM接收agent转发的transaction;
S432、调用第三数据结构,通过第三数据结构将所述transaction中包含的接口性数据转换成对应功能模型需要的事务性数据,并输送至所述功能模型,通过所述功能模型将数据处理成满足预设条件的需求数据,并输出;
S433、调用第四数据结构,通过第四数据结构将所述功能模型输出的数据转换成事务性数据,并封装成transaction发送至scoreboard,等待与DUT 的输出进行比对。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S441、获取Driver的激励信号;
S442、根据预设封装模型,将所述激励信号进行封装,得到预期格式数据;
S443、根据预设模型格式获取方法获取后继模型格式,根据所述后继模型格式选择后继模型,并将所述预期格式数据发送至后继模型进行数据处理。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S444、获取所述后继模型的数据处理结果;
S445、采用Bit流大小端转换模型,对所述数据处理结果进行识别,确认所述数据处理结果的数据类型;
S446、根据所述数据类型确认所述后继模型的格式,并将比特流转换为目标模型所需格式。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S451、设置RTL文件列表和验证平台文件列表,通过所述RTL文件列表来指定当前DUT所需的所有的RTL代码文件,通过所述验证平台文件列表来指定验证平台所需的所有文件;
S452、解析所述RTL文件列表和所述验证平台文件列表,生成一个编译文件列表提供给vcs进行编译;
S453、将DUT的文件列表在所述RTL文件列表中引用,将VIP的文件列表在所述验证平台文件列表中引用,将package文件加载在所述验证平台文件列表后面,并保存。
本申请另一方面,提出一种实现上述所述的基于自动化验证环境生成和运行功能模型的创建方法的装置,包括:
模型创建模块,用于根据预设架构方案,构建若干功能模型;
数据结构定义模块,用于根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个 package中;
接口转换模块,用于定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;
运行模块,用于将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换。
本申请另一方面,还提出一种创建系统,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现上述所述的基于自动化验证环境生成和运行功能模型的创建方法。
本发明的技术效果:
本申请通过根据预设架构方案,构建若干功能模型;根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个package中;定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换。能够让验证工程师可以在架构的原型设计阶段就可以开始编写模型,将验证工作的启动时间从设计工程师提供设计技术文档的时间点提前到架构工程师给出原型设计的时间点。同时可以快速的合入已有的验证环境中。
采用模型的输入输出使用标准的数据结构,以保证模型的通用性,只需要在需要做转换的地方调用数据结构转换函数进行转换即可,方便模型复用的同时降低验证工程师在环境搭建上花费的时间和精力。只需要维护好事务性数据结构和接口性数据结构的转换函数即可。模型接口的统一为符合标准协议或者架构设计的接口性数据结构后,方便前后级模型的级联,不需要额外注意接口匹配等问题,降低模型的复用难度。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出为本发明的实施流程示意图;
图2示出为本发明功能模型与transaction的连接示意图;
图3示出为本发明driver处理事务性和接口性数据的流程图;
图4示出为本发明功能模型与RM连接示意图;
图5示出为本发明一个设计的验证环境模板;
图6示出为本发明NVME SQE封装模型示意图;
图7示出为本发明三层协议的网络帧封装示意图;
图8示出为本发明七层协议的网络帧封装示意图;
图9示出为本发明使用大端比特流或者小端比特流作为中间数据类型确认后继模型格式的示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
实施例1
为了验证环境和模型的分离,使得验证环境使用事务性数据结构以更高一层的抽象层次构造测试用例,本申请将模型接口统一为符合标准协议或者架构设计的接口性数据结构,方便前后级模型的级联,不需要额外注意接口匹配等问题,降低模型的复用难度。可以让验证工程师在架构的原型设计阶段就可以开始编写模型,将验证工作的启动时间从设计工程师提供设计技术文档的时间点提前到架构工程师给出原型设计的时间点。同时可以快速的合入已有的验证环境中。
自动化验证环境,其环境搭建本实施例不做限制。在一个实施方案中,可以通过一套env_base,ENV生成工具来完成基础环境搭建。然后需要完成 RUN工具的设计和实现。最后需要对需要用到的标准协议和架构定义好的方案进行功能模型化。在此基础上,验证工程师只需要完成driver的驱动部分, monitor的采样部分,以及RM的transaction-VIP API转换调用部分即可,经验上来看,使用这套方案搭建验证环境,能够在设计人员提供RTL文件列表的当天,提供一套可以运行的验证平台。
再根据架构工程师的功能划分进行模型开发,创建功能模型,将功能模型合入验证环境中,实现环境和功能模型的连接。下面将具体描述功能模型的创建方案。
首先,通过对架构方案的理解,划分出各个功能单元进行模型开发,并根据各个模型的输入输出端口的数据结构定义一套通用的数据结构,并放到一个或几个package中,同时定义各模型的输入输出数据结构与通用数据结构之间的接口转换函数。
如图1所示,公开提出了本申请一方面,提出一种基于自动化验证环境生成和运行功能模型的创建方法,包括如下步骤:
S100、根据预设架构方案,构建若干功能模型;
为了使得创建的功能模型和自动化验证环境所在的验证平台向匹配,首先需要定义一套通用的数据结构,定义一套通用的数据结构放在不同的 package中,提供给所有模型按需选取。作为本申请的一种可选实施方案,可选地,在步骤S100中,所述根据预设架构方案,构建若干功能模型,包括:
S110、设定数据结构建立条件;
S120、根据所述数据结构建立条件,建立统一模型接口的数据结构,其中,所述数据结构包括:用于验证环境各组件和功能模型之间通信的事务性数据结构,以及,用于验证环境和DUT之间通信用的接口性数据结构;
S130、将所述数据结构保存至不同的package中。
搭建功能模型的原则是将模型的输入输出约束成标准协议或者架构方案约定的数据结构,使用System Verilog的结构体(struct)或者联合体(union) 等语法配合typedef,packed等关键字实现。这样定义数据结构便于维护和定位时分析数据结构的内容,同时union结合packed既可以将相同数据宽度的多种相关联的数据结构一起控制,比如在NVME中通过SQE传递命令,SQE的长度是64个Byte,但是不同命令对于64byte中的某些bit的定义是不一样的。
当该模型是以协议为需求时,此时输入输出的数据格式是协议规定的,例如NVME的IO cmd一般输入是一个SQE,输出是CQE。
当模型是以非协议的同时架构没有做明确要求时,可以定义一个数据结构用来存放{bit流,有效bit数,以及可选的处理状态}等信息。例如OVS 没有一本协议约束,此时用户可以将数据统一以大端数据,数据长度为参数送入模型,模型处理完成后也返回大端数据和数据长度。核心的思想是对模型的输入输出按照一个规则进行统一。
同时对于需要跨组件调用的函数和变量在本设计中要求声明成静态类型,方便在任意位置进行操作,也可以作为一种跨组件的通知机制。
采用上述功能模型的构建原理,可以对架构方案做可行性分析。比如功能模型全都按照要求做好了,但是无法满足架构的要求,那么需要架构工程师分析原因,改良自身提供的架构方案;如果能够满足架构要求,那么设计和验证可以按照这份功能模型的指导进行RTL的开发。本实施例,主要是体现在功能模型的数据转换应用上,因此,具体的模型开发,可以根据架构方案进行改良调整。
S200、根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个package中;
验证环境和功能模型进行匹配连接,因此需要根据各个package中已经定义好的数据结构,进行模型开发。具体实施时,使用模板类作为模型的主体进行开发,通过模板中的模板参数,以及类中函数的成员变量,配合类中的全局变量进行功能开发。
本实施例,原则上功能模型的开发要使用各个package中已经定义好的数据结构,但是当某些时候需要定义一个新的数据结构,作为模型内部函数间传递的数据结构时,那么本设计要求其定义在模板类的头部,如果验证环境需要这部分中间函数的结果,可以使用作用域操作符(::)调用这个结构。
在本申请中,功能模型的具体数量以及类型,可以由用户根据需求进行设计或者定制。但在本实施例中,功能模型设计主要用来分别或者一次实现以下几个功能:在transaction中作为数据发生器使用;在driver中作为激励生成器使用;在RM中作为标准值生成模型使用;在各验证环境组件中作为通知机制使用。
S300、定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;
接口转换函数本质上是为了解决模型的通用性问题,例如NVME模型的输入一般是SQE,OVS的输入一般是网络帧数据结构形成的bit流,假如此时用户需要实现NVME overtcp,即通过网络将SQE发到远端服务器的 SSD进行操作时,需要将NVME的数据发生器产生的SQE,想办法变成OVS 的输入数据的格式,就需要一个转换函数进行SQE到网络帧bit流的转换。如此用户就需要编写一个接口转换函数,实现对SQE的NVME over tcp的封装,转换,变成OVS所需的bit流。
S400、将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换。
数据结构和对应的功能模型创建完毕,就可以将验证环境与功能模型进行结合使用,将功能模型合入验证环境中。在有了转换函数的前提下,验证环境对于功能模型的调用,就是简单函数调用:主要分为两个部分进行使用。将在下文具体描述。
第一部分的函数调用:将功能模型的所有文件,加入到编译文件列表中。在搭建出一套通用的验证环境后,对于DPU来说,还需要能够快速整合多来源的VIP。作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,包括:
S451、设置RTL文件列表和验证平台文件列表,通过所述RTL文件列表来指定当前DUT所需的所有的RTL代码文件,通过所述验证平台文件列表来指定验证平台所需的所有文件;
S452、解析所述RTL文件列表和所述验证平台文件列表,生成一个编译文件列表提供给vcs进行编译;
S453、将DUT的文件列表在所述RTL文件列表中引用,将VIP的文件列表在所述验证平台文件列表中引用,将package文件加载在所述验证平台文件列表后面,并保存。
因此,需要设计一套目录结构将上述环境部分封装在一个package中。再设计一套文件列表分为rtl_filelist.f和tb_filelist.f,设计一个仿真启动工具 (RUN工具)用来解析两个文件生成一个编译文件列表文件(gen.f)提供给vcs进行编译。将DUT的文件列表在rtl_filelist.f中引用,将VIP的文件列表在tb_filelist.f中引用,再在tb_filelist.f文件的最后加上环境的package 文件。在两种filelist基础上,将模型文件合到一个filelist文件,添加到 tb_filelist文件中即可。通过编译文件列表的应用,即可进行调用。
第二部分是分成三种调用关系功能模型在transaction中的调用;功能模型在RM中的调用;功能模型在driver中的调用。下面将具体描述。
第二部分的三种调用将在下文详细介绍。
Transaction与功能模型的互动,由transaction先构造预期中的事务性数据结构,再根据需要将事务性数据结构经由sequence送入driver,或者送入指定模型转换成接口性数据结构再经由sequence送入driver。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,包括:
S411、通过transaction预先构造预期事务性数据;
S421、调用第一数据结构,将所述事务性数据通过第一数据结构输入至对应的功能模型,并通过该功能模型将数据处理成满足预设条件的需求数据;
S431、调用第二数据结构,将所述功能模型处理得到的需求数据通过第二数据结构转换成接口性数据,并经由sequence送入driver。
如图2所示,为功能模型与transaction的连接示意图。首先,通过 transaction先构造预期中的事务性数据结构,再根据需要将事务性数据结构经由sequence送入driver,或者送入指定模型转换成接口性数据结构再经由 sequence送入driver。
具体执行时,需要首先调用数据产生模型产生原始数据,调用一个接口性数据结构的通信模型接口,如AXI,将事务性数据输入至对应的功能模型,通过该功能模型进行数据处理后,得到需要的数据;再采用一个事务性数据结构的转换函数活模型将所述功能模型处理得到的需求数据转换成接口性数据,并经由sequence送入driver。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S412、通过driver接收由sequence转发的transaction;
S422、预设判断条件,对所述transaction的激励进行分析判断,判断所述激励是以接口性数据结构存在还是事务性数据结构存在:
若是存在接口性数据,则将接口性数据按时序驱动到DUT;
若是不存在接口性数据,则调用第五数据结构,通过第五数据结构将所述transaction中包含的事务性数据转换成接口性数据,并将接口性数据按时序驱动到DUT。
如图3所示,为driver处理事务性和接口性数据的流程图。在收到由 sequence转发来的transaction后,先分析激励是以接口性数据结构存在的还是事务性数据结构存在的。如果是事务性数据结构,那么就先调用转换函数转换为接口性数据结构。最后将接口性数据结构经由interface发到DUT。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S431、通过RM接收agent转发的transaction;
S432、调用第三数据结构,通过第三数据结构将所述transaction中包含的接口性数据转换成对应功能模型需要的事务性数据,并输送至所述功能模型,通过所述功能模型将数据处理成满足预设条件的需求数据,并输出;
S433、调用第四数据结构,通过第四数据结构将所述功能模型输出的数据转换成事务性数据,并封装成transaction发送至scoreboard,等待与DUT 的输出进行比对。
如图4所示,为功能模型与RM连接示意图。RM在收到agent转发过来的transaction后,将其中的事务性数据结构转换成对应模型需要的接口性数据结构,之后送入对应模型进行处理,再收集功能模型的输出转换为事务性数据结构封装成transaction送到scoreboard等待与DUT的输出进行别对。
如图5所示,为一个设计的验证环境模板。其中,estBase部分和Harness 部分都由ENV生成工具生成,只不过此时Harness中的DUT还不存在, interface中还没有任何接口定义。而Harness部分实际是由ENV接口连接工具配合设计工程师给的RTL顶层文件相互配合完善而成的。在完成验证平台的运行工具的设计和实现后,对需要用到的标准协议和架构定义好的方案进行功能模型化。在此基础上,验证工程师只需要完成driver的驱动部分,monitor的采样部分,以及RM的transaction-VIP API转换调用部分即可,经验上来看,使用这套方案搭建验证环境,能够在设计人员提供RTL文件列表的当天,提供一套可以运行验证平台。
在本设计中,Testcase将继承自TestBase,会将想要发出的transaction 放入在TestBase的Config中trans_q队列中。由Sequence逐个的通过uvm TLM机制送到Driver中。Driver会分析transaction中的内容并依照上述 transaction驱动方式,驱动interface。In_monitor会从interface的输出端收集接口信息还原成事务性数据结构送到RM。Out_monitor会从interface的输入端收集接口信息,并组织成将要进行比较的数据结构存入transaction中送到 SCB。RM将In_monitor送来的transaction进行解析,调用相关功能模型完成数据处理,并将功能模型的输出结果组织成将要进行比较的数据结构存入transaction中送到SCB。SCB对收自于RM和Out_monitor的transaction调用uvm compare进行结果比对。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S441、获取Driver的激励信号;
S442、根据预设封装模型,将所述激励信号进行封装,得到预期格式数据;
S443、根据预设模型格式获取方法获取后继模型格式,根据所述后继模型格式选择后继模型,并将所述预期格式数据发送至后继模型进行数据处理。
如图6所示,为NVME SQE封装模型示意图。基于本设计的搭建功能模型的原则是将模型的输入输出约束成标准协议或者架构方案约定的数据结构,使用System Verilog的结构体(struct)或者联合(union)结合合并(packed) 关键字实现。这样的好处是,这种形式方便维护和定位分析内容,同时union 结合packed既可以将相同数据宽度的多种相关联的数据结构一起控制,比如在NVME中通过SQE传递命令,SQE的长度是64个Byte,但是不同命令对于64byte中的某些bit的定义是不一样的。
当该模型是以协议为需求时,此时输入输出的数据格式是协议规定的,例如NVME的IO cmd一般输入是一个SQE,输出是CQE。当模型是以非协议的同时架构没有做明确要求时,可以将输入输出调整成一个bit流,有效bit数,以及可选的处理状态,例如OVS没有一本协议约束,此时我们可以将数据统一以大端数据,数据长度为参数送入模型,模型处理完成后也返回大端数据和数据长度。核心的思想是对模型的输入输出按照一个规则进行统一。
同时对于需要跨组件的函数和变量要求声明成静态类型,方便在Driver 随时调用产生激励的同时也方便Monitor调用将总线信号转换回模型需要的结构,最终提供给参考模型用来调用数据处理模型完成数据处理。
在本设计中提到的功能模型,不只是像市面上出售的绝大多数VIP一样能够正确的按照协议处理给进来的数据或者命令,还需要提供类似发包器一样能够产生该模式下所需要的数据或者命令的模型。例如在OVS的测试中,需要验证工程师将Layer2,Layer3,Layer4等多层网络协议按照RFC标准封装成指定格式的数据,分别对应如图7所示的三层协议的网络帧封装示意图和图8所示的七层协议的网络帧封装示意图。在NVME测试中,需要验证工程师按照NVME协议要求的封装出SQE等。
因此在DPU的自动化验证环境中一个模型在某种测试模式下,可能是作为数据处理模型在RM中被调用。而使用另一种模式测试时,又是作为发包器模型的一部分在driver或者transaction构造数据包时被调用。
作为本申请的一种可选实施方案,可选地,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S444、获取所述后继模型的数据处理结果;
S445、采用Bit流大小端转换模型,对所述数据处理结果进行识别,确认所述数据处理结果的数据类型;
S446、根据所述数据类型确认所述后继模型的格式,并将比特流转换为目标模型所需格式。
如图9所示,当一个模型的结果返回后,并不能立即确定后继模型是谁,或者两个模型之间并不好直接转换格式的话,可以使用大端比特流或者小端比特流作为中间数据类型,再在确认后继模型格式后,将比特流转换为目标模型需要的格式。
需要说明的是,上述第一至第五数据结构,仅仅是不同示例中的一个模型接口的使用代号,并不代表此处验证平台仅仅设有五个模型接口,相应的,其可以根据功能模型的类型和数量进行确定。
实施例2
基于实施例1的实施原理,本实施例提出一种装置来实现上述实施例1的各控制方法的实施例的流程。
本申请另一方面,本申请另一方面,提出一种实现上述所述的基于自动化验证环境生成和运行功能模型的创建方法的装置,包括:
模型创建模块,用于根据预设架构方案,构建若干功能模型;
数据结构定义模块,用于根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个 package中;
接口转换模块,用于定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;
运行模块,用于将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换。
显然,本领域的技术人员应该明白,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各控制方法的实施例的流程。上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory, ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器 (FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
实施例3
更进一步地,本申请另一方面,还提出一种创建系统,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现上述所述的基于自动化验证环境生成和运行功能模型的创建方法。
本公开实施例来创建系统包括处理器以及用于存储处理器可执行指令的存储器。其中,处理器被配置为执行可执行指令时实现前面任一所述的一种基于自动化验证环境生成和运行功能模型的创建方法。
此处,应当指出的是,处理器的个数可以为一个或多个。同时,在本公开实施例的溯源系统中,还可以包括输入装置和输出装置。其中,处理器、存储器、输入装置和输出装置之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的一种基于自动化验证环境生成和运行功能模型的创建方法所对应的程序或模块。处理器通过运行存储在存储器中的软件程序或模块,从而执行溯源系统的各种功能应用及数据处理。
输入装置可用于接收输入的数字或信号。其中,信号可以为产生与设备 /终端/服务器的用户设置以及功能控制有关的键信号。输出装置可以包括显示屏等显示设备。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,包括如下步骤:
S100、根据预设架构方案,构建若干功能模型;
S200、根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个package中;
S300、定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;
S400、将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换。
2.根据权利要求1所述的基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,在步骤S100中,所述根据预设架构方案,构建若干功能模型,包括:
S110、设定数据结构建立条件;
S120、根据所述数据结构建立条件,建立统一模型接口的数据结构,其中,所述数据结构包括:用于验证环境各组件和功能模型之间通信的事务性数据结构,以及,用于验证环境和DUT之间通信用的接口性数据结构;
S130、将所述数据结构保存至不同的package中。
3.根据权利要求2所述的基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,包括:
S411、通过transaction预先构造预期事务性数据;
S421、调用第一数据结构,将所述事务性数据通过第一数据结构输入至对应的功能模型,并通过该功能模型将数据处理成满足预设条件的需求数据;
S431、调用第二数据结构,将所述功能模型处理得到的需求数据通过第二数据结构转换成接口性数据,并经由sequence送入driver。
4.根据权利要求3所述的基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S412、通过driver接收由sequence转发的transaction;
S422、预设判断条件,对所述transaction的激励进行分析判断,判断所述激励是以接口性数据结构存在还是事务性数据结构存在:
若是存在接口性数据,则将接口性数据按时序驱动到DUT;
若是不存在接口性数据,则调用第五数据结构,通过第五数据结构将所述transaction中包含的事务性数据转换成接口性数据,并将接口性数据按时序驱动到DUT。
5.根据权利要求3所述的基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S431、通过RM接收agent转发的transaction;
S432、调用第三数据结构,通过第三数据结构将所述transaction中包含的接口性数据转换成对应功能模型需要的事务性数据,并输送至所述功能模型,通过所述功能模型将数据处理成满足预设条件的需求数据,并输出;
S433、调用第四数据结构,通过第四数据结构将所述功能模型输出的数据转换成事务性数据,并封装成transaction发送至scoreboard,等待与DUT的输出进行比对。
6.根据权利要求5所述的基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S441、获取Driver的激励信号;
S442、根据预设封装模型,将所述激励信号进行封装,得到预期格式数据;
S443、根据预设模型格式获取方法获取后继模型格式,根据所述后继模型格式选择后继模型,并将所述预期格式数据发送至后继模型进行数据处理。
7.根据权利要求6所述的基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S444、获取所述后继模型的数据处理结果;
S445、采用Bit流大小端转换模型,对所述数据处理结果进行识别,确认所述数据处理结果的数据类型;
S446、根据所述数据类型确认所述后继模型的格式,并将比特流转换为目标模型所需格式。
8.根据权利要求3所述的基于自动化验证环境生成和运行功能模型的创建方法,其特征在于,在步骤400中,所述将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,还包括:
S451、设置RTL文件列表和验证平台文件列表,通过所述RTL文件列表来指定当前DUT所需的所有的RTL代码文件,通过所述验证平台文件列表来指定验证平台所需的所有文件;
S452、解析所述RTL文件列表和所述验证平台文件列表,生成一个编译文件列表提供给vcs进行编译;
S453、将DUT的文件列表在所述RTL文件列表中引用,将VIP的文件列表在所述验证平台文件列表中引用,将package文件加载在所述验证平台文件列表后面,并保存。
9.一种实现权利要求1-8任一项中所述的基于自动化验证环境生成和运行功能模型的创建方法的装置,其特征在于,包括:
模型创建模块,用于根据预设架构方案,构建若干功能模型;
数据结构定义模块,用于根据所述功能模型的输入/输出数据结构,定义一与所述输入/输出数据结构相匹配的通用数据结构并保存至至少一个package中;
接口转换模块,用于定义所述输入/输出数据结构与所述通用数据结构之间的接口转换函数;
运行模块,用于将所述功能模型配置在预设的自动化验证环境中,并根据所述数据结构类型,调用所述接口转换函数,完成不同所述功能模型之间的格式转换,并最终实现架构方案所要求的预期行为及期望结果。
10.一种创建系统,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1至8中任意一项所述的基于自动化验证环境生成和运行功能模型的创建方法。
CN202210503852.7A 2022-05-10 2022-05-10 基于自动化验证环境生成和运行功能模型的创建方法 Pending CN117077584A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210503852.7A CN117077584A (zh) 2022-05-10 2022-05-10 基于自动化验证环境生成和运行功能模型的创建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210503852.7A CN117077584A (zh) 2022-05-10 2022-05-10 基于自动化验证环境生成和运行功能模型的创建方法

Publications (1)

Publication Number Publication Date
CN117077584A true CN117077584A (zh) 2023-11-17

Family

ID=88712073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210503852.7A Pending CN117077584A (zh) 2022-05-10 2022-05-10 基于自动化验证环境生成和运行功能模型的创建方法

Country Status (1)

Country Link
CN (1) CN117077584A (zh)

Similar Documents

Publication Publication Date Title
CN113312879B (zh) 芯片电路功能验证系统、方法、设备及存储介质
Apvrille et al. TURTLE: A real-time UML profile supported by a formal validation toolkit
US7464016B2 (en) Hot plug and hot pull system simulation
CN108460199B (zh) Cni建模系统
CN111859834B (zh) 一种基于uvm的验证平台开发方法、系统、终端及存储介质
CN116681013B (zh) 网络芯片的仿真验证方法、平台、装置、设备及介质
CN111538659B (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN111552636A (zh) 一种应用fmi协议支持aadl集成仿真的方法
CN111897738A (zh) 基于原子服务的自动化测试方法及装置
Kraemer et al. Aligning UML 2.0 state machines and temporal logic for the efficient execution of services
CN111142861B (zh) 结构化综控系统集成方法及装置
CN116090376B (zh) 芯片集成验证组件开发方法、装置及计算机设备
US7099813B2 (en) Simulating program instruction execution and hardware device operation
Porter et al. Towards model-based integration of tools and techniques for embedded control system design, verification, and implementation
CN117077584A (zh) 基于自动化验证环境生成和运行功能模型的创建方法
US20050021305A1 (en) Various methods and apparatuses for interfacing of a protocol monitor to protocol checkers and functional checkers
US20110087922A1 (en) Test method and tool for master-slave systems on multicore processors
JPH08314760A (ja) プログラム開発支援装置
WO2019021898A1 (ja) 開発支援装置
CN117376229B (zh) 基于嵌入式设备的ftp文件系统软件交叉调试方法及系统
CN117933155B (zh) 一种多进程联合仿真系统及方法、电子设备和存储介质
CN114924717A (zh) 基于dpu实现验证环境自动化生成及运行的设计方法
US7634396B2 (en) Method and computer program product for generation of bus functional models
KR101127469B1 (ko) 네트워크 기반 로봇의 소프트웨어 개발 시스템 및 방법
Apvrille et al. Verifying service continuity in a dynamic reconfiguration procedure: Application to a satellite system

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