一种基于systemverilog的AHB核随机验证方法与流程

文档序号:12123639阅读:895来源:国知局
一种基于systemverilog的AHB核随机验证方法与流程

本发明涉及数字IP(知识产权模块)验证环境搭建领域,具体涉及基于systemverilog的随机向量约束,以及测试结果自动对比分析;更具体地说,本发明涉及一种基于systemverilog的AHB核随机验证方法。



背景技术:

传统验证方法靠书写不同的测试项(test pattern),将每一种可能出现的情况单独写成一种测试项,来验证整个AHB(注:ARM公司设计的先进高速总线系统)系统是完全符合协议要求的。该验证方式效率较低,耗时较长,而且难以检测各个测试项之间错误的关联性。

目前较为流行的测试方法都是建立在带约束的随机向量生成的验证方法学上,本设计提出了一种新型的随机向量生成方式以及与参考值比对生成报告的方法。

传统验证方法对于完整验证一个协议来说,显得太过于臃肿了,需要测试多少种测试项完全是取决于负责工程师的个人水平,并且各个测试项之间关系不紧密,常常无法考虑到多种突发情况混合的情况,或者是需要扩充测试项库来满足完备性。



技术实现要素:

本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够实现了完全随机的测试过程以及完整的功能检测覆盖率的基于systemverilog(一种测试语言)的AHB核随机验证方法。

为了实现上述技术目的,根据本发明,提供了一种基于systemverilog的AHB核随机验证方法,包括:

第一步骤:采用激励驱动模块在每个周期开始时读取激励生成模块的数据,并传输至待测IP模块;

第二步骤:采用反馈信号收集模块在周期结束时,将激励驱动模块中从机的数据反馈给激励发生模块的主机;

第三步骤:采用激励生成模块根据反馈信号收集模块提供的数据,约束下一周期的允许输入种类列表,并在下一周期开始从允许输入种类列表中随机挑选一种种类;

第四步骤:采用监视校验模块在每个周期收集待测IP的输入输出信息并打印到log,然后检查该输入输出信息是否符合断言要求;

第五步骤:采用断言模块根据IP预定时刻的状态直接对比义判断是否符合预定协议的要求。

优选地,在第四步骤,生成的数据与参考数据对比并产生log的代码。

优选地,断言模块则是systemverilog中的断言功能的实体化。

优选地,主机生成向量的约束代码。

优选地,从机生成向量的约束代码。

优选地,主机响应从机信号的代码。

优选地,激励生成模块包括:主机发生产生模块、从机发生产生模块、主机队列以及从机队列;主机队列以及从机队列分别继承各自基类中的约束信息,并且按照约束条件在每个时钟周期开始的一刻随机生成各个信号的值。

优选地,监视校验模块包括监视校验模块以及校验模块,监视模块使用systemverilog中的语法,在每个周期开始的时候,打印所有的输入输出信息到log文件中;校验模块则是在对应时间点将断言中发现的违反协议的部分同时打印在log文件中。

优选地,断言模块用于将AHB总线协议翻译为信号间逻辑关系并在每个周期开始时检查各个输入之间是否满足预定条件,然后在每个周期结束时检查各个输出是否得到了期望值。

本发明的方法基于systemverilog,设计了满足AHB协议的主机以及从机的随机测试环境,并且主机支持从从机获得响应后调整输出,从而实现了完全随机的测试过程以及完整的功能检测覆盖率,并生成较为详细的log文件方便进行后续调试。本发明能够快速完整的验证AHB IP是否符合协议要求,大大提高了IP功能审核的速度和完备性。

附图说明

结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:

图1示意性地示出了根据本发明优选实施例的基于systemverilog的AHB核随机验证方法的流程图。

图2示意性地示出了根据本发明优选实施例的基于systemverilog的AHB核随机验证方法的模块示意图。

需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。

具体实施方式

为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。

所需检测的IP为AHB总线IP,所以验证方法必须能够产生反馈信号并根据反馈信号来更新输入。因此,所需的验证环境需要能够处理这些反馈信号并实时调整验证条件,来检查这些反馈以及反馈引起的输入条件变化是否合乎协议规定。

图1示意性地示出了根据本发明优选实施例的基于systemverilog的AHB核随机验证方法的流程图。图2示意性地示出了根据本发明优选实施例的基于systemverilog的AHB核随机验证方法的模块示意图。

如图2所示,本发明的设计包含:激励发生模块、激励驱动模块、监视校验模块、断言模块以及反馈信号收集模块。

如图1和图2所示,根据本发明优选实施例的基于systemverilog的AHB核随机验证方法包括:

第一步骤S1:采用激励驱动模块在每个周期开始时读取激励生成模块的数据,并传输至待测IP模块;

第二步骤S2:采用反馈信号收集模块在周期结束时,将激励驱动模块中从机的数据反馈给激励发生模块的主机;

第三步骤S3:采用激励生成模块根据反馈信号收集模块提供的数据,约束下一周期的允许输入种类列表,并在下一周期开始从允许输入种类列表中随机挑选一种种类;

第四步骤S4:采用监视校验模块在每个周期收集待测IP的输入输出信息并打印到log,然后检查该输入输出信息是否符合断言要求;优选地,在第四步骤S4,生成的数据与参考数据对比并产生log的代码。

第五步骤S5:采用断言模块根据IP预定时刻的状态直接对比义判断是否符合预定协议的要求。

其中,断言模块则是systemverilog中的断言功能的实体化。

在根据本发明优选实施例的基于systemverilog的AHB核随机验证方法中,主机生成向量的约束代码;从机生成向量的约束代码;而且在执行过程中,主机响应从机信号的代码。

下面详述各个模块的实现方法。

(1)激励生成模块

激励生成模块具体细分为四个子模块,首先有两个基类模块:主机发生产生模块、从机发生产生模块,这两个模块中分别定义了各个信号的约束条件,保证约束是有效的。约束使用systemverilog中的constraint语法来定义。剩下两个模块分别是主机队列以及从机队列,这两个模块首先会分别继承各自基类中的约束信息,然后按照约束条件,在每个时钟周期开始的一刻随机生成各个信号的值。

(2)激励驱动模块

激励驱动模块是在每个时钟周期上升沿(非时钟周期开始),抓取主机阵列中的所有输入信息,并将其传送到AHB IP中,然后再时钟周期结束时,获取所有的输出信息。

(3)反馈信号处理模块

反馈信号收集模块是在每个时钟周期开始时,获取IP模块中所有输出信号的值,同时抓取从机阵列中的所有数据,并在该时钟周期结束时发送至IP模块。

(4)监视校验模块

该模块由监视校验模块以及校验模块组成。监视模块主要使用systemverilog中的display语法,在每个周期开始的时候,打印所有的输入输出信息到log(注:仿真记录)文件中,方便未来的debug(调试)。校验模块则是在display信息对应时间点,将断言中发现违反协议的部分同时打印在log文件中。

(5)断言模块

断言模块使用systemverilog中的assert语句,将AHB总线协议翻译为信号间逻辑关系并在每个周期开始时检查各个输入之间是否满足,然后在每个周期结束时检查各个输出是否得到了所想要的值。

本发明的方法基于systemverilog,设计了满足AHB协议的主机以及从机的随机测试环境,并且主机支持从从机获得响应后调整输出,从而实现了完全随机的测试过程以及完整的功能检测覆盖率,并生成较为详细的log文件方便进行后续调试。本发明能够快速完整的验证AHB IP是否符合协议要求,大大提高了IP功能审核的速度和完备性。

此外,需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。

可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

而且还应该理解的是,本发明并不限于此处描述的特定的方法、化合物、材料、制造技术、用法和应用,它们可以变化。还应该理解的是,此处描述的术语仅仅用来描述特定实施例,而不是用来限制本发明的范围。必须注意的是,此处的以及所附权利要求中使用的单数形式“一个”、“一种”以及“该”包括复数基准,除非上下文明确表示相反意思。因此,例如,对“一个元素”的引述意味着对一个或多个元素的引述,并且包括本领域技术人员已知的它的等价物。类似地,作为另一示例,对“一个步骤”或“一个装置”的引述意味着对一个或多个步骤或装置的引述,并且可能包括次级步骤以及次级装置。应该以最广义的含义来理解使用的所有连词。因此,词语“或”应该被理解为具有逻辑“或”的定义,而不是逻辑“异或”的定义,除非上下文明确表示相反意思。此处描述的结构将被理解为还引述该结构的功能等效物。可被解释为近似的语言应该被那样理解,除非上下文明确表示相反意思。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1