CN116302967A - 一种NVMe模型构建及测试方法及系统 - Google Patents

一种NVMe模型构建及测试方法及系统 Download PDF

Info

Publication number
CN116302967A
CN116302967A CN202310091743.3A CN202310091743A CN116302967A CN 116302967 A CN116302967 A CN 116302967A CN 202310091743 A CN202310091743 A CN 202310091743A CN 116302967 A CN116302967 A CN 116302967A
Authority
CN
China
Prior art keywords
nvme
model
compiling
instruction
testing
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
CN202310091743.3A
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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202310091743.3A priority Critical patent/CN116302967A/zh
Publication of CN116302967A publication Critical patent/CN116302967A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提出了一种NVMe模型构建及测试方法及系统,其中,方法包括:由NVMe模型构建及测试平台实现的以下步骤:定义功能指令,定义的所述功能指令为程序空壳;下发对所述功能指令的编写任务,并接收返回的对应所述功能指令的逻辑代码;基于定义的所述功能指令构建NVMe模型;对所述NVMe模型进行分步编译;对所述NVMe模型进行仿真测试。本发明的有益效果包括:本发明的方法通过利用宏定义能够被反复编译并以最后一次编译结果为准的特点结合分步编译能够使得测试平台的测试环境具有更强的拓展性、更容易merge,方便多人协作以及方便进行test注错,并且能够提升仿真测试效率,缩短NVMe模型的开发周期。

Description

一种NVMe模型构建及测试方法及系统
技术领域
本发明涉指令程序测试领域,尤其涉及一种NVMe模型构建及测试方法。
背景技术
由于nvme命令种类繁多,且需要严格遵照nvme协议进行处理,所以整个nvmemodel需要较长的开发周期,其中nvme model将运行于nvme控制器中用于按照nvme协议执行相应的nvme操作。在将nvme model用于nvme控制器之前需要先构建nvme model并对其进行测试。在测试环节中,nvme model运行在测试平台中用于产生对待测DUT的激励,通过观察待测DUT对激励的反映以判断相应的nvme操作是否被正确执行,进而测试nvme model的正确性。
然而,在实际应用中,随着工程师对协议理解的加深,命令处理部分和命令产生部分可能会有频繁修改,或是随着nvme协议的升级,产品的功能需求,新的nvme命令可能会添加,这就要求测试平台需要有很强的拓展性,便于进行对nvme model的指令修改和指令增加。而较大的工作量意味着会有多名工程师一起编写此nvme model,这就需要测试平台具有能够快速且高效的整合代码的功能;以及在一些特殊的使用场景下,需要能够方便的通过注错test来验证设计(待测DUT)是否会产生预期的反应。
综上所述,如何使得测试平台同时具备以下三个特点是本领域亟需解决的技术问题:
1、使得测试平台的测试环境具有更强的拓展性;
2、使得测试平台的验证环境更容易merge,方便多人协作;
3、使得测试平台的可以在test测试中对环境代码进行特殊修改。
发明内容
为了能够解决上述技术问题,在本发明的一个方面,提出了一种NVMe模型构建及测试方法,所述方法包括由NVMe模型构建及测试平台实现的以下步骤:定义功能指令,定义的所述功能指令为程序空壳;下发对所述功能指令的编写任务,并接收返回的对应所述功能指令的逻辑代码;基于定义的所述功能指令构建NVMe模型;对所述NVMe模型进行分步编译;对所述NVMe模型进行仿真测试。
在一个或多个实施例中,定义功能指令包括通过宏定义的方式定义功能指令,所述功能指令包括:NVMe协议中规定的管理类指令;对应所述管理类指令的回复指令;以及符合NVMe协议的自定义指令。
在一个或多个实施例中,下发对所述功能指令的编写任务,并接收返回的对应所述功能指令的逻辑代码,包括:将包含所述功能指令的宏定义名的文件下发至对应的客户端,并与所述客户端的登录账户进行绑定;将所述客户端返回的包含对应所述功能指令的逻辑代码的文件保存至公共编译文件夹。
在一个或多个实施例中,基于定义的所述功能指令构建NVMe模型,包括:基于所述功能指令的宏定义以及除所述功能指令之外的其它功能的逻辑代码构建NVMe模型。
在一个或多个实施例中,对所述NVMe模型进行分步编译包括按照预设的编译层对所述NVMe模型进行分步编译,所述预设的编译层包括:第一层,对所述宏定义的程序空壳进行编译;第二层,对所述NVMe模型进行编译;第三层,对所述公共编译文件夹中的文件进行编译;第四层,对外部注入的测试文件进行编译,其中,所述测试文件用于通过ifdef语句对所述宏定义下的逻辑代码的执行进行条件约束。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:在基于所述功能指令构建NVMe模型后依次执行所述第一层和所述第二层中的编译,以保证定义的功能指令与所述NVMe模型中的功能指令一一对应,以及NVMe模型的编译正确性。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:在对所述NVMe模型进行仿真测试之前,依次执行所述第三层和所述第四层中的编译,以将宏定义中的逻辑代码替换为最新的逻辑代码。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:当需要修改对应的功能指令时,重新向所述NVMe模型构建及测试平台发送包含对应所述功能指令的修改后的逻辑代码的文件;并替换所述公共编译文件夹中具有相同宏定义名的原始文件;其中,所述修改对应的功能指令包括:修改原始逻辑代码或拓展新的逻辑代码。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:当需要进行注错测试时,通过使用具有对应宏定义名的测试文件向所述NVMe模型构建及测试平台发送包含对应功能指令的错误逻辑代码;并通过ifdef语句对所述错误逻辑代码的执行进行条件约束。
在本发明的第二方面,提出了一种NVMe模型构建及测试系统,包括:NVMe模型构建及测试平台;一个或多个外部设备;以及待测设计;其中,所述一个或多个外部设备与所述待测设计分别与所述NVMe模型构建及测试平台通信连接;所述NVMe模型构建及测试平台配置用于实现如上述任意一实施中的一种NVMe模型构建及测试方法的步骤,包括:定义功能指令,定义的所述功能指令为程序空壳;下发对所述功能指令的编写任务,并接收返回的对应所述功能指令的逻辑代码;基于定义的所述功能指令构建NVMe模型;对所述NVMe模型进行分步编译;对所述NVMe模型进行仿真测试。
在一个或多个实施例中,定义功能指令包括通过宏定义的方式定义功能指令,所述功能指令包括:NVMe协议中规定的管理类指令;对应所述管理类指令的回复指令;以及符合NVMe协议的自定义指令。
在一个或多个实施例中,下发对所述功能指令的编写任务,并接收返回的对应所述功能指令的逻辑代码,包括:将包含所述功能指令的宏定义名的文件下发至对应的客户端,并与所述客户端的登录账户进行绑定;将所述客户端返回的包含对应所述功能指令的逻辑代码的文件保存至公共编译文件夹。
在一个或多个实施例中,基于定义的所述功能指令构建NVMe模型,包括:基于所述功能指令的宏定义以及除所述功能指令之外的其它功能的逻辑代码构建NVMe模型。
在一个或多个实施例中,对所述NVMe模型进行分步编译包括按照预设的编译层对所述NVMe模型进行分步编译,所述预设的编译层包括:第一层,对所述宏定义的程序空壳进行编译;第二层,对所述NVMe模型进行编译;第三层,对所述公共编译文件夹中的文件进行编译;第四层,对外部注入的测试文件进行编译,其中,所述测试文件用于通过ifdef语句对所述宏定义下的逻辑代码的执行进行条件约束。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:在基于所述功能指令构建NVMe模型后依次执行所述第一层和所述第二层中的编译,以保证定义的功能指令与所述NVMe模型中的功能指令一一对应,以及NVMe模型的编译正确性。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:在对所述NVMe模型进行仿真测试之前,依次执行所述第三层和所述第四层中的编译,以将宏定义中的逻辑代码替换为最新的逻辑代码。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:当需要修改对应的功能指令时,重新向所述NVMe模型构建及测试平台发送包含对应所述功能指令的修改后的逻辑代码的文件;并替换所述公共编译文件夹中具有相同宏定义名的原始文件;其中,所述修改对应的功能指令包括:修改原始逻辑代码或拓展新的逻辑代码。
在一个或多个实施例中,本发明的一种NVMe模型构建及测试方法还包括:当需要进行注错测试时,通过使用具有对应宏定义名的测试文件向所述NVMe模型构建及测试平台发送包含对应功能指令的错误逻辑代码;并通过ifdef语句对所述错误逻辑代码的执行进行条件约束。
本发明的有益效果包括:本发明的方法通过利用宏定义能够被反复编译并以最后一次编译结果为准的特点结合分步编译能够使得测试平台的测试环境具有更强的拓展性、更容易merge,方便多人协作以及方便进行test注错,并且能够提升仿真测试效率,缩短NVMe模型的开发周期。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的一种NVMe模型构建及测试方法的工作流程图;
图2为本发明的SSD主控芯片的结构示意图;
图3为本发明的一种NVMe模型构建及测试系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
图1为本发明的一种NVMe模型构建及测试方法的工作流程图。如图1所示,本发明的一种NVMe模型构建及测试方法的工作流程包括:步骤S1、由NVMe模型构建及测试平台实现的以下步骤:步骤S2、定义功能指令,定义的功能指令为程序空壳;步骤S3、下发对功能指令的编写任务,并接收返回的对应功能指令的逻辑代码;步骤S4、基于定义的功能指令构建NVMe模型;步骤S5、对NVMe模型进行分步编译;以及步骤S6、对NVMe模型进行仿真测试。
具体的,为了提供一种具有更强的拓展性、更容易merge,方便多人协作以及方便进行test注错的测试平台的测试环境,在本发明的第一方面,提出了一种NVMe模型构建及测试方法,本领域技术人员可以理解是,该NVMe模型构建及测试方法描述的即为该测试平台的测试环境,或者说该测试环境所能实现的具体操作。在本实施例中,本发明将构建NVMe模型分为了几个步骤包括:定义功能指令,即确定本发明中的NVMe模型所需要的功能指令,以及通过区分功能指令的编写难易程度并综合该功能指令后期可能被修改的情况而确定要将哪些功能指令提前定义为程序空壳,以方便后期的修改;其中,程序空壳即为只包含功能指令名称而无具体逻辑代码的空壳。在定义功能指令后,即需要分配对该能指令的编写任务,这也是工作量最大的部分,需要由多名工程师协作完成,每个工程师仅需按照下发的编写任务完成对应指令功能的编写,而无需在意其在NVMe模型中的逻辑关系,而后将编写的逻辑代码发送给测试平台。测试平台中预先存储有基于定义的功能指令构建的NVMe模型,在通过对NVMe模型的分步编译后,获得编译后的中间文件,而后通过Elaboration操作将编译后的中间文件进行重组即可生成NVMe模型的测试程序。
如上述实施例,本发明的NVMe模型构建及测试方法能够使得测试平台具有更强的拓展性、更容易merge,方便多人协作以及方便进行test注的能力。从而能够大大提升NVMe模型的构建及测试效率,缩短NVMe模型的开发周期。
在一个实施例中,步骤S1定义功能指令的具体方式包括通过宏定义的方式定义功能指令,功能指令包括:NVMe协议中规定的管理类指令;对应管理类指令的回复指令;以及符合NVMe协议的自定义指令。
具体的,nvme协议中规定的管理类命令有22种,其中一些命令还有数十种小分支,分别需要local cpu(NVMe控制器)做出不同的命令处理,并且回复的completion也会有所不同。除了协议内所规定的命令外,开发商还可以自定义几十种其他管理命令。
图2为本发明的SSD主控芯片的结构示意图。如图2所示,由上位机发送的各种命令大部分会经由NVMC模块交给local cpu进行处理,以执行相应的指令进程,并且回复的completion也会有所不同,Local cpu model拿到这些命令后,会在图2所示的cmd processmodule中按照nvme协议,进行一些命令的特殊处理,并可能调动图2中的other logicmodule部分。命令完成以后,由completion generate module将所需要传输的数据发送出去。本发明中的Nvme模型即为运行在上述local cpu中的指令模型。
在本实施例中,本发明利用宏定义的本质是文本替换,且可以被反复编译,且最终生效是以最后一次编译为准的特点,结合后续的分步编译能够大大降低进行仿真测试前所需编译的文件数量,从而能够大大提升仿真测试的效率。
在一个实施例中,下发对功能指令的编写任务,并接收返回的对应功能指令的逻辑代码,包括:将包含功能指令的宏定义名的文件下发至对应的客户端,并与客户端的登录账户进行绑定;将客户端返回的包含对应功能指令的逻辑代码的文件保存至公共编译文件夹。
在本实施例中,下发的编写任务可以为只包含功能指令的宏定义名的文件。在另一个可选的实施例中,下发的编译任务文件中还可以包含可以使用的环境变量以及功能编写的特殊要求,例如是否需要编写回复指令。将编写任务与客户端的登录账户进行绑定的作用是,一来在后期编译出现错误时用于确定错误来自于哪个客户端上传的任务文件,二来可以通过设置上传权限来防止其他用户误传任务文件从而对其它账户上传的任务文件造成误修改。
在一个实施例中,基于定义的功能指令构建NVMe模型,包括:基于功能指令的宏定义以及除功能指令之外的其它功能的逻辑代码构建NVMe模型。其中,其它功能包括数据传输类指令的对应功能。
在一个实施例中,对NVMe模型进行分步编译包括按照预设的编译层对NVMe模型进行分步编译,预设的编译层包括:第一层,对宏定义的程序空壳进行编译;第二层,对NVMe模型进行编译;第三层,对公共编译文件夹中的文件进行编译;第四层,对外部注入的测试文件进行编译,其中,测试文件用于通过ifdef语句对宏定义下的逻辑代码的执行进行条件约束。
具体的,在基于功能指令构建NVMe模型后依次执行第一层和第二层中的编译,以保证定义的功能指令与NVMe模型中的功能指令一一对应,以及NVMe模型的编译正确性。在对NVMe模型进行仿真测试之前,依次执行第三层和第四层中的编译,以将宏定义中的逻辑代码替换为最新的逻辑代码。
如上述实施例,本发明通过结合宏定义能够被反复编译且以最后一次编译为准的特点与分步编译相结合,能够实现在进行仿真测试前仅需执行第三层和第四层中的编译,从而能够大大降低所需要编译的文件的数量,在需要反复修改指令的仿真测试过程中,能够大大提升仿真测试的效率。
在一个实施例中,本发明的一种NVMe模型构建及测试方法还包括:当需要修改对应的功能指令时,重新向NVMe模型构建及测试平台发送包含对应功能指令的修改后的逻辑代码的文件;并替换公共编译文件夹中具有相同宏定义名的原始文件;其中,修改对应的功能指令包括:修改原始逻辑代码或拓展新的逻辑代码。
在一个可选的实施例中,还可以预先定义一些自定义功能指令,并在构建NVMe模型的过程中编入上述自定义功能指令,如果这些自定义功能指令在测试前仍为程序空壳,可以通过在test文件中对这些自定义功能指令增加条件限制以不启用这些自定义功能指令,并在注错或新增功能指令的逻辑代码后再启用。
在一个实施例中,本发明的还包括:当需要进行注错测试时,通过使用具有对应宏定义名的测试文件向NVMe模型构建及测试平台发送包含对应功能指令的错误逻辑代码;并通过ifdef语句对错误逻辑代码的执行进行条件约束。其中,可以理解的是“错误逻辑代码”为刻意注错后的逻辑代码。
由上述实施例可以看出,本发明的注错过程更加方便,只需要使用刻意注错的逻辑代码通过编译替换具有相同宏定义名下的逻辑代码即可完成注错,并且可以通过条件约束控制是否执行该注错后的逻辑代码。
在本发明的第二方面,提出了一种NVMe模型构建及测试系统。图3为本发明的一种NVMe模型构建及测试系统的结构示意图。如图3所示,本发明的NVMe模型构建及测试系统包括:NVMe模型构建及测试平台100;一个或多个外部设备200;以及待测设计300;其中,一个或多个外部设备200与待测设计300分别与NVMe模型构建及测试平台100通信连接;NVMe模型构建及测试平台100配置用于实现如上述任意一实施例中的一种NVMe模型构建及测试方法中的步骤,包括:定义功能指令,定义的功能指令为程序空壳;下发对功能指令的编写任务,并接收返回的对应功能指令的逻辑代码;基于定义的功能指令构建NVMe模型;对NVMe模型进行分步编译;对NVMe模型进行仿真测试。
在一个或多个实施例中,定义功能指令包括通过宏定义的方式定义功能指令,功能指令包括:NVMe协议中规定的管理类指令;对应管理类指令的回复指令;以及符合NVMe协议的自定义指令。
在一个或多个实施例中,下发对功能指令的编写任务,并接收返回的对应功能指令的逻辑代码,包括:将包含功能指令的宏定义名的文件下发至对应的客户端,并与客户端的登录账户进行绑定;将客户端返回的包含对应功能指令的逻辑代码的文件保存至公共编译文件夹。
在一个实施例中,基于定义的功能指令构建NVMe模型,包括:基于功能指令的宏定义以及除功能指令之外的其它功能的逻辑代码构建NVMe模型。
在一个实施例中,对NVMe模型进行分步编译包括按照预设的编译层对NVMe模型进行分步编译,预设的编译层包括:第一层,对宏定义的程序空壳进行编译;第二层,对NVMe模型进行编译;第三层,对公共编译文件夹中的文件进行编译;第四层,对外部注入的测试文件进行编译,其中,测试文件用于通过ifdef语句对宏定义下的逻辑代码的执行进行条件约束。
在一个实施例中,本发明的一种NVMe模型构建及测试方法还包括:在基于功能指令构建NVMe模型后依次执行第一层和第二层中的编译,以保证定义的功能指令与NVMe模型中的功能指令一一对应,以及NVMe模型的编译正确性。
在一个实施例中,本发明的一种NVMe模型构建及测试方法还包括:在对NVMe模型进行仿真测试之前,依次执行第三层和第四层中的编译,以将宏定义中的逻辑代码替换为最新的逻辑代码。
在一个实施例中,本发明的一种NVMe模型构建及测试方法还包括:当需要修改对应的功能指令时,重新向NVMe模型构建及测试平台发送包含对应功能指令的修改后的逻辑代码的文件;并替换公共编译文件夹中具有相同宏定义名的原始文件;其中,修改对应的功能指令包括:修改原始逻辑代码或拓展新的逻辑代码。
在一个实施例中,本发明的一种NVMe模型构建及测试方法还包括:当需要进行注错测试时,通过使用具有对应宏定义名的测试文件向NVMe模型构建及测试平台发送包含对应功能指令的错误逻辑代码;并通过ifdef语句对错误逻辑代码的执行进行条件约束。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种NVMe模型构建及测试方法,其特征在于,所述方法包括由NVMe模型构建及测试平台实现的以下步骤:
定义功能指令,定义的所述功能指令为程序空壳;
下发对所述功能指令的编写任务,并接收返回的对应所述功能指令的逻辑代码;
基于定义的所述功能指令构建NVMe模型;
对所述NVMe模型进行分步编译;
对所述NVMe模型进行仿真测试。
2.根据权利要求1所述的一种NVMe模型构建及测试方法,其特征在于,定义功能指令包括通过宏定义的方式定义功能指令,所述功能指令包括:
NVMe协议中规定的管理类指令;
对应所述管理类指令的回复指令;以及
符合NVMe协议的自定义指令。
3.根据权利要求2所述的一种NVMe模型构建及测试方法,其特征在于,下发对所述功能指令的编写任务,并接收返回的对应所述功能指令的逻辑代码,包括:
将包含所述功能指令的宏定义名的文件下发至对应的客户端,并与所述客户端的登录账户进行绑定;
将所述客户端返回的包含对应所述功能指令的逻辑代码的文件保存至公共编译文件夹。
4.根据权利要求2所述的一种NVMe模型构建及测试方法,其特征在于,基于定义的所述功能指令构建NVMe模型,包括:
基于所述功能指令的宏定义以及除所述功能指令之外的其它功能的逻辑代码构建NVMe模型。
5.根据权利要求2所述的一种NVMe模型构建及测试方法,其特征在于,对所述NVMe模型进行分步编译包括按照预设的编译层对所述NVMe模型进行分步编译,所述预设的编译层包括:
第一层,对所述宏定义的程序空壳进行编译;
第二层,对所述NVMe模型进行编译;
第三层,对所述公共编译文件夹中的文件进行编译;
第四层,对外部注入的测试文件进行编译,其中,所述测试文件用于通过ifdef语句对所述宏定义下的逻辑代码的执行进行条件约束。
6.根据权利要求5所述的一种NVMe模型构建及测试方法,其特征在于,所述方法还包括:
在基于所述功能指令构建NVMe模型后依次执行所述第一层和所述第二层中的编译,以保证定义的功能指令与所述NVMe模型中的功能指令一一对应,以及NVMe模型的编译正确性。
7.根据权利要求6所述的一种NVMe模型构建及测试方法,其特征在于,所述方法还包括:在对所述NVMe模型进行仿真测试之前,依次执行所述第三层和所述第四层中的编译,以将宏定义中的逻辑代码替换为最新的逻辑代码。
8.根据权利要求1所述的一种NVMe模型构建及测试方法,其特征在于,所述方法还包括:
当需要修改对应的功能指令时,重新向所述NVMe模型构建及测试平台发送包含对应所述功能指令的修改后的逻辑代码的文件;并
替换所述公共编译文件夹中具有相同宏定义名的原始文件;
其中,所述修改对应的功能指令包括:修改原始逻辑代码或拓展新的逻辑代码。
9.根据权利要求1所述的一种NVMe模型构建及测试方法,其特征在于,所述方法还包括:
当需要进行注错测试时,通过使用具有对应宏定义名的测试文件向所述NVMe模型构建及测试平台发送包含对应功能指令的错误逻辑代码;并
通过ifdef语句对所述错误逻辑代码的执行进行条件约束。
10.一种NVMe模型构建及测试系统,其特征在于,包括:
NVMe模型构建及测试平台;
一个或多个外部设备;以及
待测设计;其中,所述一个或多个外部设备与所述待测设计分别与所述NVMe模型构建及测试平台通信连接;所述NVMe模型构建及测试平台配置用于实现如权利要求1-9任意一项所述的一种NVMe模型构建及测试方法的步骤。
CN202310091743.3A 2023-02-03 2023-02-03 一种NVMe模型构建及测试方法及系统 Pending CN116302967A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310091743.3A CN116302967A (zh) 2023-02-03 2023-02-03 一种NVMe模型构建及测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310091743.3A CN116302967A (zh) 2023-02-03 2023-02-03 一种NVMe模型构建及测试方法及系统

Publications (1)

Publication Number Publication Date
CN116302967A true CN116302967A (zh) 2023-06-23

Family

ID=86812238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310091743.3A Pending CN116302967A (zh) 2023-02-03 2023-02-03 一种NVMe模型构建及测试方法及系统

Country Status (1)

Country Link
CN (1) CN116302967A (zh)

Similar Documents

Publication Publication Date Title
CN106940428B (zh) 芯片验证方法、装置及系统
US6385765B1 (en) Specification and verification for concurrent systems with graphical and textual editors
Mathur et al. Advancements in the V-Model
KR102341154B1 (ko) 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션
JP5475996B2 (ja) モデル化およびシミュレーション方法
Windmüller et al. Active continuous quality control
US7895575B2 (en) Apparatus and method for generating test driver
CA3131079A1 (en) Test case generation method and device, computer equipment and storage medium
CN109933521A (zh) 基于bdd的自动化测试方法、装置、计算机设备及存储介质
CN111078555B (zh) 一种测试文件的生成方法、系统、服务器和存储介质
US20150269049A1 (en) Verification system and method for automated verification of register information for an electronic system
CN109739740A (zh) 一种aadl模型组合形式化验证方法
CN114327476A (zh) 芯片设计文件生成方法、装置、芯片设计方法及装置
CN115952758A (zh) 芯片验证方法、装置、电子设备及存储介质
CN1983288A (zh) 验证操作支持系统及其方法
Bolis et al. Model-driven testing for web applications using abstract state machines
CN117435483A (zh) 基于Formal工具的仿真验证激励生成方法、装置、介质及终端
CN117744548A (zh) 一种芯片验证方法、装置和存储介质
JP2008305079A (ja) 要求仕様自動検証方式
CN115455877B (zh) 一种验证平台生成装置、方法、介质及电子设备
CN116302967A (zh) 一种NVMe模型构建及测试方法及系统
CN116029255A (zh) 验证平台的生成方法及装置、电子设备与存储介质
Popić et al. The benefits of the coding standards enforcement and it's influence on the developers' coding behaviour: A case study on two small projects
US7367016B2 (en) Method and system for expressing the algorithms for the manipulation of hardware state using an abstract language
CN116956789B (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