CN114924717A - 基于dpu实现验证环境自动化生成及运行的设计方法 - Google Patents
基于dpu实现验证环境自动化生成及运行的设计方法 Download PDFInfo
- Publication number
- CN114924717A CN114924717A CN202210258868.6A CN202210258868A CN114924717A CN 114924717 A CN114924717 A CN 114924717A CN 202210258868 A CN202210258868 A CN 202210258868A CN 114924717 A CN114924717 A CN 114924717A
- Authority
- CN
- China
- Prior art keywords
- env
- tool
- environment
- verification
- dpu
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请涉及一种基于DPU实现验证环境自动化生成及运行的设计方法,通过预设环境创建条件,建立调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;调用ENV接口连接工具,生成并得到所需接口信号,并将所述预期DPU_ENV验证环境和DUT连接;定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。通过一个标准生成验证环境,在交接验证环境时,新的验证工程师的接受难度较低。提前验证工作的启动时间到架构设计阶段,同步或者早于设计工程师开始工作,可以快速进行测试。
Description
技术领域
本公开涉及芯片设计技术领域,尤其涉及一种基于DPU实现验证环境自动化生成及运行的设计方法、装置和设计系统。
背景技术
DPU是一个融合多领域IP的新领域芯片,包含SOC,NVMe控制器,OVS,VirtIO,TOE等等技术,这就需要验证工程师能够有一套快速搭建验证环境的工具,同时通过工具生成的验证环境需要能够参数化的快速合入多种类、多来源的VIP。除此之外,还需要验证工程师尽量快的并行提交多条测试用的仿真命令。
想要满足上述需求,需要一套统一的环境生成和运行仿真的工具,协同配合完成验证工程师的各种想法。同时需要一套方法可以快速合入、替换、去除某些VIP,并保证开发中的VIP的可靠性和完备性。
首先,现在流行的验证方法学——UVM,本设计生成的环境也参考了UVM。但是UVM中并没有严格要求验证工程师搭建的验证环境,验证工程师可以选择使用多个小而精的sequence配合virtualsequence和virtualsequencer的功能,也可以选择一个大而全的sequence来驱动不同的激励。这在不同经验不同经历的验证工程师手上可能会写出风格迥异的验证环境,给后续的工作交接,验证方案评审带来额外的时间和学习成本。
同时整个芯片的研发是从架构工程师制定架构编写HLD开始的,而搭建一套验证环境需要更详细LLD,也就是说通常一项验证任务的开始时间就已经落后于RTL开发了。
另外还有一种不推荐的环境复用方式是将另一套环境想要的代码复制过来,这种方式会带来一系列的负面问题,包括代码同步问题,可靠性问题,多种风格的代码融合在一起带来的可读性,维护问题等等。这种方式还需要被复制的环境要先于当前环境稳定。
用户更希望验证工作能够在架构工程师编写HLD的时候就参与进去,根据架构工程师的设计方案,提前快速的产生一套专用环境;之后,当设计工程师完成RTL编码或者提供了RTL顶层文件之后,我们也希望能够快速的将这套专用环境与RTL连接起来。同时更希望所有验证工程师搭建的环境的主体框架是一样的,方便工作交接,简化验证方案的评审流程,节省验证工程师的时间。
这需要用户有一套相对基础的模板环境(env_base)以及一个可以自动化的基于模板环境创建一套专用环境的ENV生成工具。同时还需要一个ENV接口连接工具完成在生成的环境中实例化DUT,完善interface,将生成的环境与DUT进行连接等功能。
另一方面,针对EDA工具来说,现有的EDA工具是靠编写Makefile文件通过Make命令启动,但是单纯依靠Make命令运行大量测试用例的话,一是需要验证工程师维护一份较为复杂的Makefile文件,以支持各种使用场景;二是验证工程师要么将多条make命令写到一个文件中顺序运行,要么手动一条一条执行。前者要注意make命令的正确性,同时无法及时查看到测试用例的仿真结果。后者虽然可以及时看到所有测试用例的结果,但是会大量占用验证工程师的精力。所以实际工作中需要有功能更加丰富的工具来辅助验证工程师提交仿真命令,回收并统计仿真结果。
发明内容
有鉴于此,本公开提出了一种基于DPU实现验证环境自动化生成及运行的设计方法和装置。
根据本公开的一方面,提供了一种基于DPU实现验证环境自动化生成及运行的设计方法,包括如下步骤:
S100、调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;
S200、调用ENV接口连接工具,生成所需接口信号,并将所述预期DPU_ENV验证环境和DUT连接;
S300、定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。
作为本申请的一种可选实施方案,可选地,在步骤S100中,所述调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境,包括:
S110、预设环境创建条件,建立基于UVM模板的验证环境框架env_base;
S120、对所述验证环境框架env_base进行预处理,得到env_base预处理验证环境;
S130、使用预设工具,通过给定预设参数,定义所述env_base预处理验证环境中的harness和interface接口;
S140、根据预设环境创建条件,编写环境插件并结合各种功能组件,调用ENV生成工具给定具体参数生成并得到预期DPU_ENV验证环境。
作为本申请的一种可选实施方案,可选地,在步骤S200中,所述调用ENV接口连接工具,生成并得到所需接口信号,并将预期DPU_ENV验证环境和DUT连接,包括:
S210、调用ENV接口连接工具并给定参数,将RTL顶层模块实例化到所述预期DPU_ENV验证环境中的harness中作为DUT;
S220、基于所述预期DPU_ENV验证环境的环境目录,调用ENV接口连接工具并给定具体参数,将所述env_base预处理验证环境通过所述RTL顶层接口与功能模型的RTL顶层连接,得到完整DPU_ENV验证环境;
S230、基于所述预期DPU_ENV验证环境,将interface与所述DUT在harness中相连接,得到完整的验证环境。
作为本申请的一种可选实施方案,可选地,在步骤S200中,所述调用ENV接口连接工具,生成并得到所需接口信号,并将预期DPU_ENV验证环境和DUT连接,还包括:
S211、预设封装目录,通过所述封装目录将所述完整的验证环境封装在一个package中;
S221、设置RTL文件列表和验证平台文件列表,通过所述RTL文件列表来指定当前DUT所需的所有的RTL代码文件,通过所述验证平台文件列表来指定验证平台所需的所有文件。
作为本申请的一种可选实施方案,可选地,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S311、设定构建条件,创建RUN工具,用作仿真启动;
S321、预设功能选项,并在所述预设功能选项与EDA工具之间建立关联匹配连接关系;
S331、通过所述RUN工具,调用所述EDA工具,并根据预设仿真选择条件,实现不同模式和不同选项的仿真。
作为本申请的一种可选实施方案,可选地,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S312、通过所述RUN工具解析所述RTL文件列表和所述验证平台文件列表,生成一个编译文件提供给vcs进行编译;
S322、根据引用关系,将DUT的文件列表在所述RTL文件列表中引用,将VIP的文件列表在所述验证平台文件列表中引用;
S332、将package文件加载在所述验证平台文件列表后面,并保存。
作为本申请的一种可选实施方案,可选地,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S313、根据round的数值,通过reg模式确定List循环次数;
S323、通过所述RUN工具,进行一轮List仿真;
S333、确认空闲子进程是否大于1,检查子进程数量。
本发明第二方面提供一种实现上述所述的基于DPU实现验证环境自动化生成及运行的设计方法的装置,包括:
ENV生成工具调用单元,用于调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;
ENV接口连接工具调用单元,用于调用ENV接口连接工具,并将所述预期DPU_ENV验证环境和DUT连接,生成并得到所需接口信号;
RUN工具调用单元,用于定义RUN工具,建立预设功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。
本发明第三方面提供一种设计系统,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现上述所述的基于DPU实现验证环境自动化生成及运行的设计方法。
本申请的技术效果:
本发明通过调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;调用ENV接口连接工具,生成所需接口信号,并将所述预期DPU_ENV验证环境和DUT连接;定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。能够基于一个env_base和编辑好的环境生成工具生成验证环境,一定程度上避免了验证工程师在搭建验证环境阶段因为可能会出现的环境bug而浪费的时间。
由于所有环境是通过一个标准生成的,在交接验证环境时,新的验证工程师的接受难度较低。提前验证工作的启动时间到架构设计阶段,同步或者早于设计工程师开始工作,在设计工程师完成设计后可以快速进行测试。
由于不需要每个验证工程师都各自开发一套类似的模型,因此提高验证结果的可靠性。
通过RUN工具快速加入指定文件到编译列表,给多VIP联合仿真的提供了更多的可能性和可行性。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出为本发明基于DPU实现验证环境自动化生成及运行的设计方法的实时流程示意图;
图2示出为本发明调用ENV生成工具的示意图;
图3示出为本发明调用ENV接口连接工具的示意图;
图4示出为本发明RUN工具的RUN工具的命令介绍示意图;
图5示出为本发明RUN工具参数介绍示意图;
图6示出为本发明其中一个实施例中设计的验证环境模板示意图;
图7示出为本发明RUN工具reg模式运行流程示意图;
图8示出为本发明RUN一轮List仿真的过程示意图;
图9示出为本发明RUN检查子进程数量的流程示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
实施例1
本技术,为了提前验证工作的启动时间到架构设计阶段,减少验证工程师在验证环境搭建、测试用例的执行上花费的时间,采取了如下技术方案:
1)、编写自动化运行仿真的脚本工具,快速完成参数添加、多测试用例自动提交,定时提交任务等功能。解验证工程师提交仿真命令需要消耗大量时间的问题。
2)、编写一套通用的基于UVM的环境模板,编写脚本复制并重命名环境模板到指定位置生成一套专用环境,同时通过参数控制脚本将专用的代码增加到生成的专用环境中。
3)、在第二步生成的专用环境的基础上连接DUT,生成interface的接口定义。之后,验证工程师只需要编写具体的接口驱动、信号监测等代码即可。
按照上述三种解决方案开展验证工作的话,可以提前验证工作的启动时间到架构设计阶段,减少验证工程师在验证环境搭建、测试用例的执行上花费的时间。
如图1所示,根据本公开的一方面,提供了一种基于DPU实现验证环境自动化生成及运行的设计方法,包括如下步骤:
S100、调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;
自动化环境方案首先依赖验证工程师基于自身习惯编写出一套基本的验证环境框架env_base,然后通过脚本语言编写一套工具通过指定参数将env_base复制到指定位置,并修改为指定名称,再根据参数及关键字将指定代码去除或增加到关键字指向的位置,最后通过脚本语言编写的接口连接工具将DUT与ENV相连,实现验证环境框架env_base的搭建。
具体创建时,根据验证团队自身习惯和经验编写出一套基本的验证环境框架env_base。
作为本申请一种可选方案,在步骤S100中,所述调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境,包括:
S110、预设环境创建条件,建立验证环境框架env_base;
S120、对所述验证环境框架env_base进行预处理,得到env_base预处理验证环境;
S130、使用预设工具,通过给定预设参数,定义所述env_base预处理验证环境中的harness和interface接口;
S140、根据预设环境创建条件,编写环境插件并结合各种功能组件,调用ENV生成工具给定具体参数生成并得到预期DPU_ENV验证环境。
具体操作时,如图2所示,通过配置不同的参数分2个阶段生成可工作的验证环境,每个验证工程师只需要在此基础上进行驱动、监测、参考模型等具有唯一性的工作,不需要重复的进行基础的验证环境编码,节省了验证工程师的时间。
生成一套完整的环境的步骤,整体分为准备工作,和两个步骤。
准备工作包含以下内容:
根据验证团队制定的coding style编写出一套基于UVM的模板环境env_base。
使用脚本语言编写一套工具通过指定参数将env_base复制到指定位置,并修改为指定名称生成一套专用环境,再根据参数及关键字在专用环境中将指定代码去除或增加到关键字指向的位置。
使用脚本语言编写一套工具通过给定参数将RTL的顶层实例化到专用环境顶层文件(harness)中,同时在专用环境的接口(interface)文件中生成对应的接口定义,最后环境顶层文件中将专用环境的接口与DUT的对应接口连接。
根据需要编写环境插件,这部分代码的重用性不如env_base,但是也是会在各种场景经常使用的。例如寄存器模型,response等。
需要使用准备好的env_base,各种功能组件,调用ENV生成工具的同时给定具体参数生成基础的专用环境。
此时生成的专用环境只有基础部分,缺少interface中的接口定义,DUT的实例化,以及ENV和DUT的连接代码。
S200、调用ENV接口连接工具,并将所述预期DPU_ENV验证环境和DUT连接,生成并得到所需接口信号;
验证环境和设计工程师实现的DUT,需要连接,采用ENV接口连接工具,连接验证环境和DUT。作为本申请的一种可选实施方案,可选地,在步骤S200中,所述调用ENV接口连接工具,并将预期DPU_ENV验证环境和DUT连接,生成并得到所需接口信号,包括:
S210、调用ENV接口连接工具并给定参数,将RTL顶层模块实例化到所述预期DPU_ENV验证环境中的harness中作为DUT;
S220、基于所述预期DPU_ENV验证环境的环境目录,调用ENV接口连接工具并给定具体参数,将所述env_base预处理验证环境通过所述RTL顶层接口与功能模型的RTL顶层连接,得到完整DPU_ENV验证环境;
S230、基于所述预期DPU_ENV验证环境,将interface与所述DUT在harness中相连接,得到完整的验证环境。
在设计工程师定义好了RTL顶层接口后,在第一步生成的环境目录下,调用ENV接口连接工具给定具体参数,将环境和功能模型de RTL顶层连接起来,同时生成interface中的接口信号,得到完整的DPU_ENV。此时生成的环境只需要补充驱动、监测等部分代码即可。
如图3所示,在设计工程师定义好了RTL顶层接口后,在第一步生成的环境目录下,调用ENV接口连接工具给定具体参数,将环境和RTL顶层连接起来,生成interface中的接口信号,实例化RTL顶层模块到专用环境的harness文件中,同时在harness文件中将环境的interface和RTL顶层连接起来。
通过接口连接,可以增加RTL顶层设计的文件,使得得到完整的DPU_ENV。
通过上述步骤得到的验证环境,缺乏驱动、监测等部分代码,此时生成的环境只需要补充驱动、监测等部分代码即可进行验证使用。
S300、定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。
为了进一步将验证工程师从重复的工作中释放出来,以便完成更多的创意性工作,本技术重新定义并创建了RUN工具,通过所述RUN工具与功能选项之间建立连接,由RUN工具通过工具参数动态的控制验证环境的数据构造和数据处理,最大限度的复用环境和测试用例,进一步减少验证工程师的重复性工作。
作为本申请的一种可选实施方案,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S311、设定构建条件,创建RUN工具,用作仿真启动;
S321、预设功能选项,并在所述预设功能选项与EDA工具之间建立关联匹配连接关系;
S331、通过所述RUN工具,调用所述EDA工具,并根据预设仿真选择条件,实现不同模式和不同选项的仿真。
RUN工具通过工具参数动态的控制验证环境的数据构造和数据处理,最大限度的复用环境和测试用例,进一步减少验证工程师的重复性工作。对需要用到的标准协议和架构定义好的方案进行功能模型化。
RUN工具是用来调用EDA工具进行仿真的工具,它的设计在于用户要提供哪些选项。功能选项,由用户提前在平台上根据自定义方式创建或者调用。
自动化运行工具RUN工具提供了多种选项,方便验证工程师在不同的仿真模式下管理不同的控制宏,同时提供了测试用例列表的多次循环仿真,定时更新项目目录并启动指定仿真等功能,进一步将验证工程师从重复的工作中释放出来,以便完成更多的创意性工作。
如图4和5所示,分别为RUN工具的命令介绍示意图及其参数介绍示意图,其具体工具使用命令和定义,本处不再赘述。
本实施例,下面将具体给出一个定义的env_base环境模板。
首先,按照上述步骤,需要完成一套env_base,ENV生成工具,ENV接口连接工具来完成基础环境搭建。
然后,需要完成RUN工具的设计和实现。
在此基础上,验证工程师只需要完成driver的驱动部分,monitor的采样部分,以及RM的部分即可,经验上来看,使用这套方案搭建验证环境,能够在设计人员提供RTL文件列表的当天,提供一套可以驱动DUT的验证平台。
如图6所示,为一个设计的验证环境模板。其中,TestBase部分和Harness部分都由ENV生成工具生成,只不过此时Harness中的DUT还不存在,interface中还没有任何接口定义。而Harness部分实际是由ENV接口连接工具配合设计工程师给的RTL顶层文件相互配合完善而成的。
在本设计中,从激励产生到产生期望数据,再到数据比对的数据通路有以下7个步骤,基本是与UVM相同,包括:
1)Testcase将继承自TestBase,会将想要发出的transaction放入在TestBase的Config中trans_q队列中;
2)由Sequence逐个的通过uvmTLM机制送到Driver中;
3)Driver会分析transaction中的内容驱动interface;
4)In_monitor会从interface的输出端收集接口信息还原成transaction中定义好的数据结构送到RM;
5)Out_monitor会从interface的输入端收集接口信息,并组织成将要进行比较的数据结构存入transaction中送到SCB;
6)RM将In_monitor送来的transaction进行解析,根据解析结果调用不同的处理函数完成数据处理,并将处理结果组织成将要进行比较的数据结构存入transaction中送到SCB;
7)SCB对收自于RM和Out_monitor的transaction调用uvmcompare进行结果比对。
基于以上实现,本设计已经提供了一套工具完成从环境创建以及编译文件管理规则,此时就需要完成RUN工具设计和实现以完成直接测试,回归测试,定时测试等工作,同时能够很方便的切换VIP复用环境和Testcase完成新的测试。
通过上述流程可以很快的搭建出一套通用的验证环境,但是对于DPU来说还需要能够快速整合多来源的VIP。
本设计的方案是设计一套目录结构将上述环境部分封装在一个package中。
在一种可选实施方案中,在步骤S200中,所述调用ENV接口连接工具,生成并得到所需接口信号,并将预期DPU_ENV验证环境和DUT连接,还包括:
S211、预设封装目录,通过所述封装目录将所述完整的验证环境封装在一个package中;
S221、设置RTL文件列表和验证平台文件列表,通过所述RTL文件列表来指定当前DUT所需的所有的RTL代码文件,通过所述验证平台文件列表来指定验证平台所需的所有文件。
所述封装目录,可以根据不同的RUN命令或者预定数据协议进行对应封装模型的选择,比如在OVS的测试中,需要验证工程师将Layer2,Layer3,Layer4等多层网络协议按照RFC标准封装成指定格式的数据;在NVME测试中,需要验证工程师按照NVME协议要求的封装出SQE等。
再设计一套文件列表分为RTL文件列表(rtl_filelist.f)和验证平台文件列表(tb_filelist.f),其中RTL文件列表是用来指定当前DUT所需的所有的RTL代码文件,验证平台文件列表是用来指定验证平台所需的所有文件,包括验证环境,VIP等。
作为本申请的一种可选方案,可选地,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S312、通过所述RUN工具解析所述RTL文件列表和所述验证平台文件列表,生成一个编译文件提供给vcs进行编译;
S322、根据引用关系,将DUT的文件列表在所述RTL文件列表中引用,将VIP的文件列表在所述验证平台文件列表中引用;
S332、将package文件加载在所述验证平台文件列表后面,并保存。
通过所述RUN工具来解析两个文件列表,生成一个编译文件(gen.f)提供给vcs进行编译。
将DUT的文件列表在rtl_filelist.f中引用,将VIP的文件列表在tb_filelist.f中引用,再在tb_filelist.f文件的最后加上环境的package文件,保存在平台即可。
基于以上实施,完成一套从环境创建以及编译文件管理规则的工具,此时就需要完成RUN工具设计和实现以完成直接测试,回归测试,定时测试等工作。同时能够很方便的切换VIP复用环境和Testcase完成新的测试。
为了满足上述测试要求,同时还需要RUN工具在仿真时,需要满足如下测试条件。
作为本申请的一种可选方案,可选地,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S313、根据round的数值,通过reg模式确定List循环次数;
如图7所示,首先需要通过RUN工具,运行“reg模式”的命令。根据round的数值,确定List循环次数;其次,根据当前的循环次数,确定log文件名;然后替换掉部分参数,进行并完成一轮List的仿真,直到最后一次循环。
S323、通过所述RUN工具,进行一轮List仿真;
如图8所示,一轮仿真的过程如下:
首先确定空闲子进程是否大于1,然后逐行获取List中以tc=开始的每一行;不全tc指代的testcase路径,并根据参数解析指定的rtl_filelist.f和tb_filelist.f,生成gen.f文件,并存放解析结果。
将参数转换成Makefile的格式,并创建子进程并执行仿真。
S333、确认空闲子进程是否大于1,检查子进程数量。
如图9所示,首先需要收集本工具进程创建的子进程P,收集已完成并撤销的子进程NP,并判断P-NP的数值是否小于subproc?是则结束检查,否则继续收集。
实施例2
基于实施例1的实施,本实施,对应提供根据本公开的另一方面,提供了本申请第二方面提供一种实现上述所述的基于DPU实现验证环境自动化生成及运行的设计方法的装置,包括:
ENV生成工具调用单元,用于调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;
ENV接口连接工具调用单元,用于调用ENV接口连接工具,并将所述预期DPU_ENV验证环境和DUT连接,生成并得到所需接口信号;
RUN工具调用单元,用于定义RUN工具,建立预设功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。
上述各个模块/单元/硬件的功能和实施原理,具体参见上述实施例的描述,本处不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例3
更进一步地,根据本公开的另一方面,本申请第三方面还提供一种设计系统,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现上述所述的基于DPU实现验证环境自动化生成及运行的设计方法。
本公开实施例验证系统包括处理器以及用于存储处理器可执行指令的存储器。其中,处理器被配置为执行可执行指令时实现前面任一所述的一种基于DPU实现验证环境自动化生成及运行的设计方法。
此处,应当指出的是,处理器的个数可以为一个或多个。同时,在本公开实施例的验证系统中,还可以包括输入装置和输出装置。其中,处理器、存储器、输入装置和输出装置之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的一种基于DPU实现验证环境自动化生成及运行的设计方法所对应的程序或模块。处理器通过运行存储在存储器中的软件程序或模块,从而执行控制系统的各种功能应用及数据处理。
输入装置可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置可以包括显示屏等显示设备。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (9)
1.一种基于DPU实现验证环境自动化生成及运行的设计方法,其特征在于,包括如下步骤:
S100、调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;
S200、调用ENV接口连接工具,生成所需接口信号,并将所述预期DPU_ENV验证环境和DUT连接;
S300、定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。
2.根据权利要求1所述的基于DPU实现验证环境自动化生成及运行的设计方法,其特征在于,在步骤S100中,所述调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境,包括:
S110、预设环境创建条件,建立基于UVM模板的验证环境框架env_base;
S120、对所述验证环境框架env_base进行预处理,得到env_base预处理验证环境;
S130、使用预设工具,通过给定预设参数,定义所述env_base预处理验证环境中的harness和interface接口;
S140、根据预设环境创建条件,编写环境插件并结合各种功能组件,调用ENV生成工具给定具体参数生成并得到预期DPU_ENV验证环境。
3.根据权利要求2所述的基于DPU实现验证环境自动化生成及运行的设计方法,其特征在于,在步骤S200中,所述调用ENV接口连接工具,生成并得到所需接口信号,并将预期DPU_ENV验证环境和DUT连接,包括:
S210、调用ENV接口连接工具并给定参数,将RTL顶层模块实例化到所述预期DPU_ENV验证环境中的harness中作为DUT;
S220、基于所述预期DPU_ENV验证环境的环境目录,调用ENV接口连接工具并给定具体参数,将所述env_base预处理验证环境通过所述RTL顶层接口与功能模型的RTL顶层连接,得到完整DPU_ENV验证环境;
S230、基于所述预期DPU_ENV验证环境,将interface与所述DUT在harness中相连接,得到完整的验证环境。
4.根据权利要求3所述的基于DPU实现验证环境自动化生成及运行的设计方法,其特征在于,在步骤S200中,所述调用ENV接口连接工具,生成并得到所需接口信号,并将预期DPU_ENV验证环境和DUT连接,还包括:
S211、预设封装目录,通过所述封装目录将所述完整的验证环境封装在一个package中;
S221、设置RTL文件列表和验证平台文件列表,通过所述RTL文件列表来指定当前DUT所需的所有的RTL代码文件,通过所述验证平台文件列表来指定验证平台所需的所有文件。
5.根据权利要求4所述的基于DPU实现验证环境自动化生成及运行的设计方法,其特征在于,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S311、设定构建条件,创建RUN工具,用作仿真启动;
S321、预设功能选项,并在所述预设功能选项与EDA工具之间建立关联匹配连接关系;
S331、通过所述RUN工具,调用所述EDA工具,并根据预设仿真选择条件,实现不同模式和不同选项的仿真。
6.根据权利要求5所述的基于DPU实现验证环境自动化生成及运行的设计方法,其特征在于,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S312、通过所述RUN工具解析所述RTL文件列表和所述验证平台文件列表,生成一个编译文件提供给vcs进行编译;
S322、根据引用关系,将DUT的文件列表在所述RTL文件列表中引用,将VIP的文件列表在所述验证平台文件列表中引用;
S332、将package文件加载在所述验证平台文件列表后面,并保存。
7.根据权利要求6所述的基于DPU实现验证环境自动化生成及运行的设计方法,其特征在于,在步骤S300中,所述定义RUN工具,建立功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真,还包括:
S313、根据round的数值,通过reg模式确定List循环次数;
S323、通过所述RUN工具,进行一轮List仿真;
S333、确认空闲子进程是否大于1,检查子进程数量。
8.一种实现权利要求1-7任一项所述的基于DPU实现验证环境自动化生成及运行的设计方法的装置,其特征在于,包括:
ENV生成工具调用单元,用于调用ENV生成工具,通过所述ENV生成工具生成基础环境框架,并基于所述基础环境框架创建得到预期DPU_ENV验证环境;
ENV接口连接工具调用单元,用于调用ENV接口连接工具,并将所述预期DPU_ENV验证环境和DUT连接,生成并得到所需接口信号;
RUN工具调用单元,用于定义RUN工具,建立预设功能选项与EDA工具之间的连接,通过所述RUN工具实现不同模式和不同选项的仿真。
9.一种设计系统,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1至7中任意一项所述的基于DPU实现验证环境自动化生成及运行的设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210258868.6A CN114924717A (zh) | 2022-03-16 | 2022-03-16 | 基于dpu实现验证环境自动化生成及运行的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210258868.6A CN114924717A (zh) | 2022-03-16 | 2022-03-16 | 基于dpu实现验证环境自动化生成及运行的设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114924717A true CN114924717A (zh) | 2022-08-19 |
Family
ID=82804581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210258868.6A Pending CN114924717A (zh) | 2022-03-16 | 2022-03-16 | 基于dpu实现验证环境自动化生成及运行的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114924717A (zh) |
-
2022
- 2022-03-16 CN CN202210258868.6A patent/CN114924717A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113312879B (zh) | 芯片电路功能验证系统、方法、设备及存储介质 | |
CN111859834B (zh) | 一种基于uvm的验证平台开发方法、系统、终端及存储介质 | |
CN111324540A (zh) | 一种接口测试方法及装置 | |
US20140006868A1 (en) | Test Executive System With Offline Results Processing | |
EP0453160A2 (en) | A method and apparatus for analyzing the flow of data through a complex information exchange system | |
CN113946323A (zh) | 基于微服务体系的在线开发方法、装置、设备及存储介质 | |
CN114878186A (zh) | 一种车载设备的自动化测试装置及方法 | |
CN114201397A (zh) | 一种接口测试建模方法、装置、电子设备和存储介质 | |
CN114924717A (zh) | 基于dpu实现验证环境自动化生成及运行的设计方法 | |
JPH06348766A (ja) | ツール組み込み方法及び装置 | |
JPH08314760A (ja) | プログラム開発支援装置 | |
CN113868140A (zh) | 一种自动化测试的方法及存储介质 | |
CN100419711C (zh) | 一种服务调试命令发射器及其处理方法 | |
CN117077584A (zh) | 基于自动化验证环境生成和运行功能模型的创建方法 | |
WO2001084316A1 (en) | Rapid debugging method on rapid prototyping apparatus for complex embedded system | |
CN111737888B (zh) | 功能逻辑动态执行方法 | |
von Hanxleden et al. | A codesign approach for safety-critical automotive applications | |
CN115270485A (zh) | 一种仿真产品敏捷开发方法及系统 | |
JPH06250884A (ja) | モジュール試験支援装置 | |
CN113283211A (zh) | 基于Verilog实现的微处理器自动化验证方法及验证装置 | |
Chaczko et al. | Design of unit testing using xUnit. net | |
CN114579460A (zh) | 用户界面测试方法和装置 | |
CN114968339A (zh) | 基于有向无环图特性进行软件基础设施资源部署的方法 | |
CN115543284A (zh) | 代码的自动生成与集成方法、装置、服务器及存储介质 | |
CN113297085A (zh) | 一种基于soc平台的算法验证方法及装置 |
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 |