CN116090376A - 芯片集成验证组件开发方法、装置及计算机设备 - Google Patents
芯片集成验证组件开发方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN116090376A CN116090376A CN202310369200.3A CN202310369200A CN116090376A CN 116090376 A CN116090376 A CN 116090376A CN 202310369200 A CN202310369200 A CN 202310369200A CN 116090376 A CN116090376 A CN 116090376A
- Authority
- CN
- China
- Prior art keywords
- verification component
- soc
- target
- configuration information
- target verification
- 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.)
- Granted
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/33—Design verification, e.g. functional simulation or model checking
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种芯片集成验证组件开发方法、装置及计算机设备。该方法获取目标设计模块所属的SoC工程的环境配置信息,通过脚本进行目标验证组件的顶层生成;获取SoC工程所在测试平台的路径,在路径下存放目标验证组件,并生成用于编译的目标验证组件编译文件列表;根据目标验证组件的实现信息在SoC工程的验证顶层进行对目标验证组件的挂载,并将编译文件列表自动加载至SoC工程的编译系统;基于SoC工程的验证环境进行仿真,并通过开关实现目标验证组件的挂载和关闭,以进行联合调试和测试仿真。本申请能够高效精准的完成部分SoC验证工作中测试平台的对验证组件的搭建工作,为SoC级的整体验证工作节约时间。
Description
技术领域
本申请涉及计算机技术领域,具体地,涉及一种芯片集成验证组件开发方法、装置及计算机设备。
背景技术
近年来,集成电路的发展和芯片技术的攻关成为相关厂商的重点方向。对应芯片的流片成功与否直接关系到公司的生存前景和未来发展方向,而其中对于占芯片开发周期80%左右的芯片功能验证测试工作就变得更加关键。
为了加快整个芯片开发流程里的功能验证测试周期,如何更快更高效的开发验证组件并正确把他们集成到整个验证环境里,在目前大规模的复杂SoC系统的验证工作中变得越来越重要。毕竟如果不能高效开发出来合适的验证组件及正确把他们集成到整个验证环境里,不仅会阻塞对应的验证工程师后续的验证工作,并且如果开发和集成工作里出了纰漏,都会给整个验证工作带来事倍功半的效果,进而拖累整个验证周期,影响整个芯片项目的交付和商业市场。
现阶段在SoC系统里开发并集成验证组件一般有两种方案,第一种是针对比较成熟的模块比如I2C、UART通用异步收发器、SPI串行外设接口等,或者总线比如AHB数据传输总线接口、AXI数据传输总线接口、APB等,通常有效的方法是在验证环境里集成对应的VIP(即验证IP),并将对应VIP的agent配置为被动模式就可以检查到相应模块的端口信息及功能、协议等检查。第二种是针对自研的功能模块,比如系统控制模块、电源模块、加解密模块、编解码模块等,这类设计模块在SoC的功能检查实现模块一般需要验证工程师结合对项目说明书里对应模块功能描述的理解来手动开发,然后手动更新验证环境来完成对应的功能检查实现模块的集成。这样的话当验证在系统级的场景测试,以及整个系统级的回归测试用例的时候就可以实现对相应设计模块的功能检查。
对于上述第二种方案,其缺点在于过于依赖工程师的个人能力,每一步都需要验证工程师独立来实现,某一部分出错后,需要花费大量时间去调试和迭代更新,导致整体验证仿真进度拖后,且一旦开发和集成过程中出现纰漏,容易导致测试无法发现设计中的bug,进而影响芯片质量。
发明内容
为了解决上述技术缺陷之一,本申请实施例中提供了一种芯片集成验证组件开发方法、装置及计算机设备。
根据本申请实施例的第一个方面,提供了一种芯片集成验证组件开发方法,该方法包括:
获取目标设计模块所属的SoC工程的环境配置信息,并根据环境配置信息通过脚本进行目标验证组件的顶层生成;
获取SoC工程所在测试平台的路径,并根据环境配置信息,在路径下存放目标验证组件,并生成用于编译的目标验证组件编译文件列表;
根据目标验证组件的实现信息在SoC工程的验证顶层进行对目标验证组件的挂载,并将编译文件列表自动加载至SoC工程的编译系统;
基于SoC工程的验证环境进行仿真,并通过开关实现目标验证组件的挂载和关闭,以进行联合调试和测试仿真。
在本申请一个可选的实施例中,该方法中获取目标设计模块所属的SoC工程的环境配置信息,并根据环境配置信息通过脚本进行目标验证组件的顶层生成的步骤进一步包括:
通过Python脚本定义一通用模块验证组件生成函数,并根据现有的SoC工程的配置信息,将需要进行顶层生成的目标验证组件所对应的设计模块名传参至生成函数,生成函数对SoC工程和设计模块名进行信息抽取后,进行目标验证组件的顶层生成。
在本申请一个可选的实施例中,该方法中获取目标设计模块所属的SoC工程的环境配置信息,并根据环境配置信息通过脚本进行目标验证组件的顶层生成的步骤进一步包括:
通过创建一Verilog文件,以进行目标验证组件的顶层生成。
在本申请一个可选的实施例中,该方法中获取目标设计模块所属的SoC工程的环境配置信息,并根据环境配置信息通过脚本进行目标验证组件的顶层生成的步骤进一步包括:
生成函数对SoC工程和设计模块名进行信息抽取后,通过Verilog文件进行目标验证组件的端口信号声明和定义、通用接口例化及传递。
在本申请一个可选的实施例中,该方法中获取SoC工程所在测试平台的路径,并根据环境配置信息,在路径下存放目标验证组件,并生成用于编译的目标验证组件编译文件列表的步骤进一步包括:
获取SoC工程所在测试平台的路径,并根据环境配置信息,生成一用于存放被包含的开发文件的备用文件列表空文件。
在本申请一个可选的实施例中,该方法中根据目标验证组件的实现信息在SoC工程的验证顶层进行对目标验证组件的挂载,并将编译文件列表自动加载至SoC工程的编译系统的步骤进一步包括:
进行自动加载时,首先判断是否需要对应的挂载目标验证组件;
若需要,则在验证环境的封装层将目标验证组件进行例化,同时将目标验证组件和编译文件列表收集追加至现有的SoC工程的配置信息中,并对现有的SoC工程的配置信息进行更新,以使SoC工程在编译时可以解析到对应的目标验证组件的挂载。
根据本申请实施例的第二个方面,提供了一种芯片集成验证组件开发装置,该装置包括验证组件生成模块、文件列表生成模块、验证组件挂载模块和仿真调试模块;
验证组件生成模块,用于获取目标设计模块所属的SoC工程的环境配置信息,并根据环境配置信息通过脚本进行目标验证组件的顶层生成;
文件列表生成模块,用于获取SoC工程所在测试平台的路径,并根据环境配置信息,在路径下存放目标验证组件,并生成用于编译的目标验证组件编译文件列表;
验证组件挂载模块,用于根据目标验证组件的实现信息在SoC工程的验证顶层进行对目标验证组件的挂载,并将编译文件列表自动加载至SoC工程的编译系统;
仿真调试模块,用于基于SoC工程的验证环境进行仿真,并通过开关实现目标验证组件的挂载和关闭,以进行联合调试和测试仿真。
在本申请一个可选的实施例中,验证组件挂载模块进一步包括:
进行自动加载时,首先判断是否需要对应的挂载目标验证组件;
若需要,则在验证环境的封装层将目标验证组件进行例化,同时将目标验证组件和编译文件列表收集追加至现有的SoC工程的配置信息中,并对现有的SoC工程的配置信息进行更新,以使SoC工程在编译时可以解析到对应的目标验证组件的挂载。
根据本申请实施例的第三个方面,提供了一种计算机设备,包括:存储器;
处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
根据本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
采用本申请实施例中提供的芯片集成验证组件开发方法,不需用户去单独熟悉目标设计模块的内容,也不用去学习了解所在SoC工程项目的验证环境。用户只需要知道目标设计模块在SoC里的例化名,脚本就可以自动去解析和获取相关信息,用户只需要通过“True”或者“False”值去配置是否打开目标模块的验证组件挂载功能即可。从实现技术角度来说,本申请主要利用了Python脚本的面向对象优势,复用了针对文件系统操作的库函数,结合通过仿真编译器提供的一套通用命令行接口对整个SoC系统的层级结构和模块信息的解析和提取,高效并精准的完成了部分SoC验证工作中测试平台的对验证组件的搭建工作,为SoC级的整体验证工作节约时间。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的芯片集成验证组件开发方法的流程图;
图2为本申请实施例提供的目标验证组件的挂载效果示意图;
图3芯片集成验证组件开发装置的结构图;
图4为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在实现本申请的过程中,发明人发现,针对SoC系统里自研的设计模块,因为涉及到功能的特殊性以及专业性,大多在市面上都没有通用的验证组件,现阶段通常做法是需要专门的验证人员对其进行验证组件的开发,这个开发阶段一般需要两步,第一步是获取相应模块的端口信息及SoC系统层级结构(为了方便调用和监测模块内部信号),开发出适配于设计模块的验证组件框架。第二步是根据功能描述开发出验证组件里的具体检查实现。开发完之后需要把已开发好的验证组件集成到SoC的验证环境里,而这集成一阶段也需要先把对应的验证组件先在SoC验证环境里完成例化,然后把对应的验证组件的文件列表添加到整个SoC环境的编译系统里,完成编译,最后再进行整体调试。
这种通用做法太依赖于工程师的个人能力,每一步都需要验证工程师独立来实现,首先要对相应的目标设计模块端口要熟悉,需要对设计模块的整体功能有了解,同时需要有基本的Verilog/SV开发经验,还需要对需要集成的SoC验证环境有整体了解,另外还需要掌握仿真器对整个验证环境及系统的编译及调试过程。每一步都需要花费很大精力去学习和掌握,而且一旦某一部分出错,更需要花费大大量时间去调试和迭代更新,经常会拖累整体验证仿真进度,另外一旦开发和集成过程中出了纰漏,有可能测试发现不了整个设计里的bug,进而影响芯片质量。
为解决上述问题,本申请将目标设计模块的验证组件的顶层实现、端口例化、层次提取、验证环境集成及编译等工作全都通过自动化脚本实现,可以极大的节约对验证组件的开发和集成工作,进而给整体验证工作节约宝贵时间。
具体的,本申请实施例中提供了一种芯片集成验证组件开发方法,本申请针对现阶段在SoC开发并集成不同设计模块的验证组件所存在的问题,通过开发的python脚本基于SoC的整体框架的分析来提取、解析和生成满足对应需求信息的验证模块的开发、挂载和编译调试。
请参见图1:
S1:获取目标设计模块所属的SoC工程的环境配置信息,并根据环境配置信息通过脚本进行目标验证组件的顶层生成。
在本申请的其中一些实施例中,通过Python脚本定义一通用模块验证组件生成函数,并根据现有的SoC工程的配置信息,将需要进行顶层生成的目标验证组件所对应的设计模块名传参至生成函数,生成函数对SoC工程和设计模块名进行信息抽取后,进行目标验证组件的顶层生成。
具体的,通过创建一Verilog文件,以进行目标验证组件的顶层生成。
具体的,生成函数对SoC工程和设计模块名进行信息抽取后,通过Verilog文件进行目标验证组件的端口信号声明和定义、通用接口例化及传递。
在具体实施中,首先获取目标设计模块所属SoC工程的环境配置,譬如工程顶层名称、工程文件所在路径、目标设计模块名称、在SoC工程里所属层级结构,工程文件顶层测试平台路径。
进一步的,在实现脚本中定义一个通用的模块验证组件生成函数,根据现有的SoC信息,将需要生成验证组件对应的设计模块名通过“cfg”参数传到该函数,该函数主要抽取出工程项目名,模块名在SoC里对应的例化名,和所属层级结构,然后通过调用“run_tb_gen”子函数来创建一个新的Verilog文件,在该文件里会完成目标验证组件的顶层生成、端口信号声明和定义、通用接口例化及传递(比如通用的验证平台时钟,复位等传递)。
基于此,本申请基于原有验证环境,可以自动解析出工程项目中对部分通用信息的提取,比如目标设计模块例化信息、端口声明信息、SoC层级结构、编译文件集结构等。
S2:获取SoC工程所在测试平台的路径,并根据环境配置信息,在路径下存放目标验证组件,并生成用于编译的目标验证组件编译文件列表。
在本申请的其中一些实施例中,获取SoC工程所在测试平台的路径,并根据环境配置信息,生成一用于存放被包含的开发文件的备用文件列表空文件。
在具体实施中,根据获取到的配置信息,在测试平台路径自动生成满足验证需求的目标验证组件和编译所需的验证组件文件列表。
进一步的,该函数主要是创建一个目标验证组件的文件列表(tb.vf),该文件会获取到顶层SoC所在测试平台的路径,并在该路径下创建一个以目标模块名命名的文件夹,将第一步里的目标模块验证组件都存放在该路径下。同时还生成一个独立的编译列表文件,将所有的目标模块验证组件文件都抽取到该列表文件里方便SoC验证环境编译调用;此外,另生成一个用于备用的“tb_other.vf”文件列表空文件,若后续有被包含的其它开发文件,可以直接填放在该文件里被顶层编译系统调用。
S3:根据目标验证组件的实现信息在SoC工程的验证顶层进行对目标验证组件的挂载,并将编译文件列表自动加载至SoC工程的编译系统。
在本申请的其中一些实施例中,进行自动加载时,首先判断是否需要对应的挂载目标验证组件;若需要,则在验证环境的封装层将目标验证组件进行例化,同时将目标验证组件和编译文件列表收集追加至现有的SoC工程的配置信息中,并对现有的SoC工程的配置信息进行更新,以使SoC工程在编译时可以解析到对应的目标验证组件的挂载。
在具体实施中,根据生成的验证组件的实现信息自动在SoC验证顶层完成对验证组件的挂载,并将第二步生成的验证组件的编译文件列表自动加载到整个SoC工程的编译系统里。
进一步的,该函数基于步骤S1、S2获取到的信息,先去判断是否需要对应的挂载目标模块验证组件,如果需要,会在验证环境的封装层将目标验证组件例化进去,同时将目标模块的验证组件和文件列表收集起来追加到现有的SoC配置信息里,并对现有SoC整体配置信息进行更新,使SoC在编译时可以解析到对应的验证组件的挂载。
在步骤S1的基础上,结合步骤S1和S2,本申请可以完成对满足需求的目标设计模块对应的验证组件的产生和验证组件里端口的声明和例化,以及一些通用验证组件的内嵌。对于产生的验证组件,本申请可以自动将其例化到原有的SoC系统验证环境里,并将对应的验证组件编译列表添加到原有的SoC验证环境的文件编译系统里,来完成调试和仿真。
S4:基于SoC工程的验证环境进行仿真,并通过开关实现目标验证组件的挂载和关闭,以进行联合调试和测试仿真。
在具体实施中,基于SoC验证环境跑仿真,通过开关实现验证组件的挂载和关闭,来完成联合调试和测试仿真。
在这一步,用户可以通过传递“cfg[ip_name][tb_ena]=Ture/Flase”来选择打开或者关闭目标模块的验证组件的挂载,并基于验证需求和测试场景完成联合调试。
综上所述,本申请提供了一套智能化生成、例化、集成、编译于一体的验证组件开发的方法,该方法通过python脚本实现,然后通过脚本去解析和提取整个SoC里的配置和层级信息,基于用户的简单参数配置就可以在原有SoC验证环境里自动生成满足验证需求的目标模块验证组件,方便用户基于该继承于SoC系统的验证组件进行进一步的开发和测试。
本申请基于一项目,对本申请实施例的方法进行一种示例性描述:
如基于以下代码所描述的内容:
-%>tree demo_soc/
demo_soc/
rtl
analog
design
ana_top.v
rtl_other.vf
rtl.vf
cgu
design
cgu_top.v
rtl_other.vf
rtl.vf
cpu
design
rtl_top.v
rtl_other.vf
rtl.vf
dcmi
design
dcmi_top.v
rtl_other.vf
rtl.vf
disp
design
disp_top.v
rtl_other.vf
rtl.vf
dut.v
i2c
design
i2c_top.v
rtl_other.vf
rtl.vf
该项目有一个CPU,两个系统控制模块(CGU时钟产生单元,RCU复位控制单元)和多个外设模块I2C串行通讯总线,DCMI,DISP图像处理器等。
本实施例在该小型SoC环境里给DISP模块挂载一个验证组件。如基于以下代码所描述的内容:
-%>tree demo_soc/testbench/
demo_soc/testbench/
config.v
disp
model
disp_model_top.v
tb_other.vf
tb.vf
tb_top.v
tb.vf
当通过工程项目顶层配置文件将“cfg[disp][tb_ena]=Ture”后,对应的会在TestBench目录下新生成disp的子目录,并会生成对应的验证组件的文件及文件列表。
进一步的,打开“demo_soc/testbench/disp/model/disp_model_top.v”,如基于以下代码所描述的内容:
`include “global.v”
`include “tb_defines.v”
`define disp_path tb_top.u_board.u_chip.u_disp
module disp_model_top(
input sys_clk
input aon_clk
input por_rst_n
input sys_rst_n
);
wire icb_clk ,
wire isi_aon_clk ,
wire est_test_mode ,
wire pvd_rst_n ,
wire rcc_rst_n ,
wire aon_por_rst_n ,
wire disp_wkup_src0 ,
wire disp_wkup_src1 ,
wire disp_wkup_src2 ,
wire disp_wkup_src3 ,
wire disp_wkup_src4 ,
wire disp_wkup_src5 ,
wire disp_wkup_src6 ,
wire disp_wkup_src7 ,
wire disp_wkup_src8 ,
wire disp_sleep_mode ,
该生成的disp的验证组件里面包含的内容有: 验证组件定义、SoC通用配置及宏传递、目标设计模块的层次结构提取(为了直接调用该模块内部信号做检查)、通用测试信号的声明及传递、以及目标设计模块的端口映射等。
基于本申请实施例所提供的方法,如基于以下代码的运行所展示的结果:
$PROJ_SRC-ROOT/testbench/disp/model/disp_model_top.v
demo_soc/testbench/disp/tb.vf
对应的验证组件文件列表简洁清晰,将产生的验证组件提取到一个单独的tb.vf文件里方便给SoC顶层编译系统识别并获取;在具体实施中中,如果有其它被调用的包含文件,将一并在“tb_other.vf”里体现出来。
最后,如基于以下代码所描述的内容:
`include “global.v”
module board (
input sys_clk ,
input ano_clk ,
input hse_clk ,
input porpor_rst_n ,
input sys_rst_n ,
input sys_clk ,
input jtag_tck ,
input jtag_tms ,
input jtag_tdi ,
input jtag_tdo ,
);
i2c0_model_top u_tb_i2c0 (
.sys_clk (sys_clk),
.ano_clk (ano_clk),
.por_rst_n (por_rst_n),
.sys_rst_n (sys_rst_n),
);
disp0_model_top u_tb_disp0 (
.sys_clk (sys_clk),
.ano_clk (ano_clk),
.por_rst_n (por_rst_n),
.sys_rst_n (sys_rst_n),
);
dmi0_model_top u_tb_dmi0 (
.sys_clk (sys_clk),
.ano_clk (ano_clk),
.por_rst_n (por_rst_n),
.sys_rst_n (sys_rst_n),
);
脚本会自动检测到SoC验证环境所在层次结构,将目标验证组件自动例化到该层级结构下。
最终通过仿真器(该项目采用的是Synopsys公司的VCS仿真调试工具)重新编译整个SoC验证环境,就可实现对目标模块的验证组件的集成。在该demo_soc工程项目里,得到的验证环境里对目标验证组件的挂载效果如图2所示。其中“u_board”是该项目对DUT待测设计的封装层,在该层级下,除了例化的DUT(u_chip)外,分别还完成了对dcmi,disp和i2c的验证组件的自动集成。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图3,本申请一个实施例提供了芯片集成验证组件开发装置,包括验证组件生成模块10、文件列表生成模块20、验证组件挂载模块30和仿真调试模块40;
验证组件生成模块10,用于获取目标设计模块所属的SoC工程的环境配置信息,并根据环境配置信息通过脚本进行目标验证组件的顶层生成;
文件列表生成模块20,用于获取SoC工程所在测试平台的路径,并根据环境配置信息,在路径下存放目标验证组件,并生成用于编译的目标验证组件编译文件列表;
验证组件挂载模块30,用于根据目标验证组件的实现信息在SoC工程的验证顶层进行对目标验证组件的挂载,并将编译文件列表自动加载至SoC工程的编译系统;
仿真调试模块40,用于基于SoC工程的验证环境进行仿真,并通过开关实现目标验证组件的挂载和关闭,以进行联合调试和测试仿真。
关于上述芯片集成验证组件开发装置的具体限定可以参见上文中对于芯片集成验证组件开发方法的限定,在此不再赘述。上述芯片集成验证组件开发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种芯片集成验证组件开发方法。包括:存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上芯片集成验证组件开发方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上芯片集成验证组件开发方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,C语言、VHDL语言、Verilog语言、面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种芯片集成验证组件开发方法,其特征在于,包括:
获取目标设计模块所属的SoC工程的环境配置信息,并根据所述环境配置信息通过脚本进行目标验证组件的顶层生成;
获取所述SoC工程所在测试平台的路径,并根据所述环境配置信息,在所述路径下存放所述目标验证组件,并生成用于编译的目标验证组件编译文件列表;
根据所述目标验证组件的实现信息在所述SoC工程的验证顶层进行对所述目标验证组件的挂载,并将所述编译文件列表自动加载至所述SoC工程的编译系统;
基于所述SoC工程的验证环境进行仿真,并通过开关实现所述目标验证组件的挂载和关闭,以进行联合调试和测试仿真。
2.根据权利要求1所述的芯片集成验证组件开发方法,其特征在于,获取目标设计模块所属的SoC工程的环境配置信息,并根据所述环境配置信息通过脚本进行目标验证组件的顶层生成的步骤进一步包括:
通过Python脚本定义一通用模块验证组件生成函数,并根据现有的所述SoC工程的配置信息,将需要进行顶层生成的所述目标验证组件所对应的设计模块名传参至所述生成函数,所述生成函数对所述SoC工程和所述设计模块名进行信息抽取后,进行所述目标验证组件的顶层生成。
3.根据权利要求2所述的芯片集成验证组件开发方法,其特征在于,获取目标设计模块所属的SoC工程的环境配置信息,并根据所述环境配置信息通过脚本进行目标验证组件的顶层生成的步骤进一步包括:
通过创建一Verilog文件,以进行所述目标验证组件的顶层生成。
4.根据权利要求3所述的芯片集成验证组件开发方法,其特征在于,获取目标设计模块所属的SoC工程的环境配置信息,并根据所述环境配置信息通过脚本进行目标验证组件的顶层生成的步骤进一步包括:
所述生成函数对所述SoC工程和所述设计模块名进行信息抽取后,通过所述Verilog文件进行所述目标验证组件的端口信号声明和定义、通用接口例化及传递。
5.根据权利要求4所述的芯片集成验证组件开发方法,其特征在于,获取所述SoC工程所在测试平台的路径,并根据所述环境配置信息,在所述路径下存放所述目标验证组件,并生成用于编译的目标验证组件编译文件列表的步骤进一步包括:
获取所述SoC工程所在测试平台的路径,并根据所述环境配置信息,生成一用于存放被包含的开发文件的备用文件列表空文件。
6.根据权利要求1-5中任一项所述的芯片集成验证组件开发方法,其特征在于,根据所述目标验证组件的实现信息在所述SoC工程的验证顶层进行对所述目标验证组件的挂载,并将所述编译文件列表自动加载至所述SoC工程的编译系统的步骤进一步包括:
进行所述自动加载时,首先判断是否需要对应的挂载目标验证组件;
若需要,则在验证环境的封装层将所述目标验证组件进行例化,同时将所述目标验证组件和所述编译文件列表收集追加至现有的所述SoC工程的配置信息中,并对现有的所述SoC工程的配置信息进行更新,以使所述SoC工程在编译时可以解析到对应的所述目标验证组件的挂载。
7.一种芯片集成验证组件开发装置,其特征在于,包括验证组件生成模块、文件列表生成模块、验证组件挂载模块和仿真调试模块;
验证组件生成模块,用于获取目标设计模块所属的SoC工程的环境配置信息,并根据所述环境配置信息通过脚本进行目标验证组件的顶层生成;
文件列表生成模块,用于获取所述SoC工程所在测试平台的路径,并根据所述环境配置信息,在所述路径下存放所述目标验证组件,并生成用于编译的目标验证组件编译文件列表;
验证组件挂载模块,用于根据所述目标验证组件的实现信息在所述SoC工程的验证顶层进行对所述目标验证组件的挂载,并将所述编译文件列表自动加载至所述SoC工程的编译系统;
仿真调试模块,用于基于所述SoC工程的验证环境进行仿真,并通过开关实现所述目标验证组件的挂载和关闭,以进行联合调试和测试仿真。
8.根据权利要求7所述的芯片集成验证组件开发装置,其特征在于,所述验证组件挂载模块进一步包括:
进行所述自动加载时,首先判断是否需要对应的挂载目标验证组件;
若需要,则在验证环境的封装层将所述目标验证组件进行例化,同时将所述目标验证组件和所述编译文件列表收集追加至现有的所述SoC工程的配置信息中,并对现有的所述SoC工程的配置信息进行更新,以使所述SoC工程在编译时可以解析到对应的所述目标验证组件的挂载。
9.一种计算机设备,其特征在于,包括:
存储器;
处理器;以及,
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310369200.3A CN116090376B (zh) | 2023-04-10 | 2023-04-10 | 芯片集成验证组件开发方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310369200.3A CN116090376B (zh) | 2023-04-10 | 2023-04-10 | 芯片集成验证组件开发方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116090376A true CN116090376A (zh) | 2023-05-09 |
CN116090376B CN116090376B (zh) | 2023-08-15 |
Family
ID=86210522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310369200.3A Active CN116090376B (zh) | 2023-04-10 | 2023-04-10 | 芯片集成验证组件开发方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116090376B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117172209A (zh) * | 2023-11-03 | 2023-12-05 | 睿思芯科(深圳)技术有限公司 | 芯片的验证系统、方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190871A1 (en) * | 2005-02-08 | 2006-08-24 | Likovich Robert B Jr | Methods, systems and media for managing functional verification of a parameterizable design |
CN108984403A (zh) * | 2018-07-09 | 2018-12-11 | 天津芯海创科技有限公司 | Fpga逻辑代码的验证方法及装置 |
CN111460759A (zh) * | 2020-03-19 | 2020-07-28 | 华南理工大学 | 一种基于Python语言的EDA验证平台及其使用方法 |
CN113051855A (zh) * | 2021-03-11 | 2021-06-29 | 黑芝麻智能科技(上海)有限公司 | 用于片上系统芯片验证的方法、系统及验证平台 |
WO2022148305A1 (zh) * | 2021-01-07 | 2022-07-14 | 苏州浪潮智能科技有限公司 | 一种芯片的系统级验证方法、系统及相关装置 |
-
2023
- 2023-04-10 CN CN202310369200.3A patent/CN116090376B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190871A1 (en) * | 2005-02-08 | 2006-08-24 | Likovich Robert B Jr | Methods, systems and media for managing functional verification of a parameterizable design |
CN108984403A (zh) * | 2018-07-09 | 2018-12-11 | 天津芯海创科技有限公司 | Fpga逻辑代码的验证方法及装置 |
CN111460759A (zh) * | 2020-03-19 | 2020-07-28 | 华南理工大学 | 一种基于Python语言的EDA验证平台及其使用方法 |
WO2022148305A1 (zh) * | 2021-01-07 | 2022-07-14 | 苏州浪潮智能科技有限公司 | 一种芯片的系统级验证方法、系统及相关装置 |
CN113051855A (zh) * | 2021-03-11 | 2021-06-29 | 黑芝麻智能科技(上海)有限公司 | 用于片上系统芯片验证的方法、系统及验证平台 |
Non-Patent Citations (1)
Title |
---|
黄超: "基于UVM的验证平台可重用性和自动化研究", 中国优秀硕士学位论文全文数据库信息科技辑, pages 135 - 253 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117172209A (zh) * | 2023-11-03 | 2023-12-05 | 睿思芯科(深圳)技术有限公司 | 芯片的验证系统、方法及相关设备 |
CN117172209B (zh) * | 2023-11-03 | 2024-02-27 | 睿思芯科(深圳)技术有限公司 | 芯片的验证系统、方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116090376B (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Challenges and trends in modern SoC design verification | |
CN110865971B (zh) | Soc芯片的验证系统及其方法 | |
Bringmann et al. | Model-based testing of automotive systems | |
CN112270149B (zh) | 验证平台自动化集成方法、系统及电子设备和存储介质 | |
US11954015B2 (en) | Software environment for control engine debug, test, calibration and tuning | |
CN116090376B (zh) | 芯片集成验证组件开发方法、装置及计算机设备 | |
CN116069648A (zh) | 一种软件测试方法、系统、设备以及存储介质 | |
CN114757135B (zh) | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 | |
US11960385B2 (en) | Automatic generation of integrated test procedures using system test procedures | |
CN117725869A (zh) | 断言开发方法、芯片验证方法、装置、设备及介质 | |
Rogin et al. | Debugging at the electronic system level | |
Goyal et al. | Standard Process for Establishment of ECU Virtualization as Integral Part of Automotive Software Development Life-Cycle | |
Babic | Model-based approach to real-time embedded control systems development with legacy components integration | |
Yoong et al. | Combining iec 61499 model-based design with component-based architecture for robotics | |
Willems et al. | Virtual prototypes for software-dominated communication system designs | |
US20230267253A1 (en) | Automated synthesis of virtual system-on-chip environments | |
Encontre | Testing embedded systems: Do you have the GuTs for it | |
Mohamed | HW/SW Co-Verification and Co-Debugging | |
Shen et al. | A Universal-Verification-Methodology-Based Verification Strategy for High-Level Synthesis Design | |
Macher et al. | A versatile approach for an ISO26262 compliant hardware-software interface definition with model-based development | |
Ojala | Automated UVM testbench generation | |
Cao | A serial communication-based FPGA co-emulation test bench [D] | |
Mathaikutty et al. | Metamodeling-driven IP reuse for SoC integration and microprocessor design | |
Da Silva et al. | Runtime instrumentation of systemc/tlm2 interfaces for fault tolerance requirements verification in software cosimulation | |
Karmitsa | Pre-validation of SoC via hardware and software co-simulation |
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 |