CN109684681A - 应用uvm验证平台的高层次化验证方法 - Google Patents
应用uvm验证平台的高层次化验证方法 Download PDFInfo
- Publication number
- CN109684681A CN109684681A CN201811483284.9A CN201811483284A CN109684681A CN 109684681 A CN109684681 A CN 109684681A CN 201811483284 A CN201811483284 A CN 201811483284A CN 109684681 A CN109684681 A CN 109684681A
- Authority
- CN
- China
- Prior art keywords
- sequence
- test
- uvm
- driver
- platform
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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
Abstract
本发明公开的一种应用UVM验证平台的高层次化验证方法,旨在提供一种具有更高层次化的验证抽象级别提高验证效率的高层次化验证方法。本发明通过下述技术方案予以实现:一种应用UVM验证平台的高层次化验证方法,具有如下技术特征:启动验证平台,调用TOP层完成测试平台所需的时钟、产生复位信号和例化;TEST层发送高层次序列,通过序列发生器转发给驱动器,驱动器从数据库中提取相应的底层次序列和配置参数进行序列初始化、序列解析和序列保存,随后通过虚拟接口将底层次序列发送给DUT;监控器收集DUT输出数据和覆盖率数据,并将收集好的数据传递给数据收集库,记分板从数据收集库提取要比较的数据,比较完成后输出验证结果。
Description
技术领域
本发明涉及一种基于UVM验证方法学的应用UVM验证平台的高层次化验证方法。
背景技术
近年来,随着数字集成电路设计规模的不断扩大,芯片验证工作量在芯片设计周期中要占到70%以上,搭建验证平台是验证工作的核心部分,可以说一个验证平台验证工作效率的高低,组件可重用性的好坏,直接决定了一款芯片设计的成败。芯片的一次流片成功率很大程度上取决于验证的充分性。由于芯片的规模和复杂度在快速提升,这对验证提出了更高的要求,芯片设计和验证技术的快速发展也使得模块的功能验证的要求越来越高,在短时间内完成模块功能验证,保证逻辑功能正确,对验证环境的完备性,自动化和重用性上有着很高的要求。传统的功能验证方法是针对待验证模块(DUT)的信号接口,手工编写测试向量,并通过检查DUT的响应来判断设计功能的正确性。这种方法抽象级别低,对于复杂度高的设计来说,无法达到理想的边界条件,且难以准确定位错误。更严重的是其可重用性极低,浪费了大量的开发时间。由于传统验证平台每个输入接口都需要单独脚本处理和配置文件配置,传统的仿真验证已难以满足日益增长的可编程逻辑器件验证需求。为了满足功能验证对快速且全面的要求,验证方法学在过去十年得到快速发展,包括基于断言(assertion)的验证、基于约束随机的验证、基于覆盖率的验证、基于硬件加速的验证等。推动验证方法学的发展,主要体现在VMM和UVM等方法学的相继提出和继续完善上。VMM推荐的层次化验证平台从底至上被分成信号层、命令层、功能层、场景层以及测试层。其中的验证组件包括发生器、代理、驱动器、监视器、检查器、记分板以及断言。信号层包括待测设计DUT与接口。命令层在信号层之上,向下通过信号层接口与待测设计相连,向上通过事务级通道与功能层通信,一般包括驱动器(Driver)、监视器(Monitor)和断言驱动器将来自上层的事务转化为信号级激励输入给DUT,监视器用来监视接口信号的变化并转化为事务传递给上层的检查器。功能层位于命令层之上,是高层次操作的抽象,相互之间通过事务级通道通信。这一层主要包括代理(Agent)、检查器(Checker)和记分板(Scoreboard)。代理的作用是接收上层传来的高层事务,如DMA的读写等,并且将这些高层事务转换成单独的命令向驱动器提供。驱动器在接收到代理发出的命令后,就会生成相应的激励数据。记分板用来动态预测设计的响应,施加给DUT的激励同时施加给记分板。记分板对所有的事务进行纪录与统计,记录执行的事务个数,成功失败的事务个数,是否某一事务被遗漏等。检查器通过将监视器传来的数据与记分板中存储的预测响应进行比较来判断待测功能是否正确。场景(Scenario)层在功能层之上,主要是用来生成具有一定关系的随机事务的序列。最上层是测试层,他被用来配置不同的测试案例,定义不同的约束条件。在整个验证工程中,功能覆盖率由仿真工具自动生成,测试者根据功能覆盖率来调整测试平台,修改测试案例直到覆盖率达到1O0%,便可以认为验证过程结束。
在越来越高的抽象层次上进行验证是当前验证方法学的主要趋势。近年来,UVM、OVM、VMM等一类新的验证方法学的有力发展,提升了验证效率。在高级验证方法学(AVM)和通用可重用验证方法学(URM)的基础上,Mentor Graphics和Cadence共同推出了业界第一个通用、开放的验证方法学UVM;UVM为验证工程师提供了丰富的类库和高级验证技术,实现验证平台从模块级到系统级的重用。搭建一个高级的验证平台有很多要求,其中一个主要的要求就是要让验证平台可重用。在验证中经常遇到一个可重用性的难题就是需要及时调整特定的验证平台环境,对DUT应用一系列新的功能测试。UVM全称为通用验证方法论,UVM前身是OVM,两者都是Accellera提出,UVM在OVM的基础上有所改进。UVM如同一个管家,将“输入激励”和“观察波形”的动作管理了起来。UVM提供了很多机制,也能够快速的产生我们想要输入的激励。UVM是一个通用验证平台,可以产生复杂、大量、可定制化的随机激励,并可以提高大型验证工程的协作性和扩展性。举个例子,UVM框架就像软件开发的分层结构,定义好了统一的接口,那么各个层次就可以交给各个团队来开发。验证项目也是如此,产生激励的工程如果有改动,并不会影响“观察波形”(实质是观察结果)的团队。实际上,UVM分的更细,它将各个流程都拆分开来,包括transaction、Driver驱动器、序列(Sequence)、序列发生器(Sequencer)、监控器模块Monitor、agent、TEST、ENV、TOP等。此外,UVM提供了优秀的factory机制、objection机制、reg机制。UVM采用树形的组织结构管理验证平台的各个部分。UVM中的Factory机制,通过建立一张表格,利用宏完成注册,对new函数重写并为其他机制的实现提供可能。UVM中的phase机制,通过依次执行两例主要是提供了标准接口的总线功能模型,对于测点的全面性并没有给予特别的帮助,其后断言的提供从侧面有限地解决了部分问题。运行UVM验证方法学能够实现一个层次化的验证结构,可以较简单的移植并验证不同配置的PCIE,并且通过约束产生随机数据包激励,可以实现遍历所有指令以及地址。OVM提供了事务交易级的架构,借助这些事务交易级的接口,可以搭建模块化,可重用的验证组件;它的类库可以帮助使用者创建约束随机的激励和序列,搜集和分析功能覆盖信息,包括断言在内的可配置和层次性管理的验证环境;其中基于Factory Pattern的对象生成方式,验证平台架构的动态构建,动态的参数配置,激励产生与验证架构分离和测试作为验证的顶层等高级技术使得可重用的验证平台更易实现。传统上,类的层次化对象产生创建是通过对象的构造函数new来实现的。高层次的组件通过调用低层次组件的构造函数,创建低层次组件的对象。这种方法限制了创建对象的灵活性,因为对象的类型在编译的时候就已经确定了。传统的类的层次化验证环境中使用构造函数的参数来配置验证平台。例如验证平台的架构,参数设置(数组的大小和常数),操作模式(错误注入和调试)是可以通过这个方法来配置的;但是在层次复杂的结构中,这种方法使用起来变得困难而且很难添加新的参数。
UVM平台的架构主要是由通用的验证组件(UVC)构成的。验证组件UVC是UVM验证平台中重用性最高,最完整的层次。基本而言每个UVC都已经是封装好、功能完善且可配置的验证环境。UVC可以分为接口UVC和模块UVC,UVC是对DUT的接口按照规定的协议建模,主要包括事务数据、序列器、序列发生器、驱动器、监视器、代理、环境等。而模块UVC主要是对DUT的功能建立模型,包括参考模型、记分板等。在验证工程项目搭建验证平台时,通过按照需求,配置功能齐全的UVC,可以快速有效地搭建一个验证平台。而在不同的工程项目中,当接口协议相同时,就可以调用相应的接口UVC,当DUT的主要功能相同时,也可以调用相应的模块UVC。这种不同工程复用UVC的方法可以缩短开发周期,加快验证进度。根据UVM验证方法学的思想所设计的验证平台,该验证平台通过最顶层TOP将由UVM搭建的平台和Interface以及DUT连接起来。Interface是采用System Verilog技术建立模块间通信的接口建模,可以看作是一组智能的连线。接口包含了连接、同步、甚至两个或者多个块之间的通信功能,它用来连接DUT和验证平台。标准验证平台的结构中有一个顶层的模块(top),在顶层模块中例化了待验证模块DUT、待验证模块DUT接口和一个顶层的类;顶层的类即验证环境中包含了验证平台的所有组件,可以在这个架构中应用的System Verilog技术,例如约束随机数的产生和功能覆盖率。测试激励产生在验证开始之前,必须按照测试计划,编写全面的测试用例。这里测试用例的产生,使用约束随机产生的方式。通过编写随机约束,仿真器根据约束要求,产生满足约束的测试激励。以验证DUT是否能够满足协议规定的所有情况。通过随机测试,验证平台可以命中一些难以预期的边界条件,提高验证覆盖率。其中验证平台的外部控制通过脚本实现,如开始验证、结束验证、是否产生波形文件、形成严重报告等动作。
在通用的UVM验证平台中,一个driver驱动器只能接受一种序列(Sequence)序列格式;各个组件之间信息传递采用port通信技术实现,一个agant中只能构造一个序列(Sequence)的通信端口,端口连接关系具有严格对应要求,这种方式降低了可重用性,增加了复杂性。一个顶层的testcase是一组具体化的测试激励序列产生,序列产生层次化较低,当外部接口对测试序列结构产生变化,有多重验证需求时,需要重新配置不同测试环境,测试环境复杂度会急剧增加,这是一项非常难以忍受的设计。UVM在执行过程中还存在着难以处理的数据传递和同步化问题。主要存在的问题如下:接口数据格式协议支持相似的单一验证环境中,无法满足UVM设计多重验证环境,需要重新配置;序列(Sequence)被作为测试的最顶层,但却是处理的是底层具体的测试序列设计,抽象级别低;以agent配置的各种port传递信息,各种port建立连接关系需一一对应,有两种操作模式,数据格式以8bit严格要求。复杂且重用性低;采用了vif接口,但在连接处理中仍无法完全与待验证模块DUT隔离,有待提升。
研究表明,越是高层次化的验证则验证效率越高,而越是低层次化的验证则验证准确性越高。UVM验证方法学属于TLM级验证,相比于传统的RTL级验证,是一种更高层次的验证方法。UVM验证方法学是业内一种主流的验证方法学,主要是对结构相似的待验证模块DUT进行验证,但在实际工程中待验证模块待验证模块DUT对象往往呈现的是多重接口特性,针对多重验证环境,通常在UVM中需要重新搭建验证环境,建立连接关系,设计层次化序列,使得验证的复杂度和出错概率都急剧增加。
尽管UVM验证方法学是业内一种主流的验证方法学,但是其中一些强制的工厂工作模式设计理念,使人们在一开始就很难能够简单地使用和正确理解,所有的验证环境组件在整合后才能使用,很难定位到错误来源,UVM在执行过程中还存在着难以处理的数据传递和同步化问题。
发明内容
为了解决上述技术问题,本发明的目的是终端现有技术存在的不足之处,提供一种简单易行,验证效率高,验证自动化,可重用性好,具有更高层次化的验证抽象级别的UVM验证方法。
本发明的上述目的可以通过以下措施来实现,一种应用UVM验证平台的高层次化验证方法,具有如下技术特征:根据通用UVM验证方法论,在可编程逻辑器件FPGA中将UVM验证平台分为最顶层的TOP层、作为测试层的TEST层、作为基础测试层的BASE_TEST层、作为环境层的ENV层、作为接口层的Interface层和作为待验证模块的DUT层,共六个层次;启动验证平台,在运行一开始首先调用TOP层完成测试平台所需的时钟、产生复位信号和例化所有接口;TEST层发送高层次序列Sequence_high给序列发生器Sequencer,Sequencer再转发给驱动器Driver,Driver根据接收到的高层次序列Sequence_high,从数据库Sequence_low_lib中提取相应的底层次序列Sequence_low和系统配置参数Sys_config,进行序列初始化、序列解析和序列保存,随后通过虚拟接口将底层次序列Sequence_low发送给待验证模块DUT;监控器Monitor和驱动器Driver同步运行,监控器Monitor收集待验证模块DUT输出数据和覆盖率数据,并将收集好的数据传递给数据收集库Collect_lib,记分板Scoreboard从数据收集库Collect_lib提取要比较的数据,比较完成后输出验证结果。
本发明的优点和积极效果在于:
简单易行。本发明采用与通用验证平台层次关系一致,包含了对数据库控制和管理。优化后的UVM验证平台层次划分关系简单,环境层ENV包含Sequencer、Driver、Monitor、Ref_model、Scoreboard共5个组成部分,ENV层不在做进一步层次划分,取消代理层Agent,其他组件保留,每个组件之间信息交换不再以特定的端口port方式传递信息,而是采用数据库共享方式传递信息,BASE_TEST层对数据库控制和管理,连接关系简单,同时适用多个序列Sequence处理,消除了多序列之间的同步化问题。在序列设计中,采用了双层次序列设计,实现了序列Sequence产生与测试平台TB分离。这种利用数据库共享技术提升验证平台的数据处理能力,以更加透明和高效的验证环境,简洁的处理方式设计平台,使得平台的验证工作变得简单易行。
验证效率高。本发明利用高层次序列完成测试用例产生,低层次序列完成测试数据产生(高层次序列是一种抽象序列,低层次序列是一种具体序列)。同时,执行顺序上先是执行高层次序列,再执行低层次序列,遵循顺序执行和层次化执行,处理方式与软件测试计划的自顶向下结构保持一致,用高层次序列指导低层次序列执行,进而完成测试自动化。这种采用双层次序列设计方式允许复杂的激励快速产生,解决了测试用例与测试数据之间的匹配,克服了现有技术UVM在执行过程中很难定位到错误来源,难以处理的数据传递和同步化问题。不仅解决了低层测试激励点覆盖,同时也解决了高层测试用例覆盖。由于双层次序列是顺序执行,因此,不存在通用UVM验证平台中多个序列(Sequence)之间、以及序列(Sequence)和Driver驱动器之间的同步处理问题,这种利用双层次序列设计技术,建立起高层次序列与需求之间的追踪关系,测试覆盖率和测试对象连接起来,验证人员能够不断地跟踪验证进度和更为高效地配置资源,使得测试的完整性和充分性得到保障。同时,利用脚本执行验证平台,自动呈现验证结果。这种利用双层次序列设计和脚本技术,大大地提高了验证平台的验证工作效率。
验证自动化。本发明在可编程逻辑器件FPGA中,根据通用UVM验证方法论,将通用的UVM验证平台架构优化后,根据被测件以及测试文件不同,将Lib、待验证模块DUT、TEST、Log、Run等过程分类设计,顺序执行验证工作流程,实现工程完全自动化编译、链接、测试、覆盖率100%,测试点覆盖率100%结果输出。使得平台显著提升验证的效率。
可重用性好。本发明利用协议模块Protocol Module和虚拟接口virtualinterfacer,隔离待验证模块DUT和测试平台TB之间带来的影响,封装待验证模块DUT,完成对多个待验证模块DUT独立封装,保护待验证模块DUT、测试平台TB以及顶层TOP独立。当待验证模块DUT发送变化时,仅对协议模块做出改变,而不会影响到测试平台TB中去;当测试平台TB发生变化时,不会影响到顶层Top。同时,采用数据库共享技术,能够不断更新的验证序列库,可以快速扩大验证范围;采用协议模块,能够有效扩大多种类型多个数据接口的验证,实行接口分类包装,接口信号命名的变化、信号删除、信号增加等不会受到影响,提高可重用性。
针对性强,方法完善。本发明在分析通用UVM验证平台的基础上,重构验证平台架构,提出了双层次序列设计、数据库共享、协议模块、事件触发同步化等技术,优化验证平台架构,通过采用多种技术优化,实现了一种具有高层次化的UVM验证平台可重用性好、透明和简洁的处理方式,能同时适用于多重验证环境,设计测试脚本自动化工作流程,通过一个验证平台,一次脚本化运行,实现功能覆盖率100%,测试点覆盖率100%。不仅解决了数据传递和同步化问题,使得序列设计变得简单、快速,而且可以满足多重验证环境需要,适应于最新FPGA软件测试领域。
附图说明
为使本发明的目的、技术方案和优点更加清楚,同时也为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步详细、深入的描述。应当理解,此处所描述的实施仅用作说明和解释本发明,并不用于限定本发明。
图1是通用UVM验证平台的原理框图。
图2是本发明应用图1所示优化后的高层次化UVM验证平台示意图。
图3是图2BASE_TEST测试层树形架构示意图。
图4是图1通用UVM序列示意图。
图5是图2优化后双层次序列示意图。
图6是图1的通用UVM接口层示意图。
图7是图2的UVM接口层示意图。
图8是图2的脚本设计架构示意图。
图9是图2的测试平台工作流程。
具体实施方式
参阅图1。根据本发明,根据通用UVM验证方法论,在可编程逻辑器件FPGA中将UVM验证平台分为最顶层的TOP层、作为测试层的TEST层、作为基础测试层的BASE_TEST层、作为环境层的ENV层、作为接口层的Interface层和作为待验证模块的DUT层,共六个层次。ENV层又进一步层次划分为代理层Agent、序列Sequence、参考模型Ref_model、记分板Scoreboard。代理层Agent包含序列发生器Sequencer、驱动器Driver、监控器Monitor共3个组成部分,BASE_TEST测试层在通用平台中没有显示出来,仅作为一种辅助层,TOP层作为测试平台的最顶层,在运行一开始首先调用该层,主要完成平台所需的时钟、复位信号产生,例化所有接口。TEST层由Sequence产生一组激励信息的序列,然后经序列发生器Sequencer转换,最后驱动器Driver将接收到的序列驱动到DUT,其中监控器Monitor负责监控信号,记分板Scoreboard负责对信号进行比较分析。利用虚拟接口virtual interfacer,隔离待验证模块DUT和测试平台TB之间带来的影响。
参阅图2。优化后的UVM验证平台可以分为TOP层、TEST层、BASE_TEST层、ENV层、Interface层和DUT层共六个层次。TOP层作为测试平台的最顶层,在运行一开始首先调用该层,主要完成平台所需的时钟、复位信号产生,例化所有接口,启动验证平台。TEST层发送高层次序列Sequence_high直接传递给ENV层中的Sequencer,而不需要通过虚拟序列器virtual Sequencer进行调度,Sequencer再转发给Driver,Driver根据接收到的Sequence_high,从数据库Sequence_low_lib中提取相应的底层次序列Sequence_low和系统配置参数Sys_config,进行序列初始化、序列解析和序列保存,随后通过虚拟接口将底层次序列Sequence_low送给待验证模块DUT。ENV层中的Monitor和Driver同步运行,监控器Monitor专门负责收集DUT数据和覆盖率数据,并将收集好的数据传递给数据收集库Collect_lib,记分板Scoreboard从数据收集库Collect_lib提取要比较的数据,比较完成后输出结果。同时利用协议模块Protocol Module和虚拟接口virtual interfacer,隔离待验证模块DUT和测试平台TB之间带来的影响。
顶层TOP
优化后的平台中,在接口设计时利用了协议模型搭建,在顶层TOP设计时,不再需要指定具体信号,采用隐含模式即可,顶层设计简单化,与待验证模块DUT因为隔离其受到影响更小,增加可重用性。
测试层TEST
测试层TEST在序列Sequence中使用starting_phase来控制验证平台的开启和关闭,通过运行`uvm_do_with函数完成测试用例的约束随机化。基础测试层BASE_TEST参阅图3。基础测试层BASE_TEST是优化后的测试环境的关键层,属于环境层ENV层的上一个层次,先对环境层ENV例化,然后再例化其它模块;建立数据库和环境层ENV的各个组件之间连接关系和数据传输通道,形成与其它组件之间的关系以及所起作用的树形架构,使用UVM库的uvm_config_db::set函数,将需要共享的数据库传递给指定的模块;最后使用UVM库的uvm_config_db::get函数,将指定的模块导出数据库。基础测试层BASE_TEST通过环境层ENV连接序列发生器Sequencer、监控器Monitor、参考模型Ref_model和记分板Scoreboard,序列发生器Sequencer将序列Sequence通过端口port方式转发给驱动器Driver,监控器Monitor和参考模型Ref_model将信息传递数据库,数据库将信息传递给驱动器Driver和记分板Scoreboard,形成树形架构。
数据库Lib
数据库主要包含一个高层次测试的高层次序列Sequence_high、大量的底层次测试序列的底层次序列库Sequence_low_lib、存储监控到的数据、收集覆盖率信息的数据收集库Collect_lib、运行过程中系统参数配置序列的Sys_config系统配置4个部分。数据库通过基础测试层BASE_TEST建立和环境层ENV的各个组件之间连接关系,以及确立数据传输通道,形成与其它组件之间的关系以及所起作用的树形架构。
驱动器Driver
驱动器Driver发送和接收每个接口信号的驱动信息,根据接收到高层次序列命令,从数据库中提取相应的底层次序列库和系统配置参数,进行序列初始化、序列解析和序列保存,随后通过虚拟接口将底层次序列送给待验证模块DUT,同时,调用系统配置序列来控制待验证模块DUT的时序参数,利用事件触发产生驱动完成标志。
为了确保数据传递的准确性,在ENV层的验证组件中,均采用事件触发驱动器Driver、监控器Monitor和记分板Scoreboard,事件触发和具体时间无关,一个同步化用一个事件触发event来完成,多个同步化用多个事件触发event来完成监控、分析不同组件之间的数据;在驱动器Driver、监控器Monitor和记分板Scoreboard之间实现数据同步化。并且简单实用,能够非常方便的监控、分析不同组件之间的数据监控器Monitor
由于监控到的数据时都是在不同时刻下完成,采集时与Driver驱动器一致,利用事件触发确保数据传递的准确性,在收集数据完成后,产生不同的同步标志信息。取消监控器模块Monitor模式区分和端口传递,简化设计。监控器Monitor组件和驱动器Driver同步运行,一方面收集待验证模块DUT的各种输出数据,另一方面收集覆盖率数据,并将收集好的两类数据传递给数据收集库Collect_lib,完成不同数据类型的收集和传递。
记分板Scoreboard
通用平台中,一个单一的记分板Scoreboard实现一个待验证模块DUT的序列比较,当存在多个待验证模块DUT需求时,记分板Scoreboard会变得更加复杂。优化后的记分板Scoreboard取消了端口传递,通过读取标志信号判决,从Collect_lib提取要比较的数据,并输出结果。与传统UVM的记分板Scoreboard相比,设计简化,连接关系只与数据库关联,隔离待验证模块DUT程度高,因此,一个记分板Scoreboard可以同时实现对多个待验证模块DUT序列自动对比。
接口层Interface
待验证模块DUT与测试平台TB是属于两个不同的世界,待验证模块DUT是静态世界,测试平台TB是动态世界。因此,待验证模块DUT与测试平台TB不能直接连接,需要在两者之间增加一个虚拟接口。在通用UVM的接口层Interface设计中,在待验证模块DUT与测试平台TB之间增加一个虚拟接口virtual interface进行两者隔离,实现从事务级别到信号级别之间的相互信息转换。并在通用UVM基础上,在虚拟接口virtual interface与待验证模块DUT之间增加协议模块protocolmodule,进一步隔离待验证模块DUT与测试平台TB,使测试平台TB可以单独复用,把设计平台和测试平台彻底分隔开来,保证其不受设计改动的影响,实现事务交易处理器的更大可重用性。
针对虚拟接口virtual interface设计,根据测试对象和测试组件不同,分类设计,不同接口按照不同时钟域分类,同一种接口按照待验证模块DUT、Driver和Montor三种测试组件再进一步分类,实现测试层次清晰的特点。
参阅图4。通用UVM序列设计,针对存在多个序列Sequence,想要调用不同的序列Sequence,需要使用虚拟序列virtual Sequence和虚拟序列器virtual Sequencer统一调度多个序列Sequence。当同时发送多个序列相似Sequence请求,将多个Sequence转换为一个虚拟序列virtual Sequence,并进行统一调度,然后再将一个虚拟序列virtualSequence转换成一个虚拟序列器virtual Sequencer,最后根据规定的对应关系,再将一个虚拟序列器virtual Sequencer分解为多个虚拟序列器Sequencer,每个虚拟序列器Sequencer将相似的序列Sequence通过一个端口port方式传递给驱动器Driver中,然后由驱动器Driver发送给DUT。
对于多序列的同步化处理问题,相关文献将序列分解为高层次化序列和低层次化序列,高层次化序列再由多个低层次化序列组成。在先入先出队列FIFO(First InputFirst Output)测试中,将序列分解为高层次化序列和低层次化序列,高层次化序列划分简单,低层次化序列是根据高层次化序列直接产生激励,两者本身是对原有序列的再进一步细分。
在优化后UVM双层次序列设计中,根据实际需求,层次化的序列可分为高层次序列和低层次序列,高层次序列抽象级别较高,低层次序列是直接测试序列,抽象级别较低,顺序执行。
参阅图5。优化后双层次序列设计,当测试开始时,Driver驱动器通过get_next_item()向序列发生器Sequencer请求数据;序列发生器Sequencer从序列Sequence中得到高层次序列序列Sequence_high,并将序列Sequence_high以指针的形式传递给Driver驱动器;Driver驱动器得到后,初始化低层次序列库序列Sequence_low_lib,解析并判决序列Sequence_high,根据判决结果将低层次序列序列Sequence_low发送给待验证模块DUT;待Driver驱动器处理完序列后,通过item_done()通知序列发生器Sequencer数据已发送,紧接着Driver驱动器依据序列Sequence_high继续发送下一个序列Sequence_low,依次不断循环,直至序列Sequence_high要求的所有序列Sequence_low都发送完毕,这时TEST才确认并结束测试程序。
在高层次序列设计中,首先将得到的测试计划按照需求规格提炼出验证特性;将验证特性进行归类处理后,对应的测试用例编写成测试功能点。如测试计划中的用例特性可分为功能特性、接口特性、性能特性等,用例名称分为时钟处理功能、时钟接口、数据回传时间等,对应的用例标识为SRS_GN_01、SRS_JK_05、SRS_XN_09等。通过以上流程,就可以得到验证的功能点,采用列表方式或其他方式形成一组高层次序列。由于高层次序列是依据测试计划而来,因此,高层次序列与测试计划之间就具有追踪关系,能够保证测试的完整性和充分性。
高层次序列采用枚举方式实现,枚举集合中的不同名称代表不同的测试用例标识。采用class形式将高层次序列封装起来,形成一组序列,向下层提供一个统一的任务接口。最终,一个序列(Sequence)_high完成所有的测试用例设计,一个测试任务TEST中完成所有的测试用例执行。
在低层次序列库设计中,一个软件测试计划需要从不同方面、不同输入数据类型来进行验证,每一个输入数据的组合就可以看作一个测试点,多个相似的特定测试点合并,产生一个新的序列(Sequence)即低层次序列。由于UVM是一个连续运行的过程,序列会一直在不同的层次中存在,序列(Sequence)本身又是一种object。基于这一特性,创建一个由多个低层次序列组成的低层次序列库序列Sequence_low_lib,序列库可以在不同层次之间实现数据共享。
序列Sequence_low_lib包含了大量的低层次序列,使用uvm_config_db函数获取,根据高层次序列特性创建不同数据格式的低层次序列库。当Driver驱动器从低层次序列库提取序列时,这时提取到的序列是固定的序列,在不加处理直接使用时,那么每次仿真会得到相同的随机结果,因此,在提取后需要对内容进行随机化处理,包含所有激励以及配置的class,通过运行`uvm_do_with函数完成。实现序列的随机化。
双层次序列有效解决了测试用例与测试数据之间的匹配,高层次序列完成了测试用例产生,低层次序列完成了测试数据产生。
数据收集数据收集是一个简单的数据存储区,主要收集监控器模块Monitor、Ref_model、Driver等传递来的数据和标志信号等,以供记分板Scoreboard进行比较使用;同时收集覆盖率信息。
系统配置在测试不同的待验证模块DUT过程中,仅仅传递序列的激励数据还不够,接口数据传递同时还伴随有时序参数配置等要求,因此,还需要建立一个系统参数配置文件,系统参数主要涉及对接口的时序参数配置和数据包的时间控制等,以便适应于不同接口需要。
共享方式数据库是作为一个uvm_object的class类产生,所有相关的数据在一个文件中,分类设计,数据库可以在任何的componentorobject中共享。共享方式在BASE_TEST测试层完成。共享方式简单,使用uvm_config_db::set函数将需要共享的数据库传递给指定的模块;使用uvm_config_db::get函数将该指定的模块导出共享的数据库。
接口设计待验证模块DUT与TB(testbench)之间是属于两个不同的世界,待验证模块DUT是属于静态世界,TB是属于动态世界。因此,待验证模块DUT与TB不能直接连接,需要在两者之间增加一个虚拟接口。
通用UVM接口参阅图6。根据被测接口不同设置不同的实体接口,便于在实际使用过程中进行添加、删除、修改等操作。在通用UVM接口设计中,在测试平台TB与待验证模块DUT之间增加作为两者之间数据交换的缓冲的虚拟接口virtual interfacer,利用所述虚拟接口实现待验证模块DUT和测试平台TB之间的数据交互,将虚拟接口设为对应接口类型的一个句柄,同时将虚拟接口virtual interface内部信号直接传输到待验证模块DUT上,提高可重用性;在相同的虚拟接口在不同的类中,通过构造函数的参数或者过程初始化,这样测试平台TB就可以访问虚拟接口virtual interface的tasks、functions、ports等。通过添加虚拟接口方式,实现待验证模块DUT与测试平台TB隔离,同时两种之间又需要建立一个包含测试平台TB和待验证模块DUT的顶层top,隔离不彻底,当待验证模块DUT是由多个不同类型的复杂数据接口组成时,更易带来错误影响。
基于协议模块的UVM接口参阅图7。针对优化后的UVM接口层,首先在测试平台TB与待验证模块DUT之间增加作为两者之间数据交换的缓冲的一个虚拟接口virtualinterfacer,实现待验证模块DUT与测试平台TB隔离;然后在虚拟接口virtual interfacer与待验证模块DUT之间增加一个协议模块Protocol Module,进一步隔离待验证模块DUT和测试平台TB之间带来的影响。该协议模块是一种封装待验证模块DUT,可以完成对多个待验证模块DUT独立封装,保护待验证模块DUT、测试平台TB以及顶层TOP。当待验证模块DUT发送变化时,仅对协议模块做出改变,而不会影响到测试平台TB中去;当测试平台TB发生变化时,不会影响到顶层Top。使用协议模块来隔离不同类型接口,实行接口分类包装,接口信号命名的变化、信号删除、信号增加等不会受到影响,提高可重用性。
规范虚拟接口virtual interface接口设计,设计接口时钟域分类管理,兼容多时钟域接口的设计需求,形成层次清晰,可以满足不同接口需要。同时,在接口设计中经常会存在双向数据端口的设计,不正确的设计会导致测试受阻,需要注意双向数据端口在协议模块中设计。
脚本化流程,一个工程中的源文件不计其数,为了便于管理,按其类型、功能、模块应分别放在若干个目录中,采用脚本设计测试过程和复杂操作,实现工程完全自动化操作,提高软件测试效率。
参阅图8。针对优化后的脚本设计架构,首先建立是仿真的库文件Lib,然后调用验证模块DUT文件,接着是调用所有的测试文件TEST,以及输出测试结果文件Log等信息,最后是执行测试命令编制。利用脚本执行验证平台,自动呈现测试结果,避免大量人工重复劳动,提高软件测试效率。
参阅图9。针对优化后的测试平台工作流程,首先是编制测试计划,然后根据测试计划,建立数据库,包含对高层次序列和低层次序列的设计,然后运行编制好的自动化脚本文件,获取被测试模块信息和测试用例信息。获取信息后,调用当前的测试代码、被测件等内容,开始编译源代码、链接代码,启动仿真工具。在仿真过程中会输出覆盖率报告文件,检查是否100%覆盖,若无则修改数据库,重新执行直至100%满足。仿真结束后,测试平台显示所有测试结果和覆盖率信息,完成整个测试过程。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和原则下,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。
Claims (10)
1.一种应用UVM验证平台的高层次化验证方法,具有如下技术特征:根据通用UVM验证方法论,在可编程逻辑器件FPGA中将UVM验证平台分为最顶层的TOP层、作为测试层的TEST层、作为基础测试层的BASE_TEST层、作为环境层的ENV层、作为接口层的Interface层和作为待验证模块的DUT层,共六个层次;启动验证平台,在运行一开始首先调用TOP层完成测试平台所需的时钟、产生复位信号和例化所有接口;TEST层发送高层次序列Sequence_high给序列发生器Sequencer,Sequencer再转发给驱动器Driver,Driver根据接收到的高层次序列Sequence_high,从数据库Sequence_low_lib中提取相应的底层次序列Sequence_low和系统配置参数Sys_config,进行序列初始化、序列解析和序列保存,随后通过虚拟接口将底层次序列Sequence_low发送给待验证模块DUT;监控器Monitor和驱动器Driver同步运行,监控器Monitor收集待验证模块DUT输出数据和覆盖率数据,并将收集好的数据传递给数据收集库Collect_lib,记分板Scoreboard从数据收集库Collect_lib提取要比较的数据,比较完成后输出验证结果。
2.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:环境层ENV包含序列发生器(Sequencer)、驱动器Driver、监控器Monitor、参考模型Ref_model、记分板Scoreboard共5个组成部分,而基础测试层BASE_TEST在验证平台中作为关键层。
3.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:测试层TEST在高层次序列Sequence_high中使用starting_phase来控制验证平台的开启和关闭,通过运行`uvm_do_with函数完成测试用例的约束随机化。
4.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:基础测试层BASE_TEST是测试环境的关键层,属于环境层ENV的上一个层次;基础测试层BASE_TEST通过环境层ENV连接序列发生器Sequencer、监控器Monitor、参考模型Ref_model和记分板Scoreboard,序列发生器Sequencer将序列Sequence通过端口port方式转发给驱动器Driver,监控器Monitor和参考模型Ref_model将信息传递数据库,数据库将信息传递给驱动器Driver和记分板Scoreboard,形成树形架构;先对环境层ENV例化,再例化其它组件;然后建立数据库和环境层ENV的各个组件之间连接关系和数据传输通道,形成与其它组件之间的关系以及所起作用的树形架构;并且使用UVM库的uvm_config_db::set函数,将需要共享的数据库传递给指定的模块;最后使用UVM库的uvm_config_db::get函数,将指定的模块导出数据库。
5.如权利要求4所述的应用UVM验证平台的高层次化验证方法,其特征在于:数据库主要包含一个高层次测试的高层次序列Sequence_high、大量的底层次测试序列的底层次序列库Sequence_low_lib、存储监控到的数据、收集覆盖率信息的数据收集库Collect_lib、运行过程中系统参数配置序列的Sys_config系统配置4个部分。
6.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:作为驱动器Driver的driver驱动器组件,发送和接收每个接口信号的驱动信息,根据接收到的高层次序列命令,从数据库中提取相应的底层次序列库和系统配置参数进行序列初始化、序列解析和序列保存,随后通过虚拟接口将底层次序列送给待验证模块DUT,同时,调用系统配置序列来控制待验证模块DUT的时序参数,利用事件触发产生驱动完成标志。
7.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:作为ENV层的ENV验证组件事件触发驱动器Driver、监控器Monitor和记分板Scoreboard,一个同步化用一个事件触发event来完成,多个同步化用多个事件触发event来完成监控、分析不同组件之间的数据;在驱动器Driver、监控器Monitor和记分板Scoreboard之间实现数据同步化。
8.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:在通用UVM的接口层Interface设计中,在待验证模块DUT与测试平台TB之间增加一个虚拟接口virtual interface对进行两者隔离,实现从事务级别到信号级别之间的相互信息转换;在通用UVM接口层的设计基础上,在虚拟接口virtual interface与待验证模块DUT之间新增加一个能够进一步隔离待验证模块DUT与测试平台TB的协议模块protocol module,使测试平台TB可以单独复用,从而把待验证模块和测试平台彻底分隔开来,实现事务交易处理器的更大可重用性。
9.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:测试开始时,Driver驱动器通过get_next_item()向序列发生器Sequencer请求数据;序列发生器Sequencer得到高层次序列Sequence_high,并将高层次序列Sequence_high以指针的形式传递给驱动器Driver;驱动器Driver根据得到的高层次序列Sequence_high,初始化低层次序列库Sequence_low_lib,解析出Sequence_low低层次序列,并将低层次序列Sequence_low发送给待验证模块DUT;待Driver驱动器处理完序列后,通过item_done()通知序列发生器Sequencer数据已发送,紧接着驱动器Driver依据高层次序列Sequence_high继续发送下一个低层次序列Sequence_low,依次不断循环,直至高层次序列Sequence_high要求的所有低层次序列Sequence_low都发送完毕,这时TEST层才确认并结束测试程序。
10.如权利要求1所述的应用UVM验证平台的高层次化验证方法,其特征在于:在通用UVM接口设计中,在待验证模块DUT与测试平台TB之间增加作为两者之间数据交换的缓冲的虚拟接口virtual interfacer,利用所述虚拟接口实现待验证模块DUT和测试平台TB之间的数据交互,将虚拟接口设为对应接口类型的一个句柄,同时将虚拟接口virtualinterface内部信号直接传输到待验证模块DUT上,提高可重用性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811483284.9A CN109684681B (zh) | 2018-12-06 | 2018-12-06 | 应用uvm验证平台的高层次化验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811483284.9A CN109684681B (zh) | 2018-12-06 | 2018-12-06 | 应用uvm验证平台的高层次化验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684681A true CN109684681A (zh) | 2019-04-26 |
CN109684681B CN109684681B (zh) | 2023-05-16 |
Family
ID=66187110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811483284.9A Active CN109684681B (zh) | 2018-12-06 | 2018-12-06 | 应用uvm验证平台的高层次化验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684681B (zh) |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263459A (zh) * | 2019-06-25 | 2019-09-20 | 合肥工业大学 | 一种基于测试序列分析的uvm验证加速方法 |
CN110347542A (zh) * | 2019-05-31 | 2019-10-18 | 北京华捷艾米科技有限公司 | 一种提高验证环境重用性的端口连接方法、系统及介质 |
CN110377475A (zh) * | 2019-07-03 | 2019-10-25 | 福州数据技术研究院有限公司 | 一种基于uvm的大规模存储器读写验证平台及其方法 |
CN110457070A (zh) * | 2019-08-16 | 2019-11-15 | 北京中科寒武纪科技有限公司 | 验证方法及装置以及相关产品 |
CN110618929A (zh) * | 2019-08-01 | 2019-12-27 | 广东工业大学 | 一种基于uvm的对称加密算法的验证平台和验证方法 |
CN111064449A (zh) * | 2019-12-11 | 2020-04-24 | 电子科技大学 | 一种基于uvm平台的数字降采样滤波器的验证平台及方法 |
CN111221693A (zh) * | 2019-12-31 | 2020-06-02 | 深圳市芯天下技术有限公司 | 一种NOR flash配置模块验证方法、系统、装置和存储介质 |
CN111259619A (zh) * | 2020-01-17 | 2020-06-09 | 南京芯驰半导体科技有限公司 | 配置对象的控制方法、装置、存储介质及验证平台 |
CN111488723A (zh) * | 2020-04-01 | 2020-08-04 | 北京中电华大电子设计有限责任公司 | 一种基于脚本的soc芯片存储控制器自动化仿真验证方法 |
CN111611767A (zh) * | 2020-05-21 | 2020-09-01 | 北京百度网讯科技有限公司 | 验证方法和装置 |
CN111736654A (zh) * | 2020-06-24 | 2020-10-02 | 记忆科技(深圳)有限公司 | 时钟模型实现方法、装置、计算机设备及存储介质 |
WO2020221097A1 (zh) * | 2019-04-28 | 2020-11-05 | 北京控制工程研究所 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
CN111913840A (zh) * | 2020-04-30 | 2020-11-10 | 电子科技大学 | 一种基于uvm的apb-uart模块的验证方法 |
CN112100014A (zh) * | 2020-11-18 | 2020-12-18 | 北京智芯微电子科技有限公司 | 无源无线通信芯片验证平台、构建方法及芯片验证方法 |
CN112434478A (zh) * | 2021-01-26 | 2021-03-02 | 芯华章科技股份有限公司 | 仿真逻辑系统设计的虚拟接口的方法及相关设备 |
CN112486879A (zh) * | 2020-12-07 | 2021-03-12 | 博流智能科技(南京)有限公司 | Uvm虚接口传递方法及系统 |
CN112527705A (zh) * | 2020-11-05 | 2021-03-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种PCIe DMA数据通路的验证方法、装置及设备 |
CN112559264A (zh) * | 2020-12-08 | 2021-03-26 | 北京京航计算通讯研究所 | 基于uvm的验证平台实现fpga通用串口的仿真测试方法 |
CN113157573A (zh) * | 2021-04-19 | 2021-07-23 | 上海湃星信息科技有限公司 | 一种软件测试验证系统及其构建方法 |
CN113162826A (zh) * | 2021-04-21 | 2021-07-23 | 江铃汽车股份有限公司 | 一种整车网络测试方法及系统 |
CN113220518A (zh) * | 2021-05-19 | 2021-08-06 | 北京奕斯伟计算技术有限公司 | 芯片验证系统、芯片验证方法 |
CN113673190A (zh) * | 2021-09-07 | 2021-11-19 | 杭州云合智网技术有限公司 | 验证环境中配置对象的快速配置和传递方法、装置及设备 |
CN113779907A (zh) * | 2021-09-09 | 2021-12-10 | 中山大学 | 基于hls的四级流水线处理器设计及验证方法、系统及设备 |
CN113835757A (zh) * | 2021-09-29 | 2021-12-24 | 深圳大普微电子科技有限公司 | 多主机共享寄存器模型的方法、装置及电子设备 |
CN113836021A (zh) * | 2021-09-24 | 2021-12-24 | 昆仑芯(北京)科技有限公司 | 测试方法、装置、电子设备及介质 |
CN113836034A (zh) * | 2021-10-11 | 2021-12-24 | 杭州云合智网技术有限公司 | 使用uvm序列项的rtl设计的验证方法 |
CN114218880A (zh) * | 2022-02-23 | 2022-03-22 | 飞腾信息技术有限公司 | 通用验证方法学环境搭建方法、芯片验证方法及验证系统 |
CN114386365A (zh) * | 2021-12-29 | 2022-04-22 | 北京得瑞领新科技有限公司 | 基于验证平台的数据验证方法、系统及电子设备 |
CN114444423A (zh) * | 2022-04-02 | 2022-05-06 | 北京得瑞领新科技有限公司 | 基于验证平台的数据处理方法、系统及电子设备 |
CN114757135A (zh) * | 2022-03-29 | 2022-07-15 | 中国电子科技集团公司第十研究所 | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 |
CN115345099A (zh) * | 2022-08-31 | 2022-11-15 | 沐曦科技(北京)有限公司 | 自动生成芯片验证平台的方法、电子设备和介质 |
CN116011392A (zh) * | 2022-12-23 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 用于验证环境级联的装置、方法、设备、介质和程序产品 |
CN116029704A (zh) * | 2023-03-27 | 2023-04-28 | 浙江虎哥数字科技有限公司 | 可回收物品的回收方法、系统以及介质 |
CN117077589A (zh) * | 2023-10-17 | 2023-11-17 | 中电科申泰信息科技有限公司 | 基于uvm架构的虚拟和物理地址转换的验证方法和系统 |
CN117112396A (zh) * | 2023-07-11 | 2023-11-24 | 海光信息技术(苏州)有限公司 | 覆盖率收集方法、组件、系统及相关设备 |
CN117332742A (zh) * | 2023-12-01 | 2024-01-02 | 芯动微电子科技(武汉)有限公司 | 一种芯片设计阶段的仿真验证方法和装置 |
CN117389818A (zh) * | 2023-12-12 | 2024-01-12 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887465A (zh) * | 2010-07-30 | 2010-11-17 | 南开大学 | 一种关系数据库系统纯xml引擎的评测方法 |
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
CN104065536A (zh) * | 2014-07-02 | 2014-09-24 | 浪潮集团有限公司 | 基于uvm验证方法的以太网交换机fpga验证方法 |
CN104461812A (zh) * | 2014-12-18 | 2015-03-25 | 浪潮集团有限公司 | 一种利用已有Verilog BFM构造UVM验证组件的方法 |
CN104598683A (zh) * | 2015-01-15 | 2015-05-06 | 东北大学 | 一种自动生成层次化爆炸图的方法 |
CN104899369A (zh) * | 2015-06-01 | 2015-09-09 | 浪潮集团有限公司 | 一种利用perl脚本的仿真器多线程运行方法 |
CN106021044A (zh) * | 2016-05-10 | 2016-10-12 | 中国电子科技集团公司第三十八研究所 | 可重用spi总线协议模块验证环境平台及其验证方法 |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN106940428A (zh) * | 2016-01-04 | 2017-07-11 | 中兴通讯股份有限公司 | 芯片验证方法、装置及系统 |
CN107341101A (zh) * | 2017-06-01 | 2017-11-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 度量fpga软件静态质量的方法 |
CN107688468A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 推测执行处理器中分支指令与分支预测功能的验证方法 |
CN108196976A (zh) * | 2017-12-28 | 2018-06-22 | 湖南国科微电子股份有限公司 | 一种ldpc仿真验证平台、验证方法 |
CN114757135A (zh) * | 2022-03-29 | 2022-07-15 | 中国电子科技集团公司第十研究所 | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 |
-
2018
- 2018-12-06 CN CN201811483284.9A patent/CN109684681B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887465A (zh) * | 2010-07-30 | 2010-11-17 | 南开大学 | 一种关系数据库系统纯xml引擎的评测方法 |
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
CN104065536A (zh) * | 2014-07-02 | 2014-09-24 | 浪潮集团有限公司 | 基于uvm验证方法的以太网交换机fpga验证方法 |
CN104461812A (zh) * | 2014-12-18 | 2015-03-25 | 浪潮集团有限公司 | 一种利用已有Verilog BFM构造UVM验证组件的方法 |
CN104598683A (zh) * | 2015-01-15 | 2015-05-06 | 东北大学 | 一种自动生成层次化爆炸图的方法 |
CN104899369A (zh) * | 2015-06-01 | 2015-09-09 | 浪潮集团有限公司 | 一种利用perl脚本的仿真器多线程运行方法 |
CN106940428A (zh) * | 2016-01-04 | 2017-07-11 | 中兴通讯股份有限公司 | 芯片验证方法、装置及系统 |
CN106021044A (zh) * | 2016-05-10 | 2016-10-12 | 中国电子科技集团公司第三十八研究所 | 可重用spi总线协议模块验证环境平台及其验证方法 |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN107688468A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 推测执行处理器中分支指令与分支预测功能的验证方法 |
CN107341101A (zh) * | 2017-06-01 | 2017-11-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 度量fpga软件静态质量的方法 |
CN108196976A (zh) * | 2017-12-28 | 2018-06-22 | 湖南国科微电子股份有限公司 | 一种ldpc仿真验证平台、验证方法 |
CN114757135A (zh) * | 2022-03-29 | 2022-07-15 | 中国电子科技集团公司第十研究所 | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 |
Non-Patent Citations (5)
Title |
---|
MARK PERYER: "Seven Separate Sequence Styles Speed Stimulus Scenarios", 《DVCON 2013》 * |
李晨阳等: "一种基于UVM的高层次化验证平台设计", 《微电子学与计算机》 * |
王涛等: "基于UVM的FPGA通用接口测试平台设计", 《测试技术学报》 * |
谭振平: "基于MIPI协议的显示驱动接口设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
骆丽等: "采用UVM的数字抽取滤波器的验证", 《北京交通大学学报》 * |
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020221097A1 (zh) * | 2019-04-28 | 2020-11-05 | 北京控制工程研究所 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
CN110347542A (zh) * | 2019-05-31 | 2019-10-18 | 北京华捷艾米科技有限公司 | 一种提高验证环境重用性的端口连接方法、系统及介质 |
CN110263459A (zh) * | 2019-06-25 | 2019-09-20 | 合肥工业大学 | 一种基于测试序列分析的uvm验证加速方法 |
CN110377475A (zh) * | 2019-07-03 | 2019-10-25 | 福州数据技术研究院有限公司 | 一种基于uvm的大规模存储器读写验证平台及其方法 |
CN110377475B (zh) * | 2019-07-03 | 2022-05-17 | 福州数据技术研究院有限公司 | 一种基于uvm的大规模存储器读写验证平台及其方法 |
CN110618929A (zh) * | 2019-08-01 | 2019-12-27 | 广东工业大学 | 一种基于uvm的对称加密算法的验证平台和验证方法 |
CN110457070B (zh) * | 2019-08-16 | 2020-11-24 | 安徽寒武纪信息科技有限公司 | 验证方法及装置以及相关产品 |
CN110457070A (zh) * | 2019-08-16 | 2019-11-15 | 北京中科寒武纪科技有限公司 | 验证方法及装置以及相关产品 |
CN111064449A (zh) * | 2019-12-11 | 2020-04-24 | 电子科技大学 | 一种基于uvm平台的数字降采样滤波器的验证平台及方法 |
CN111221693A (zh) * | 2019-12-31 | 2020-06-02 | 深圳市芯天下技术有限公司 | 一种NOR flash配置模块验证方法、系统、装置和存储介质 |
CN111221693B (zh) * | 2019-12-31 | 2020-10-27 | 深圳市芯天下技术有限公司 | 一种NOR flash配置模块验证方法、系统、装置和存储介质 |
CN111259619A (zh) * | 2020-01-17 | 2020-06-09 | 南京芯驰半导体科技有限公司 | 配置对象的控制方法、装置、存储介质及验证平台 |
CN111259619B (zh) * | 2020-01-17 | 2023-06-02 | 南京芯驰半导体科技有限公司 | 配置对象的控制方法、装置、存储介质及验证平台 |
CN111488723A (zh) * | 2020-04-01 | 2020-08-04 | 北京中电华大电子设计有限责任公司 | 一种基于脚本的soc芯片存储控制器自动化仿真验证方法 |
CN111488723B (zh) * | 2020-04-01 | 2023-12-26 | 北京中电华大电子设计有限责任公司 | 一种基于脚本的soc芯片存储控制器自动化仿真验证方法 |
CN111913840A (zh) * | 2020-04-30 | 2020-11-10 | 电子科技大学 | 一种基于uvm的apb-uart模块的验证方法 |
CN111611767A (zh) * | 2020-05-21 | 2020-09-01 | 北京百度网讯科技有限公司 | 验证方法和装置 |
CN111611767B (zh) * | 2020-05-21 | 2023-04-25 | 北京百度网讯科技有限公司 | 验证方法和装置 |
CN111736654A (zh) * | 2020-06-24 | 2020-10-02 | 记忆科技(深圳)有限公司 | 时钟模型实现方法、装置、计算机设备及存储介质 |
CN112527705A (zh) * | 2020-11-05 | 2021-03-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种PCIe DMA数据通路的验证方法、装置及设备 |
CN112527705B (zh) * | 2020-11-05 | 2023-02-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种PCIe DMA数据通路的验证方法、装置及设备 |
CN112100014B (zh) * | 2020-11-18 | 2021-02-09 | 北京智芯微电子科技有限公司 | 无源无线通信芯片验证平台、构建方法及芯片验证方法 |
CN112100014A (zh) * | 2020-11-18 | 2020-12-18 | 北京智芯微电子科技有限公司 | 无源无线通信芯片验证平台、构建方法及芯片验证方法 |
CN112486879B (zh) * | 2020-12-07 | 2024-04-12 | 博流智能科技(南京)有限公司 | Uvm虚接口传递方法及系统 |
CN112486879A (zh) * | 2020-12-07 | 2021-03-12 | 博流智能科技(南京)有限公司 | Uvm虚接口传递方法及系统 |
CN112559264B (zh) * | 2020-12-08 | 2021-08-06 | 北京京航计算通讯研究所 | 基于uvm的验证平台实现fpga通用串口的仿真测试方法 |
CN112559264A (zh) * | 2020-12-08 | 2021-03-26 | 北京京航计算通讯研究所 | 基于uvm的验证平台实现fpga通用串口的仿真测试方法 |
CN112434478A (zh) * | 2021-01-26 | 2021-03-02 | 芯华章科技股份有限公司 | 仿真逻辑系统设计的虚拟接口的方法及相关设备 |
CN113157573A (zh) * | 2021-04-19 | 2021-07-23 | 上海湃星信息科技有限公司 | 一种软件测试验证系统及其构建方法 |
CN113162826A (zh) * | 2021-04-21 | 2021-07-23 | 江铃汽车股份有限公司 | 一种整车网络测试方法及系统 |
CN113220518A (zh) * | 2021-05-19 | 2021-08-06 | 北京奕斯伟计算技术有限公司 | 芯片验证系统、芯片验证方法 |
CN113673190A (zh) * | 2021-09-07 | 2021-11-19 | 杭州云合智网技术有限公司 | 验证环境中配置对象的快速配置和传递方法、装置及设备 |
CN113779907A (zh) * | 2021-09-09 | 2021-12-10 | 中山大学 | 基于hls的四级流水线处理器设计及验证方法、系统及设备 |
CN113836021A (zh) * | 2021-09-24 | 2021-12-24 | 昆仑芯(北京)科技有限公司 | 测试方法、装置、电子设备及介质 |
CN113835757B (zh) * | 2021-09-29 | 2023-08-15 | 深圳大普微电子科技有限公司 | 多主机共享寄存器模型的方法、装置及电子设备 |
CN113835757A (zh) * | 2021-09-29 | 2021-12-24 | 深圳大普微电子科技有限公司 | 多主机共享寄存器模型的方法、装置及电子设备 |
CN113836034A (zh) * | 2021-10-11 | 2021-12-24 | 杭州云合智网技术有限公司 | 使用uvm序列项的rtl设计的验证方法 |
CN113836034B (zh) * | 2021-10-11 | 2024-04-12 | 云合智网(上海)技术有限公司 | 使用uvm序列项的rtl设计的验证方法 |
CN114386365B (zh) * | 2021-12-29 | 2022-09-27 | 北京得瑞领新科技有限公司 | 基于验证平台的数据验证方法、系统及电子设备 |
CN114386365A (zh) * | 2021-12-29 | 2022-04-22 | 北京得瑞领新科技有限公司 | 基于验证平台的数据验证方法、系统及电子设备 |
CN114218880A (zh) * | 2022-02-23 | 2022-03-22 | 飞腾信息技术有限公司 | 通用验证方法学环境搭建方法、芯片验证方法及验证系统 |
CN114757135A (zh) * | 2022-03-29 | 2022-07-15 | 中国电子科技集团公司第十研究所 | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 |
CN114444423A (zh) * | 2022-04-02 | 2022-05-06 | 北京得瑞领新科技有限公司 | 基于验证平台的数据处理方法、系统及电子设备 |
CN115345099A (zh) * | 2022-08-31 | 2022-11-15 | 沐曦科技(北京)有限公司 | 自动生成芯片验证平台的方法、电子设备和介质 |
CN116011392A (zh) * | 2022-12-23 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 用于验证环境级联的装置、方法、设备、介质和程序产品 |
CN116029704A (zh) * | 2023-03-27 | 2023-04-28 | 浙江虎哥数字科技有限公司 | 可回收物品的回收方法、系统以及介质 |
CN117112396A (zh) * | 2023-07-11 | 2023-11-24 | 海光信息技术(苏州)有限公司 | 覆盖率收集方法、组件、系统及相关设备 |
CN117077589A (zh) * | 2023-10-17 | 2023-11-17 | 中电科申泰信息科技有限公司 | 基于uvm架构的虚拟和物理地址转换的验证方法和系统 |
CN117077589B (zh) * | 2023-10-17 | 2023-12-15 | 中电科申泰信息科技有限公司 | 基于uvm架构的虚拟和物理地址转换的验证方法和系统 |
CN117332742B (zh) * | 2023-12-01 | 2024-02-23 | 芯动微电子科技(武汉)有限公司 | 一种芯片设计阶段的仿真验证方法和装置 |
CN117332742A (zh) * | 2023-12-01 | 2024-01-02 | 芯动微电子科技(武汉)有限公司 | 一种芯片设计阶段的仿真验证方法和装置 |
CN117389818A (zh) * | 2023-12-12 | 2024-01-12 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
CN117389818B (zh) * | 2023-12-12 | 2024-03-29 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109684681B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684681A (zh) | 应用uvm验证平台的高层次化验证方法 | |
CN106503308B (zh) | 一种基于uvm的can控制器ip验证平台 | |
CN106940428B (zh) | 芯片验证方法、装置及系统 | |
CN107807878B (zh) | 基于关键字的通用测试资源驱动与执行管理方法 | |
CN102156784B (zh) | 验证环境图形化的芯片验证方法与装置 | |
CN107562635A (zh) | 嵌入式软件测试辅助系统 | |
US8402438B1 (en) | Method and system for generating verification information and tests for software | |
CN107562969B (zh) | 航空发动机控制系统软件的集成方法和装置 | |
CN104268310B (zh) | 使用专用图形界面调用uvm验证环境的方法 | |
CN110046387A (zh) | 一种基于uvm的sm2模块验证平台及验证方法 | |
CN108460199B (zh) | Cni建模系统 | |
US5923567A (en) | Method and device for test vector analysis | |
CN104750603A (zh) | 一种多核dsp软件仿真器及其物理层软件测试方法 | |
CN108121657A (zh) | 基于系统模型的可编程逻辑器件软件仿真验证系统 | |
CN106649101A (zh) | 一种ice自动化测试系统及测试方法 | |
CN110221975A (zh) | 创建接口用例自动化测试脚本的方法及装置 | |
CN115098400B (zh) | 一种基于sva形式化验证的fpga软件仿真测试环境建立方法 | |
CN114757135B (zh) | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 | |
CN105956302A (zh) | 一种可配置的抗辐射芯片前端网表自动生成方法 | |
CN106383303A (zh) | 基于观察点与并行的故障注入模拟方法及装置 | |
CN111782539A (zh) | 一种基于国产操作系统的测试诊断一体化开发平台 | |
US8265918B1 (en) | Simulation and emulation of a circuit design | |
CN106951575A (zh) | 一种基于cosim的多学科虚拟试验仿真方法 | |
CN106294121A (zh) | 飞机嵌入式实时诊断推理算法试验方法 | |
CN106295809A (zh) | 飞机嵌入式实时诊断推理算法试验系统 |
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 |