CN115544922A - 可配置支持多种工作模式的PCIe验证IP自动集成方法及系统 - Google Patents
可配置支持多种工作模式的PCIe验证IP自动集成方法及系统 Download PDFInfo
- Publication number
- CN115544922A CN115544922A CN202211190141.5A CN202211190141A CN115544922A CN 115544922 A CN115544922 A CN 115544922A CN 202211190141 A CN202211190141 A CN 202211190141A CN 115544922 A CN115544922 A CN 115544922A
- Authority
- CN
- China
- Prior art keywords
- pcie
- verification
- file
- configuration file
- vip
- 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
- 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/08—Intellectual property [IP] blocks or IP cores
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了可配置支持多种工作模式的PCIe验证IP自动集成方法,方法包括:提供可配置化的配置文件;自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染;自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证,本发明大大减少了前端验证中平台搭建的时间,使验证工程师可以更多的将精力放在协议以及功能验证之中,同时也避免了一些不预期的人为错误而造成的时间的浪费,大大提升了仿真的速度以及调试的效率,是用于前端验证的初期开发,Serdes级仿真采用的是PHY的行为描述级代码,更贴近真实的芯片,更适合前端验证后期的回归测试。
Description
技术领域
本发明涉及芯片技术领域,尤其涉及芯片设计技术领域,具体涉及可配置支持多种工作模式的PCIe验证IP自动集成方法、系统。
背景技术
随着大数据中心,人工智能、云计算以及超大规模计算等的高速发展,服务器内的高速硬件数据交互需求变得愈发重要,PCIe总线作为一种点对点高速串行总线标准,在其中发挥着重要的作用,逐渐成为服务器总线的主流解决方案,在服务器相关的集成电路设计中得到广泛应用。并且在服务器总线的主流解决方案中,往往会应用PHY的分叉和聚合功能根据不同的应用场景制定多样化的工作模式,无疑大大增加了PCIe总线系统的复杂度,自然无疑会大大增加芯片前端验证中验证测试平台搭建的复杂度以及验证测试平台的不可重用性,所以如何高速、有效的提高验证测试平台搭建的效率,缩短验证测试平台搭建就变得愈发重要,本发明将主要针对PCIe总线系统提供一种可配置的支持多种工作模式的PCIe验证IP自动集成方法,高效,快速且准确的完成PCIe验证IP的自动化集成,避免人为因素所带来的错误。
在传统的PCIe总线系统芯片前端验证流程中,芯片前端验证工程师在搭建验证测试平台的过程中人为手动的将成熟、稳定的商用PCIe验证IP集成于其中,这无疑是一件耗时耗力,重复性高的工作,并且由于多样化的工作模式的需求,大大降低了验证测试平台的可重用性。本发明将主要针对以上需求提出一种方法,完成PCIe验证IP自动化集成的测试验证平台,提供标准化的处理流程来识别不同的工作模式选择,进而完成PCIe验证IP的正确实例化以及连接,提供PIPE级的连接模式以大幅度加速仿真的速度,增加前端验证的效率。
发明内容
有鉴于此,本发明的目的在于提出可配置支持多种工作模式的PCIe验证IP自动集成方法、系统,使整个验证测试平台具有更强的可重用性。
在传统的PCIe总线系统芯片前端验证流程中,芯片前端验证工程师在搭建验证测试平台的过程中人为手动的将成熟、稳定的商用PCIe验证IP集成于其中,这无疑是一件耗时耗力,重复性高的工作,并且由于多样化的工作模式的需求,大大降低了验证测试平台的可重用性。本发明将主要针对以上需求提出一种方法,完成PCIe验证IP自动化集成的测试验证平台,提供标准化的处理流程来识别不同的工作模式选择,进而完成PCIe验证IP的正确实例化以及连接,提供PIPE级的连接模式以大幅度加速仿真的速度,增加前端验证的效率。具体而言,所述可配置支持多种工作模式的PCIe验证IP自动集成方法包括以下步骤:提供可配置化的配置文件,确定自定义配置文件;自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
基于上述目的,一方面,本发明提供了可配置支持多种工作模式的PCIe验证IP自动集成方法,其中该方法包括以下步骤:
提供可配置化的配置文件,确定自定义配置文件;
自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成方法的一些实施例中,所述提供可配置化的配置文件,确定自定义配置文件的方法,具体包括:
用户通过清晰明确的配置参数完成PCIe验证IP的基本参数的确定;
完成PCIe验证IP在验证测试平台的自动化集成;
生成工作模式的配置文件;
用户根据此配置文件定义仿真中所采用的工作模式。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成方法的一些实施例中,所述自定义配置文件通过配置文件定义模块完成,其中,配置文件定义模块包括:
项目名称定义单元,通过projName指定项目名称,将决定验证测试平台生成时的文件夹名称;
绝对路径确定单元,通过dut指定待测设计的顶层文件的绝对路径。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成方法的一些实施例中,自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件的方法,具体包括:
在验证测试平台顶层模板文件中增加PCIe VIP PIPE的实例化,根据配置文件中通道数量确定实例化的PIPE数量;
通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中;
在仿真执行路径下生成工作模式选择的配置文件;
PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析,并将解析的结果通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中;
在Makefile模板文件中增加对PCIe VIP源代码的编译,增加PIPE级仿真的模式选择开关以及相应的宏定义。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成方法的一些实施例中,所述PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析,并将解析的结果通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中的方法,具体包括:
根据用户自定义文件配置文件创建EP和RC的初始化PCIe VIP组的字符串数组,在EP的字符串数组中存放着用户配置文件中所有待集成VIP类型为EP的group_name,在RC的字符串数组中存放着用户配置文件中所有待集成VIP类型为RC的group_name;
逐行读取工作模式选择的配置文件;
识别每行的PCIe组的名字是否在EP/RC的初始化PCIe VIP组的字符串数组中,若在定义之中则通过实现的字符串split函数将工作模式选择信息通过字符串“x”进行分离,得到PCIe VIP组中VIP的数量m以及每个VIP的通道数n,通过repeat函数重复m次将n放入到对应的EP/RC结果队列中,否则通过UVM所提供的uvm_error的方式进行报告,并不进行后续处理;
通过UVM所提供的config_db函数将EP/RC结果队列传递给base_test组件之中。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成方法的一些实施例中,自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件的方法,进一步包括:
在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成方法的一些实施例中,所述在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发的方法包括:
通过UVM中的config_db函数得到由PCIe VIP配置传递过来的EP和RC的结果队列;
根据EP和RC结果队列的大小,完成EP BFM动态数组以及RC BFM动态数组的空间分配,并将每个BFM进行实例化创建;
通过从结果EP和RC队列进行POP操作,将得到的通道数目用于PIPE的分配,按顺序将对应数量的PIPE分配给PCIe VIP BFM;
配置PCIe VIP开始BFM工作。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成方法的一些实施例中,所述自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证方法,具体包括:
定义PCIe VIP任务库模板;
加入PCIe协议的基本任务;
将定义完成的任务库include到test_pkg的模板文件中,使当前所有的测试用例以及后面衍生继承的测试用例都可以使用任务库中的任务,避免了不同验证工程师对相同功能任务的重复开发。
本发明的另一方面,还提供了可配置支持多种工作模式的PCIe验证IP自动集成系统,所述可配置支持多种工作模式的PCIe验证IP自动集成系统,具体包括:
配置文件提供模块,用于提供可配置化的配置文件,确定自定义配置文件;
自动化验证生成平台,所述自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
PCIe验证模块,用于自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
任务库生成模块,用于自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
在根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成系统的一些实施例中,所述配置文件提供模块包括:
参数确定单元,用户通过清晰明确的配置参数完成PCIe验证IP的基本参数的确定;
平台集成单元,用于完成PCIe验证IP在验证测试平台的自动化集成;
配置文件生成单元,用于生成工作模式的配置文件;
模式仿真单元,用户根据此配置文件定义仿真中所采用的工作模式。
本发明至少具有以下有益技术效果:传统的验证平台自动化生成方法仅仅生成一个普适性的验证测试平台,不会针对项目的需求将PCIe VIP自动化集成于验证平台之中;本发明意在提供一种验证平台方法自动化生成方法,使PCIe VIP可以通过简单清晰的参数自动的集成于验证平台之中,大大减少了前端验证中平台搭建的时间,使验证工程师可以更多的将精力放在协议以及功能验证之中,同时也避免了一些不预期的人为错误而造成的时间的浪费;提供了一种通用的工作模式解析方法,大大增加了工作模式的可配置的多样化形式,使整个验证测试平台具有更强的可重用性;提供PIPE级仿真以及Serdes级仿真两种模式,用户可以使用Makefile自动切换,PIPE级仿真采用的是PHY BFM进行仿真,大大提升了仿真的速度以及调试的效率,是用于前端验证的初期开发,Serdes级仿真采用的是PHY的行为描述级代码,更贴近真实的芯片,更适合前端验证后期的回归测试,二者集合可以更好的满足前端验证的不同阶段;提供了一套基本的任务库,避免了不同验证工程师对相同功能任务的重复开发,也提供了PCIe基本通路验证的基本方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
在图中:
图1示出了本发明中可配置支持多种工作模式的PCIe验证IP自动集成方法的实现流程示意图;
图2示出了本发明中提供可配置化的配置文件,确定自定义配置文件的方法实现流程示意图;
图3示出了根据本发明中用户自定义配置文件示意图;
图4示出了本发明中根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件方法的实现流程示意图;
图5示出了根据本发明中工作模式的配置文件格式图;
图6示出了本发明中PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析实现流程示意图;
图7示出了在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发的方法实现流程示意图;
图8示出了通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换的方法示意图;
图9示出了根据本发明中验证平台顶层文件中的连接关系图;
图10示出了根据本发明的验证平台顶层文件中的连接关系图;
图11示出了根据本发明自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证方法实现流程示意图;
图12示出了根据本发明的可配置支持多种工作模式的PCIe验证IP自动集成系统的实施例的框架的示意图;
图13示出了根据本发明的配置文件提供模块的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
在传统的PCIe总线系统芯片前端验证流程中,芯片前端验证工程师在搭建验证测试平台的过程中人为手动的将成熟、稳定的商用PCIe验证IP集成于其中,这无疑是一件耗时耗力,重复性高的工作,并且由于多样化的工作模式的需求,大大降低了验证测试平台的可重用性。本发明将主要针对以上需求提出一种方法,完成PCIe验证IP自动化集成的测试验证平台,提供标准化的处理流程来识别不同的工作模式选择,进而完成PCIe验证IP的正确实例化以及连接,提供PIPE级的连接模式以大幅度加速仿真的速度,增加前端验证的效率。具体而言,所述可配置支持多种工作模式的PCIe验证IP自动集成方法包括以下步骤:提供可配置化的配置文件,确定自定义配置文件;自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
本发明实施例提供了可配置支持多种工作模式的PCIe验证IP自动集成,如图1所示,所述可配置支持多种工作模式的PCIe验证IP自动集成方法,具体包括:
步骤S10,提供可配置化的配置文件,确定自定义配置文件;
步骤S20,自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
步骤S30,自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
步骤S40,自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
在本实施例中,本发明意在提供一种验证平台方法自动化生成方法,使PCIe VIP可以通过简单清晰的参数自动的集成于验证平台之中,大大减少了前端验证中平台搭建的时间,使验证工程师可以更多的将精力放在协议以及功能验证之中,同时也避免了一些不预期的人为错误而造成的时间的浪费;提供了一种通用的工作模式解析方法,大大增加了工作模式的可配置的多样化形式,使整个验证测试平台具有更强的可重用性;提供PIPE级仿真以及Serdes级仿真两种模式,用户可以使用Makefile自动切换,PIPE级仿真采用的是PHY BFM进行仿真,大大提升了仿真的速度以及调试的效率,是用于前端验证的初期开发,Serdes级仿真采用的是PHY的行为描述级代码,更贴近真实的芯片,更适合前端验证后期的回归测试,二者集合可以更好的满足前端验证的不同阶段;提供了一套基本的任务库,避免了不同验证工程师对相同功能任务的重复开发,也提供了PCIe基本通路验证的基本方法。
本发明实施例提供了提供可配置化的配置文件,确定自定义配置文件的方法,如图2所示,提供可配置化的配置文件,确定自定义配置文件的方法,具体包括:
步骤S101,用户通过清晰明确的配置参数完成PCIe验证IP的基本参数的确定;
步骤S102,完成PCIe验证IP在验证测试平台的自动化集成;
步骤S103,生成工作模式的配置文件;
步骤S104,用户根据此配置文件定义仿真中所采用的工作模式。
在本实施例中,所述自定义配置文件通过配置文件定义模块完成,其中,配置文件定义模块包括:
项目名称定义单元,通过projName指定项目名称,将决定验证测试平台生成时的文件夹名称;
绝对路径确定单元,通过dut指定待测设计的顶层文件的绝对路径。
同时,在本申请中,如图3所示,提供了用户自定义配置文件示意图,其中,其中projName用于指定项目名称,将决定验证测试平台生成时的文件夹名称;dut用于指定待测设计的顶层文件的绝对路径;dutName用于指定顶层文件中的顶层模块名字,此参数与顶层文件的绝对路径将协同完成验证测试平台与DUT的自动连接功能;topName则用来指定验证测试平台文件的前缀名字;backup是备份选项,当其指定为yes时,将自动备份原有项目环境,否则会覆盖原有的项目环境;pcie_vip则是用于完成验证测试平台中的PCIe VIP的参数确定,其中group_name代表着集成的PCIe VIP组的名字,用于生成工作模式选择的配置文件;待集成VIP类型用于指定PCIe VIP的类型,本发明中支持的PCIe VIP类型包括RC和EP;PIPE深度用于指定PIPE每条通道的数据位宽;通道数量用于指定此PCIe VIP组的通道总数量;PIPE层次用于指定PIPE位于验证测试平台中的相对层次;PIPE文件路径用于指定PCIe PIPE所对应的DUT的文件的绝对路径,此参数将与PIPE层次参数协同完成PIPE级的DUT与PCIe VIP的自动连接功能。
本发明实施例提供了自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件的方法,如图4所示,所述自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件的方法,具体包括:
步骤S201,在验证测试平台顶层模板文件中增加PCIe VIP PIPE的实例化,根据配置文件中通道数量确定实例化的PIPE数量;
步骤S202,通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中;
步骤S203,在仿真执行路径下生成工作模式选择的配置文件。
在本步骤中,如图5所示,示出了工作模式的配置文件格式图,所述其中“:”左侧为配置文件中的group_name,用于用户定向配置对应的PCIe VIP组,“:”右侧则代表着PHY的工作模式选择,用户可根据项目需求自定义配置,其中“x”左侧代表的是对应PCIe VIP组的VIP数目,“x”右侧则代表每个PCIe VIP组中每个VIP的通道数量。例如group1:8x2,代表在“group1”PCIe VIP组中需要实例化8个2通道的PCIe VIP。
步骤S204,PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析,并将解析的结果通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中;
步骤S205,在Makefile模板文件中增加对PCIe VIP源代码的编译,增加PIPE级仿真的模式选择开关以及相应的宏定义。
示例性的,在Makefile模板文件中增加对PCIe VIP源代码的编译,增加PIPE级仿真的模式选择开关以及相应的宏定义,具体流程如下;
MODE?=
ifeq(PIPE,$(strip($MODE)))
MODE_OPTS:=+define+PIPE_MODE
endif。
步骤S206,在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发。
本发明实施例提供了PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析,并将解析的结果通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中的方法,如图6所示,所述PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析,并将解析的结果通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中的方法,具体包括:
步骤S301,根据用户自定义文件配置文件创建EP和RC的初始化PCIe VIP组的字符串数组,在EP的字符串数组中存放着用户配置文件中所有待集成VIP类型为EP的group_name,在RC的字符串数组中存放着用户配置文件中所有待集成VIP类型为RC的group_name;
步骤S302,逐行读取工作模式选择的配置文件;
步骤S303,识别每行的PCIe组的名字是否在EP/RC的初始化PCIe VIP组的字符串数组中,若在定义之中则通过实现的字符串split函数将工作模式选择信息通过字符串“x”进行分离,得到PCIe VIP组中VIP的数量m以及每个VIP的通道数n,通过repeat函数重复m次将n放入到对应的EP/RC结果队列中,否则通过UVM所提供的uvm_error的方式进行报告,并不进行后续处理;
步骤S304,通过UVM所提供的config_db函数将EP/RC结果队列传递给base_test组件之中。
本发明实施例提供了所述在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发的方法,如图7所示,所述在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发的方法,具体包括:
步骤S2061,通过UVM中的config_db函数得到由PCIe VIP配置传递过来的EP和RC的结果队列;
步骤S2062,根据EP和RC结果队列的大小,完成EP BFM动态数组以及RC BFM动态数组的空间分配,并将每个BFM进行实例化创建;
步骤S2063,通过从结果EP和RC队列进行POP操作,将得到的通道数目用于PIPE的分配,按顺序将对应数量的PIPE分配给PCIe VIP BFM;
步骤S2064,配置PCIe VIP开始BFM工作。
本发明实施例提供了自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换的方法,如图8所示,所述自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换的方法,具体包括:
步骤S401,在测试平台顶层文件中,通过Makefile文件中PIPE模式的开关所对应的宏定义来区分PIPE级连接关系以及Serdes连接关系。
步骤S402,根据用户配置的PIPE文件路径,通过正则匹配表达式找到PIPE文件顶层模块的接口信息。
步骤S403,根据所匹配到的接口信息,对其中符合一定命名规则的PIPE信号进行识别,并且完成与PCIe VIP的自动连接,具体如图5所示。其中定义的PIPE_PATH的宏是由用户所配置的PIPE层次所产生,PIPE_WIDTH为用户定义PIPE数据位宽。
在本实施例中,如图9所示,示出了验证平台顶层文件中的连接关系图,在测试平台顶层文件中,通过Makefile文件中PIPE模式的开关所对应的宏定义来区分PIPE级连接关系以及Serdes连接关系。
如图10所示,示出了测试平台中PIPE的连接关系图,其中,根据所匹配到的接口信息,对其中符合一定命名规则的PIPE信号进行识别,并且完成与PCIe VIP的自动连接,具体如图5所示。其中定义的PIPE_PATH的宏是由用户所配置的PIPE层次所产生,PIPE_WIDTH为用户定义PIPE数据位宽。
本发明实施例提供了所述自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证方法,如图11所示,所述自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证方法,具体包括:
步骤S501,定义PCIe VIP任务库模板;
步骤S502,加入PCIe协议的基本任务;
步骤S503,将定义完成的任务库include到test_pkg的模板文件中,使当前所有的测试用例以及后面衍生继承的测试用例都可以使用任务库中的任务,避免了不同验证工程师对相同功能任务的重复开发。
本发明实施例提供了可配置支持多种工作模式的PCIe验证IP自动集成系统,如图12所示,所述可配置支持多种工作模式的PCIe验证IP自动集成系统,具体包括:
配置文件提供模块100,用于提供可配置化的配置文件,确定自定义配置文件;
自动化验证生成平台200,所述自动化验证生成平台200基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
PCIe验证模块300,用于自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
任务库生成模块400,用于自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
在本实施例中,本发明意在提供一种验证平台方法自动化生成系统,使PCIe VIP可以通过简单清晰的参数自动的集成于验证平台之中,大大减少了前端验证中平台搭建的时间,使验证工程师可以更多的将精力放在协议以及功能验证之中,同时也避免了一些不预期的人为错误而造成的时间的浪费;提供了一种通用的工作模式解析方法,大大增加了工作模式的可配置的多样化形式,使整个验证测试平台具有更强的可重用性;提供PIPE级仿真以及Serdes级仿真两种模式,用户可以使用Makefile自动切换,PIPE级仿真采用的是PHY BFM进行仿真,大大提升了仿真的速度以及调试的效率,是用于前端验证的初期开发,Serdes级仿真采用的是PHY的行为描述级代码,更贴近真实的芯片,更适合前端验证后期的回归测试,二者集合可以更好的满足前端验证的不同阶段;提供了一套基本的任务库,避免了不同验证工程师对相同功能任务的重复开发,也提供了PCIe基本通路验证的基本系统。
本发明实施例提供了配置文件提供模块,如图13所示,所述配置文件提供模块100,具体包括:
参数确定单元110,用户通过清晰明确的配置参数完成PCIe验证IP的基本参数的确定;
平台集成单元120,用于完成PCIe验证IP在验证测试平台的自动化集成;
配置文件生成单元130,用于生成工作模式的配置文件;
模式仿真单元140,用户根据此配置文件定义仿真中所采用的工作模式。
本发明实施例还提供了一种计算机设备,该计算机设备包括显示屏、存储器、处理器以及计算机程序,其中所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述可配置支持多种工作模式的PCIe验证IP自动集成方法的步骤,所述可配置支持多种工作模式的PCIe验证IP自动集成方法,具体包括:
提供可配置化的配置文件,确定自定义配置文件;
自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
可以理解的是,在本发明提供的优选实施例中,该计算机设备还可以为笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、手机等可以进行通信的设备。
本发明实施例还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述可配置支持多种工作模式的PCIe验证IP自动集成方法的步骤,所述可配置支持多种工作模式的PCIe验证IP自动集成方法,具体包括:
提供可配置化的配置文件,确定自定义配置文件;
自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。例如,上述计算机程序可以被分割成上述各个系统实施例提供的可配置支持多种工作模式的PCIe验证IP自动集成系统的单元或模块。
本领域技术人员可以理解,上述终端设备的描述仅仅是示例,并不构成对终端设备的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,上述处理器是上述终端设备的控制中心,利用各种接口和线路连接整个用户终端的各个部分。
上述存储器可用于存储计算机程序和/或模块,上述处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现上述终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如信息采集模板展示功能、产品信息发布功能等)等;存储数据区可存储根据可配置支持多种工作模式的PCIe验证IP自动集成状态显示系统的使用所创建的数据(比如不同产品种类对应的产品信息采集模板、不同产品提供方需要发布的产品信息等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
相对而言,传统的验证平台自动化生成方法仅仅生成一个普适性的验证测试平台,不会针对项目的需求将PCIe VIP自动化集成于验证平台之中;本发明意在提供一种验证平台方法自动化生成方法,使PCIe VIP可以通过简单清晰的参数自动的集成于验证平台之中,大大减少了前端验证中平台搭建的时间,使验证工程师可以更多的将精力放在协议以及功能验证之中,同时也避免了一些不预期的人为错误而造成的时间的浪费;提供了一种通用的工作模式解析方法,大大增加了工作模式的可配置的多样化形式,使整个验证测试平台具有更强的可重用性;提供PIPE级仿真以及Serdes级仿真两种模式,用户可以使用Makefile自动切换,PIPE级仿真采用的是PHY BFM进行仿真,大大提升了仿真的速度以及调试的效率,是用于前端验证的初期开发,Serdes级仿真采用的是PHY的行为描述级代码,更贴近真实的芯片,更适合前端验证后期的回归测试,二者集合可以更好的满足前端验证的不同阶段;提供了一套基本的任务库,避免了不同验证工程师对相同功能任务的重复开发,也提供了PCIe基本通路验证的基本方法。
本发明采用一种字符串Split的方式标准化的处理工作模式的配置文件,大大增加了工作模式的可配置的多样化形式,使整个验证测试平台具有更强的可重用性。本发明采用PCIe PIPE与Serdes相结合的方式自动生成验证测试平台,适应前端验证的不同阶段。本发明在自动化集成PCIe VIP的同时,提供一组基本的任务库,避免了不同验证工程师对相同功能任务的重复开发,也提供了PCIe基本通路验证的基本方法。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,所述可配置支持多种工作模式的PCIe验证IP自动集成方法包括以下步骤:
提供可配置化的配置文件,确定自定义配置文件;
自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
2.根据权利要求1所述的可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,所述提供可配置化的配置文件,确定自定义配置文件的方法,具体包括:
用户通过配置参数完成PCIe验证IP的基本参数的确定;
完成PCIe验证IP在验证测试平台的自动化集成;
生成工作模式的配置文件;
用户根据此配置文件定义仿真中所采用的工作模式。
3.根据权利要求2所述的可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,所述自定义配置文件通过配置文件定义模块完成,其中,配置文件定义模块包括:
项目名称定义单元,通过projName指定项目名称,将决定验证测试平台生成时的文件夹名称;
绝对路径确定单元,通过dut指定待测设计的顶层文件的绝对路径。
4.根据权利要求1至3任一项所述的可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件的方法,具体包括:
在验证测试平台顶层模板文件中增加PCIe VIP PIPE的实例化,根据配置文件中通道数量确定实例化的PIPE数量;
通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中;
在仿真执行路径下生成工作模式选择的配置文件;
PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析,并将解析的结果通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中;
在Makefile模板文件中增加对PCIe VIP源代码的编译,增加PIPE级仿真的模式选择开关以及相应的宏定义。
5.根据权利要求4项所述的可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,所述PCIe VIP配置模板文件的创建,通过实现字符串的split函数完成工作模式的配置文件的解析,并将解析的结果通过UVM所提供的uvm_config_db函数将其传递给base_test组件之中的方法,具体包括:
根据用户自定义文件配置文件创建EP和RC的初始化PCIe VIP组的字符串数组,在EP的字符串数组中存放着用户配置文件中所有待集成VIP类型为EP的group_name,在RC的字符串数组中存放着用户配置文件中所有待集成VIP类型为RC的group_name;
逐行读取工作模式选择的配置文件;
识别每行的PCIe组的名字是否在EP/RC的初始化PCIe VIP组的字符串数组中,若在定义之中则通过实现的字符串split函数将工作模式选择信息通过字符串“x”进行分离,得到PCIe VIP组中VIP的数量m以及每个VIP的通道数n,通过repeat函数重复m次将n放入到对应的EP/RC结果队列中,否则通过UVM所提供的uvm_error的方式进行报告,并不进行后续处理;
通过UVM所提供的config_db函数将EP/RC结果队列传递给base_test组件之中。
6.根据权利要求5所述的可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件的方法,进一步包括:
在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发。
7.根据权利要求6所述的可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,所述在PCIe base test模板文件中增加PCIe VIP的实例化以及PIPE分发的方法包括:
通过UVM中的config_db函数得到由PCIe VIP配置传递过来的EP和RC的结果队列;
根据EP和RC结果队列的大小,完成EP BFM动态数组以及RC BFM动态数组的空间分配,并将每个BFM进行实例化创建;
通过从结果EP和RC队列进行POP操作,将得到的通道数目用于PIPE的分配,按顺序将对应数量的PIPE分配给PCIe VIP BFM;
配置PCIe VIP开始BFM工作。
8.根据权利要求7所述的可配置支持多种工作模式的PCIe验证IP自动集成方法,其特征在于,所述自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证方法,具体包括:
定义PCIe VIP任务库模板;
加入PCIe协议的基本任务;
将定义完成的任务库include到test_pkg的模板文件中,使当前所有的测试用例以及后面衍生继承的测试用例都可以使用任务库中的任务,避免了不同验证工程师对相同功能任务的重复开发。
9.一种可配置支持多种工作模式的PCIe验证IP自动集成系统,其特征在于,所述可配置支持多种工作模式的PCIe验证IP自动集成系统,具体包括:
配置文件提供模块,用于提供可配置化的配置文件,确定自定义配置文件;
自动化验证生成平台,所述自动化验证生成平台基于python的模板引擎jinja2完成模板文件的渲染,根据配置文件的参数将模板文件填写为最终将输出的验证测试平台文件;
PCIe验证模块,用于自动完成PIPE级以及SerDes接口级的PCIe验证IP与DUT之间的连接关系,用户可以通过Makefile中的参数进行SerDes接口级仿真以及PIPE级仿真的任意切换;
任务库生成模块,用于自动生成PCIe VIP任务库,提供给用户一个基本的任务库进行基本传输通路以及PCIe协议的验证。
10.根据权利要求9所述的系统,其特征在于,所述配置文件提供模块包括:
参数确定单元,用户通过清晰明确的配置参数完成PCIe验证IP的基本参数的确定;
平台集成单元,用于完成PCIe验证IP在验证测试平台的自动化集成;
配置文件生成单元,用于生成工作模式的配置文件;
模式仿真单元,用户根据此配置文件定义仿真中所采用的工作模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211190141.5A CN115544922A (zh) | 2022-09-28 | 2022-09-28 | 可配置支持多种工作模式的PCIe验证IP自动集成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211190141.5A CN115544922A (zh) | 2022-09-28 | 2022-09-28 | 可配置支持多种工作模式的PCIe验证IP自动集成方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115544922A true CN115544922A (zh) | 2022-12-30 |
Family
ID=84729924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211190141.5A Pending CN115544922A (zh) | 2022-09-28 | 2022-09-28 | 可配置支持多种工作模式的PCIe验证IP自动集成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115544922A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911220A (zh) * | 2023-07-19 | 2023-10-20 | 成都电科星拓科技有限公司 | 一种基于UVM和VIP的PCIe分叉验证系统 |
-
2022
- 2022-09-28 CN CN202211190141.5A patent/CN115544922A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911220A (zh) * | 2023-07-19 | 2023-10-20 | 成都电科星拓科技有限公司 | 一种基于UVM和VIP的PCIe分叉验证系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106940428B (zh) | 芯片验证方法、装置及系统 | |
CN108897724B (zh) | 功能完成进度确定方法及装置 | |
CN102375778B (zh) | 实现数字信号处理器自动测试的方法及系统 | |
CN107632827B (zh) | 应用的安装包的生成方法及装置 | |
US10354031B2 (en) | Information processing by interpenetrating signal transmission channel in design for testability of chip | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN111859834B (zh) | 一种基于uvm的验证平台开发方法、系统、终端及存储介质 | |
CN114546738B (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
US20230153158A1 (en) | Method, apparatus, system, and storage medium for performing eda task | |
JP2012123789A (ja) | アプリケーション性能試験のための並列作業負荷シミュレーション | |
CN114138674A (zh) | 自动化测试方法、装置及计算机设备 | |
CN115544922A (zh) | 可配置支持多种工作模式的PCIe验证IP自动集成方法及系统 | |
CN114861578A (zh) | 保持时间违例修复方法、装置、设备及存储介质 | |
CN108228965B (zh) | 一种存储单元的仿真验证方法、装置和设备 | |
CN109840201B (zh) | Ui测试方法、装置、电子设备及计算机可读存储介质 | |
US20160055287A1 (en) | Method for decomposing a hardware model and for accelerating formal verification of the hardware model | |
CN116467979A (zh) | 含tdm程序块的跨fpga芯片静态分析方法、装置、设备及介质 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
CN114997102A (zh) | 一种物理层验证方法、装置、设备及存储介质 | |
CN114924963A (zh) | 网页兼容性测试的分布式执行方法、装置、设备及介质 | |
CN111124890B (zh) | 一种分布式数据库性能测试方法、系统、终端及存储介质 | |
CN113868046A (zh) | 一种pad控制单元的功能验证方法、系统及相关组件 | |
CN114443461A (zh) | 一种代码覆盖信息确定方法、装置、系统及介质 | |
CN114143235A (zh) | Nfv自动测试方法、装置、设备及存储介质 |
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 |