一种具有错误注入和可移植性的芯片验证方法及验证平台与流程

文档序号:20699904发布日期:2020-05-12 15:32阅读:143来源:国知局
一种具有错误注入和可移植性的芯片验证方法及验证平台与流程

本发明属于芯片验证领域,尤其涉及一种具有错误注入和可移植性的芯片验证方法及验证平台。



背景技术:

本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

soc(systemonachip,片上系统)中集成的ip(intellectualproperty,知识产权)模块进行数据传输时,往往过程比较复杂,会在不同的情形下进行,在传输大量数据或受到外界干扰时,可能会出现传输错误,最终导致传输失败。因此在ip设计实现阶段,对这些异常错误的构造和验证就尤为重要。

发明人发现,传统的验证中多采用单一的错误检测模式,无法进行大量的随机错误注入,且通常构造针对自身设计的agent,发送符合设计规范的激励,基本只适用于当前模块,在验证其他模块时需要重新搭建平台,重复编写验证case,时间花费较长。



技术实现要素:

为了解决上述问题,本发明提供一种具有错误注入和可移植性的芯片验证方法及验证平台,其利用随机错误注入方式使产生的错误更全面,保证了ip模块的正确性,同时采用模拟驱动函数的构造方式,能更方便的移植到chip级,且独立的amba_agent封装,使其能更方便的移植到其他具有amba接口的ip模块验证中。

为了实现上述目的,本发明采用如下技术方案:

本发明的第一方面提供一种具有错误注入和可移植性的芯片验证方法,其包括:

建立具有独立封装且可移植性的amba_agent模块和amba_mdl_agent模块,模拟驱动的函数分别构建write_task函数和read_task函数,用以发送符合amba总线协议时序的写操作和读操作;其中,amba_agent模块和amba_mdl_agent模块分别为amba总线代理模块和amba总线代理仿真模块;

对芯片的ip模块进行错误注入,通过amba_agent模块中相应的write_task函数和read_task函数,将产生错误的配置信息写至对应寄存器,读取寄存器中的错误指示位,同时将信息发送至参考模型reference中;

利用计分板scoreboard记录amba_agent模块和amba_mdl_agent模块从dut和仿真模型mdl中读取的寄存器中的信息,再与参考模型reference输出的信息比较,以验证数据传输及错误检测正确性。

作为一种实施方式,所述amba_agent模块和amba_mdl_agent模块均包含高性能总线接口、可扩展总线接口和外围总线接口。

作为一种实施方式,对芯片的ip模块进行错误注入,分别通过amba_agent模块和amba_mdl_agent模块中的相应write_task函数和read_task函数配置寄存器进行错误注入,并读取相关寄存器错误指示位的过程为:

对芯片的ip模块进行错误注入,随机产生需验证模块dut错误传输的寄存器相关配置位,通过amba_agent模块的write_task函数配置相应寄存器,产生错误注入,通过read_task函数读取错误注入后寄存器中相应的错误指示位;;

随机选择配置位取反或不取反,调用amba_mdl_agent模块中write_task函数配置仿真模型mdl相应寄存器,利用amba_mdl_agent中的read_task函数读取寄存器相关信息。

作为一种实施方式,在dut与mdl的寄存器配置位相反的情况下,等待通过amba_agent中read_task函数读取到寄存器中的错误指示位,并将寄存器信息传输给计分板scoreboard记录;再次随机寄存器的配置,发起新的传输,产生各种可能的错误或正确传输的交替情况,实现错误的随机性产生。

作为一种实施方式,在计分板scoreboard中记录需验证模块dut与仿真模型mdl的寄存器配置和错误指示情况。

作为一种实施方式,所述具有错误注入和可移植性的芯片验证方法,还包括:

作为一种实施方式,在dut与mdl的寄存器配置位相同的情况下,dut和mdl采用相同的寄存器配置,将不会产生错误传输,此时在计分板scoreboard中监测到开始传输时,则随机产生一个数值,若为偶数则采用force操作来强制取反mdl输出给dut的信号线,产生传输错误;若为奇数,则不作操作,进行正确的传输。

作为一种实施方式,在配置相同的情况下进行多次传输,并且每次都判断在计分板scoreboard中随机产生数值的奇偶性,确定是否进行force操作,随机错误的发生。

作为一种实施方式,在计分板scoreboard中记录需验证模块dut与仿真模型mdl的寄存器配置情况和信号线force情况。

通过amba_agent模块的读操作,读取相关寄存器对应错误指示位,判断当前传输错误的置位情况,并传输给计分板scoreboard,根据记录进行错误指示的二次判断。

本发明的第二方面提供一种具有错误注入和可移植性的芯片验证平台,其包括:

独立封装且可移植的amba_agent模块及amba_mdl_agent模块,amba_agent模块及amba_mdl_agent模块内均构建有可发送符合amba总线协议时序的写操作和读操作的write_task函数和read_task函数;其中,amba_agent模块和amba_mdl_agent模块分别为amba总线代理模块和amba总线代理仿真模块;

参考模型reference,其用于采样传输芯片的ip模块的错误注入;

计分板scoreboard,其用于收集amba_agent模块和amba_mdl_agent模块调用读函数从dut和仿真模型mdl中读取的对应寄存器中的信息,再与参考模块reference输出的信息及自身的记录比较,以验证数据传输及错误检测正确性。

作为一种实施方式,所述amba_agent模块和amba_mdl_agent模块均包含高性能总线接口、可扩展总线接口和外围总线接口。

本发明的有益效果是:

(1)本发明采用独立封装amba_agent的方式,使其可以广泛应用于带有amba接口的模块验证平台中,明显减少了验证平台的搭建和调试工作量,节省了开发周期。

(2)本发明采用模拟固件驱动的方式构造函数,实现对ip激励的发送,在进入chip级验证时,能更快更好的实现验证case的移植,同时给驱动提供流程参考,降低了人力成本。

(3)本发明采用随机的错误注入方式,使产生的错误更全面,保证了ip模块的正确性。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1是本发明实施例的一种具有错误注入和可移植性的芯片验证方法原理图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

实施例一

如图1所示,本实施例的具有错误注入和可移植性的芯片验证方法,包括:

步骤(1):建立具有独立封装且可移植性的amba_agent模块和amba_mdl_agent模块,模拟驱动的函数分别构建write_task函数和read_task函数,用以发送符合amba总线协议时序的写操作和读操作;其中,amba_agent模块和amba_md_agent模块分别为amba总线代理模块和amba总线代理仿真模块。

在具体实施中,所述amba_agent模块和amba_mdl_agent模块均包含包括ahb(advancedhigh-performancebus:高性能总线)、axi(advancedextensibleinterface:可扩展总线)和apb(advancedperipheralbus:外围总线)三种总线接口。

本实施例通过amba_agent发送符合amba总线时序的激励,连接仿真模型与需验证的ip进行通信,模拟真实的通信场景,采用多种触发方式随机结合的方法产生错误,构造随机的错误场景,覆盖可能发生的错误情况,验证错误检测的正确性。同时amba_agent包含amba的三种总线接口,对读写函数进行独立封装,使其能移植到各类采用ahb、apb或axi总线接口的验证平台中

本实施例还采用模拟固件驱动的方式构造agent内的函数,这样既可以方便的移植到其他带有amba总线接口的ip模块验证平台,同时也可以快速方便的移植到chip级验证,并为chip级的驱动提供参考。

具体地,按照ip采用的amba总线协议,选择相应的总线时序函数,通过调用write_task发送写命令、写地址和写数据;调用read_task发送读命令、读地址和采集读数据。ip的寄存器均可通过write_task进行配置或通过read_task进行读取。这种构造方式,使amba_agent能够广泛的移植到各类采用amba接口总线的ip验证平台中。

步骤(2):对芯片的ip模块进行错误注入,分别通过amba_agent模块和amba_mdl_agent模块中的相应write_task函数和read_task函数配置相关寄存器并读取寄存器中的错误指示信息,同时发送至参考模型reference中;

作为一种实施方式,对芯片的ip模块进行错误注入,分别通过amba_agent模块和amba_mdl_agent模块中的相应write_task函数和read_task函数配置相关寄存器产生错误注入并读取寄存器中的错误指示信息的过程为:

对芯片的ip模块进行错误注入,随机产生需验证模块dut错误传输的寄存器相关配置位,通过amba_agent模块的write_task函数配置相应寄存器,产生错误注入,通过read_task读取错误注入后寄存器中相应的错误指示位;

随机选择配置位取反或不取反,调用amba_mdl_agent模块中write_task函数配置仿真模型mdl相应寄存器,利用amba_mdl_agent中的read_task函数读取寄存器相关信息。

其中,在dut与mdl的寄存器配置位相反的情况下,等待通过amba_agent中read_task函数读取到寄存器中的错误指示位,并将寄存器信息传输给计分板scoreboard记录;再次随机寄存器的配置,发起新的传输,产生各种可能的错误或正确传输的交替情况,实现错误的随机性产生。

在dut与mdl的寄存器配置位相同的情况下,dut和mdl采用相同的寄存器配置,将不会产生错误传输,此时在计分板scoreboard中监测到开始传输时,则随机产生一个数值,若为偶数则采用force操作来强制取反mdl输出给dut的信号线,产生传输错误;若为奇数,则不作操作,进行正确的传输。

具体地,在配置相同的情况下进行多次传输,并且每次都判断在计分板scoreboard中随机产生数值的奇偶性,确定是否进行force操作,随机错误的发生。

步骤(3):利用计分板scoreboard记录amba_agent模块和amba_mdl_agent模块从dut和仿真模型mdl中读取的寄存器中的信息,再与参考模型reference输出的信息比较,以验证数据传输及错误检测正确性。

作为一种实施方式,在计分板scoreboard中记录需验证模块dut与仿真模型mdl的寄存器配置情况和信号线force情况。

通过amba_agent模块的读操作,读取相关寄存器对应错误指示位,判断当前传输错误的置位情况,并传输给计分板scoreboard,根据记录进行错误指示的二次判断。

本实施例采用随机和固定相结合的错误注入方式,使产生的错误更全面,保证了ip模块的正确性。

实施例二

本实施例提供了具有错误注入和可移植性的芯片验证平台,其包括:

独立封装且可移植的amba_agent模块及amba_mdl_agent模块,amba_agent模块及amba_mdl_agent模块内均构建有可发送符合amba总线协议时序的写操作和读操作的write_task函数和read_task函数;其中,amba_agent模块和amba_mdl_agent模块分别为amba总线代理模块和amba总线代理仿真模块;

参考模块reference,其用于采样传输芯片的ip模块的错误注入;

计分板scoreboard,其用于收集amba_agent模块和amba_mdl_agent模块调用读函数从dut和仿真模型mdl中读取的对应寄存器中的信息,再与参考模块reference输出的信息及自身的记录比较,以验证数据传输及错误检测正确性。

其中,所述amba_agent模块和amba_mdl_agent模块均包含高性能总线接口、可扩展总线接口和外围总线接口。

本实施例采用独立封装amba_agent的方式,使其可以广泛应用于带有amba接口的模块验证平台中,明显减少了验证平台的搭建和调试工作量,节省了开发周期;本实施例采用模拟固件驱动的方式构造函数,实现对ip激励的发送,在进入chip级验证时,能更快更好的实现验证case的移植,同时给驱动提供流程参考,降低了人力成本;本实施例采用随机和固定相结合的错误注入方式,使产生的错误更全面,保证了ip模块的正确性。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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