CN110046387A - 一种基于uvm的sm2模块验证平台及验证方法 - Google Patents
一种基于uvm的sm2模块验证平台及验证方法 Download PDFInfo
- Publication number
- CN110046387A CN110046387A CN201910192410.3A CN201910192410A CN110046387A CN 110046387 A CN110046387 A CN 110046387A CN 201910192410 A CN201910192410 A CN 201910192410A CN 110046387 A CN110046387 A CN 110046387A
- Authority
- CN
- China
- Prior art keywords
- module
- verification
- verification platform
- uvm
- interface
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 110
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012360 testing method Methods 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims description 29
- 230000005284 excitation Effects 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 5
- 230000008676 import Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000013517 stratification Methods 0.000 abstract description 2
- 238000010998 test method Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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]
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)
- Tests Of Electronic Circuits (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于UVM的SM2模块验证平台及验证方法,其中验证平台包括:事务类、驱动器、输入监视器、输出监视器、参考模型、接口、序列发生器、序列、验证环境、覆盖率收集器、测试用例、寄存器模型、顶层以及待测的SM2模块。本发明采用的基于UVM的SM2模块验证平台的验证效率更高、层次化结构更明显,可重用性和可移植性更强,便于移植到其他项目的验证平台中去;本发明运用UVM验证方法学搭建一个层次化、高效率、可重用的验证平台,通过产生不同的测试用例,采用完全随机化和最值的测试方法,可以遍历SM2模块所有的功能模式,另外通过覆盖率模型收集并监测覆盖率,从而大大提高验证的效率和验证的可信程度。
Description
技术领域
本发明涉及密码的功能验证技术领域,具体涉及一种基于UVM的SM2模块验证平台及验证方法。
背景技术
随着集成电路制造技术的发展、芯片集成度的不断提高,芯片的规模已经从10年前的万门级发展到如今的数百万门级,而芯片上所能够实现的功能复杂度甚至超越了摩尔定律所预言的集成度的发展速度。由于复杂性的增加,导致验证工作占据整个设计周期的大部分时间,比重甚至可以达到70%。
传统的验证方法是利用verilog语言搭建验证平台,结构上缺乏层次化设计,不同项目间的重用性差,因此不利于工程师维护和重用。传统验证方法的诸多缺陷已经不能满足当前的设计能力,高级验证方法学的出现正是为了弥补设计和验证之间的鸿沟。
高级验证方法学引入了一种新的语言——System Verilog(SV)。SV全面综合了RTL设计、测试平台、断言和覆盖率,同时SV能够和芯片验证方法学结合在一起。使用验证方法学可以大大增强模块复用性,提高芯片开发效率,缩短开发周期。
目前基于SystemVerilog的验证方法学主要有三种:VMM、OVM和UVM。其中UVM几乎完全继承了OVM,同时又采纳了Synopsys在VMM中的寄存器解决方案RAL。UVM继承了OVM和VMM的优点,克服了各自的缺点,代表了验证方法学的发展方向,已成为工业界主流的验证平台。
过去在验证SM2模块的过程中,主要通过verilog编写testbench的方法,生成各种不同的测试向量也比较麻烦,所以验证SM2模块的效率低且无法重用。
采用UVM高级验证方法学搭建的验证平台结构清晰,同时具有很好的移植性和可重用性,所以如何利用UVM的思想与架构来搭建SM2模块的验证平台成为了一个待解决的问题。
发明内容
本发明提供一种基于UVM的SM2模块验证平台及验证方法,克服现有技术存在的缺陷,这种基于UVM验证方法学的验证方法通过系统级硬件描述语言SystemVerilog为SM2模块搭建一个具有自动化、层次化结构、可重用性、可移植性、随机约束等属性的高效验证平台。
为了实现上述任务,本发明采用以下技术方案:
一种基于UVM的SM2模块验证平台,包括:事务类、驱动器、输入监视器、输出监视器、参考模型、接口、序列发生器、序列、验证环境、覆盖率收集器、测试用例、寄存器模型、顶层以及待测的SM2模块,其中:
所述事务类封装了SM2模块的全部输入数据和输出数据,包括SM2模块的6个输入变量和2个输出变量,其中6个输入变量均被设为随机变量,从而保证输入变量初始化的随机性;
所述驱动器通过序列发生器获得事务类,然后通过接口传送到SM2模块之中,以驱动SM2模块;
所述输入监视器通过接口获得事务类,然后通过FIFO或者端口port传给参考模型和覆盖率收集器;
所述输出监视器用于检测SM2模块的输出,等SM2模块计算结束后,通过接口把输出端的数据放入事务类中,然后把事务类通过FIFO传送给参考模型中进行比对,验证SM2模块是否正确输出数据;
所述参考模型用于模拟SM2模块的行为;
所述的接口用于实现验证平台与SM2模块数据之间的交互;在顶层中实例化SM2模块和接口后,通过参数调用的方式即可进行数据交互;
所述序列发生器是序列和驱动器之间通信的媒介,驱动器通过向序列发生器发送请求,序列发生器就驱动序列获得事务类,并且发给驱动器;
所述序列是激励产生的源头,只需在测试用例中将不同的序列设置为序列发生器的默认序列,就可以产生不同的激励;
所述验证环境,用于将验证平台中所有组件封装起来,当运行不同的测试用例时,只需在不同的测试用例实例化此验证环境,就可以实现对所有固定不变的组件的实例化,同时也负责验证平台中组件的实例化以及组件之间的连接;
所述覆盖率收集器接收来自输入监视器的事务类,通过功能覆盖组和采样函数来完成功能覆盖点的覆盖率的统计,收集数据或表达式所有出现过的值或改变的情况;
所述测试用例负责配置验证平台,通过指定不同的序列可以产生出不同的测试用例,不同的测试用例中可以实现针对每个功能实现具体的测试项,从而全面验证SM2模块,从而发现SM2模块中可能出现的问题;
所述寄存器模型,通过后门访问操作读取SM2模块中各类寄存器的值,通过读取SM2模块状态寄存器的值以判断SM2模块运算是否完成;
所述顶层位于整个验证平台的最顶层,通过调用和导入的方式把验证平台所需要的SM2模块代码文件和UVM组件代码文件添加到顶层中;用于产生时钟信号,声明并实例化接口、验证平台、SM2模块,连接验证平台和SM2模块、初始化,以及导入参考模型的代码。
一种基于UVM的SM2模块验证平台的验证方法,包括以下步骤:
步骤1,在顶层中添加和导入UVM组件代码文件和SM2模块代码文件;初始化验证平台和SM2模块,包括复位验证平台和SM2模块,实例化UVM的全部组件、接口和SM2模块,连接验证平台和SM2模块;启动验证平台;
步骤2,驱动器向序列发生器发送获取事务类的请求,序列发生器就动序列得到事务类,并且发给驱动器,然后直接通过调用接口传送到SM2模块之中,最后驱动SM2模块;
步骤3,SM2模块计算完成事务类数据后把计算得到的结果通过接口传回给输出监视器,从而转变为事务类进行保存,然后把事务类通过FIFO传送给参考模型;
步骤4,参考模型把从输入监视器获取的事务类通过模拟SM2模块功能的方式进行处理,得到预期的输出,然后把从输出监视器得到的数据与预期的输出进行对比,得出验证结果;
步骤5,根据SM2模块的功能特性列举所需要收集的覆盖点,指定每一个覆盖点所采样到的数据范围,把相同类型的覆盖点建立成一个功能覆盖组,根据SM2模块不同的运算模式可以建立成多个不同的功能覆盖组,然后把所有的功能覆盖组与验证平台连接起来进行数据采样,最后输出覆盖率报告;通过查看覆盖率报告修改测试用例,以验证SM2模块功能的完整性。
进一步地,步骤2中的事务类是指SM2模块中的6个输入变量,并且已经进行了随机化。
进一步地,所述步骤3中,验证平台的驱动器和参考模型在SM2模块计算完成前都需要进行无操作等待,通过寄存器模型的后门访问操作读取SM2模块的状态寄存器的值,直到读取到的状态寄存器的值为结束标志所对应的值时,SM2模块计算结束。
本发明具有以下技术特点:
1.与传统的采用verilog搭建的验证平台相比,本发明采用的基于UVM的SM2模块验证平台的验证效率更高、层次化结构更明显,可重用性和可移植性更强,便于移植到其他项目的验证平台中去。
2.本发明的验证方法,运用UVM验证方法学搭建一个层次化、高效率、可重用的验证平台,通过产生不同的测试用例,采用完全随机化和最值的测试方法,可以遍历SM2模块所有的功能模式,另外通过覆盖率模型收集并监测覆盖率,从而大大提高验证的效率和验证的可信程度。
附图说明
图1为本发明的验证平台的结构图;
图2为本发明的验证方法的流程图。
具体实施方式
本发明提供了一种基于UVM的SM2模块验证平台,如图1所示,该平台由多个UVM组件以及待测模块(DUT)构成,所述的UVM组件包括事务类(transaction)、驱动器(driver)、输入监视器(in_monitor)、输出监视器(out_monitor)、参考模型(reference model)、接口(interface)、序列发生器(sequencer)、序列(sequence)、验证环境(env)、覆盖率收集器(coverage)、测试用例(testcase)、寄存器模型(register model)、顶层(top_SM2),UVM组件之间通过端口port和FIFO相连或者通信,各模块的具体功能如下:
所述待测模块(DUT),为挂载在AHB总线上的SM2模块,其中包含了控制寄存器地址、状态寄存器地址、输入输出地址等信息。
所述事务类(transaction)是由uvm_sequence_item类派生而来的,事务类(transaction)是指封装了一定信息的一个类,本验证平台中的事务类(transaction)就是封装了SM2模块的全部输入数据和输出数据,包括SM2模块的6个输入变量和2个输出变量,其中6个输入变量均被设为随机变量,在它们前面加上了关键字rand,从而保证输入变量初始化的随机性。
所述驱动器(driver)是派生自uvm_driver类,驱动器(driver)通过序列发生器(sequencer)获得事务类(transaction),然后通过接口(interface)传送到SM2模块之中,驱动SM2模块。
所述输入监视器(in_monitor)是派生自uvm_monitor类,输入监视器的功能是通过接口(interface)获得事务类(transaction),然后通过FIFO或者端口port传给参考模型(reference model)和覆盖率收集器(coverage)。
所述输出监视器(out_monitor)是派生自uvm_monitor类,用于检测SM2模块的输出,等SM2模块计算结束后,通过接口(interface)把输出端的有效数据放入事务类中,然后把事务类(transaction)通过FIFO传送给参考模型(reference model)中进行比对,验证SM2模块是否正确输出数据。
所述参考模型(reference model)是UVM验证平台中非常重要的一部分,它是模拟SM2模块(DUT)行为的模型,通常采用高级编程语言(C、C++或者MATLAB等),可以快速模拟SM2模块的功能。在本验证平台中是采用C++编写函数,通过DPI接口,SystemVerilog可以很方便的连接C++代码。在该平台中主要实现的函数有sm2_model(),KECCPoint(),sm2_addby(),sm2_subby(),sm2_mult(),sm2_div()以及sm2_revisediv()。
所述接口(interface)是验证平台与SM2模块数据交互的桥梁;因为SM2模块(DUT)的代码是用Verilog语言编写,属于静态实例;UVM验证平台是在SystemVerilog语言基础上的抽象对象,属于动态实例,两种事物无法直接相连,所以验证平台引入接口(interface);在顶层(top_SM2)中实例化DUT和接口(interface)后,就可以直接通过参数调用的方式即可进行数据交互。
所述序列发生器(sequencer)派生自uvm_sequencer类,是序列(sequence)和驱动器(driver)之间通信的媒介,驱动器(driver)通过向序列发生器(sequencer)发送请求,序列发生器(sequencer)就驱动序列(sequence)获得事务类(transaction),并且发给驱动器(driver)。
所述序列(sequence)是由uvm_sequence类派生出来的,序列(sequence)是激励产生的源头,只需在测试用例(testcase)中将不同的序列(sequence)设置为序列发生器(sequencer)的默认序列(default sequence),就可以产生不同的激励。本方案中设置的激励有随机激励、部分最小值激励、部分最大值激励和全部最小值、全部最大值激励等,使测试具有完备性。
所述验证环境(env)是由uvm_env类派生出来的,用于把UVM验证平台中所有固定不变的组件封装起来,类似一个容器;当运行不同的测试用例(testcase)时,只需在不同的测试用例(testcase)实例化此验证环境(env),就可以实现对所有所有固定不变的组件的实例化,同时也负责验证平台中组件的实例化以及组件之间的连接。本方案的验证平台中验证环境(env)实例化的组件有驱动器(driver)、输入监视器(in_monitor)、输出监视器(out_monitor)、参考模型(reference model)、接口(interface)、序列发生器(sequencer)、寄存器模型(register model)和覆盖率收集器(coverage)。
所述覆盖率收集器(coverage)是由uvm_subscriber类派生出来的,通过功能覆盖组coveragegroup和采样函数sample()来完成功能覆盖点的覆盖率的统计,收集数据或表达式所有出现过的值或改变的情况。本方案中覆盖率收集器(coverage)接收来自输入监视器(in_monitor)的事务类(transaction),在覆盖率收集器(coverage)中对所有的输入变量建立功能覆盖组(covergroup),覆盖组(covergroup)里面包含着很多仓(bin)和覆盖点(coverpoint),然后使用sample函数进行数据采样,最后输出功能覆盖率报告。
所述测试用例(testcase)是派生自uvm_test类,主要负责配置验证平台,通过指定不同的序列(sequence)可以产生出不同的测试用例,不同的测试用例(testcase)中可以实现针对每个功能实现具体的测试项,从而全面验证SM2模块,从而发现SM2模块中可能出现的问题;
所述寄存器模型(register model)是派生自uvm_reg类,首先在测试用例(testcase)中设置好该寄存器模型的根路径,再利用寄存器模型(register model)通过后门访问操作可以读取SM2模块中各类寄存器的值,通过读取SM2模块状态寄存器的值可以判断SM2模块运算是否完成。
所述顶层(top_SM2)位于整个验证平台的最顶层,通过调用和导入的方式把验证平台所需要的SM2模块代码文件(.v)和UVM组件代码文件(.sv)添加到顶层中;其主要用来产生时钟信号,声明并实例化接口、验证平台、SM2模块,连接验证平台和SM2模块以及初始化等工作,并且通过DPI接口导入参考模型的代码(C++的函数)。
在上述技术方案的基础上,本发明进一步提供一种基于上述验证平台的验证方法,步骤如下:
步骤1,在顶层(top_SM2)中添加和导入所用到的UVM组件代码文件(.sv)和SM2模块代码文件(.v);接着初始化验证平台和SM2模块,包括复位验证平台和SM2模块,实例化UVM的全部组件、接口和SM2模块,连接验证平台和SM2模块;最后通过run_test语句启动整个UVM验证平台。
步骤2,驱动器(driver)向序列发生器(sequencer)发送获取事务类(transaction)的请求,序列发生器(sequencer)就驱动序列(sequence)得到事务类(transaction),并且发给驱动器(driver),然后直接通过调用接口(interface)传送到SM2模块之中,最后驱动SM2模块。
步骤3,SM2模块计算完成事务类数据后把计算得到的结果通过接口(interface)传回给输出监视器(out_monitor),从而转变为事务类(transaction)进行保存,然后把事务类(transaction)通过FIFO传送给参考模型(reference model)。
步骤4,参考模型(reference model)把从输入监视器(in_monitor)获取的事务类(transaction)通过(C++的模型函数)模拟SM2模块功能的方式进行处理,得到预期的输出,然后把从输出监视器(out_monitor)得到的数据(这里的数据是通过第3步的操作得到的SM2模块计算后的结果)与预期的输出进行对比,得出验证结果。
步骤5,根据SM2模块的功能特性列举所需要收集的覆盖点(coverpoint),指定每一个覆盖点所采样到的数据范围,把相同类型的覆盖点(coverpoint)建立成一个功能覆盖组(covergroup),根据SM2模块不同的运算模式可以建立成多个不同的功能覆盖组(covergroup),然后把所有的功能覆盖组(covergroup)与验证平台连接起来进行数据采样,最后输出覆盖率报告;通过查看覆盖率报告可以及时修改测试用例,以验证SM2模块功能的完整性。
在本实施例中,步骤2中的事务类(transaction)是指SM2模块中的6个输入变量,并且已经进行了随机化,分别是:rand bit[255:0]x1;rand bit[255:0]x2;rand bit[255:0]y1;rand bit[255:0]y2;rand bit[255:0]k;rand bit[31:0]mode。
所述步骤3中,验证平台的驱动器(driver)和参考模型(reference model)在SM2模块计算完成前都需要进行无操作等待,通过寄存器模型的后门访问操作读取SM2模块的状态寄存器的值(挂载在AHB总线上的SM2模块的状态寄存器的地址已经定义好),直到读取到的状态寄存器的值为结束标志所对应的值时,SM2模块计算结束。
所述步骤4中,C++的模型函数是在顶层(top_SM2)通过DPI接口导入到验证平台,然后在参考模型中调用:import"DPI-C"context function void sm2_model(input bit[31:0]c_mode,input bit[255:0]c_x1,input bit[255:0]c_x2,input bit[255:0]c_y1,input bit[255:0]c_y2,input bit[255:0]c_k,output bit[255:0]c_x3,output bit[255:0]c_y3);该C++函数能够计算SM2模块全部运算模式的结果。其中:
import"DPI-C"context function void sm2_model指的是通过DPI接口在验证平台中导入C++的sm2_model()函数;input bit[31:0]指的是位宽为32位的输入变量,inputbit[255:0]指的是位宽为256位的输入变量,output bit[255:0]指的是位宽为256位的输出变量;c_x1,c_x2,c_y1,c_y2,c_k,c_mode,c_x3,c_y3分别对应于SM2模块6个输入变量以及2个输出变量:x1、x2、y1、y2、k、mode、x3、y3。该C++函数与SM2模块实现的功能完全一样,只是实现方式不一样,因此两者的输入输出变量要保持一致。
其中x1、x2、y1、y2、k、mode分别表示SM2模块中点运算和模运算的输入变量、点运算和模运算的输入变量、点运算的输入变量、点运算的输入变量、点运算的输入变量以及运算类型的输入变量;x3、y3分别表示SM2模块中点运算的输出变量、点运算和模运算的输出变量。点运算和模运算指的是SM2模块中所具有的运算模式,包括点加、点乘和模加、模减、模乘与模逆运算。
Claims (4)
1.一种基于UVM的SM2模块验证平台,其特征在于,包括:事务类、驱动器、输入监视器、输出监视器、参考模型、接口、序列发生器、序列、验证环境、覆盖率收集器、测试用例、寄存器模型、顶层以及待测的SM2模块,其中:
所述事务类封装了SM2模块的全部输入数据和输出数据,包括SM2模块的6个输入变量和2个输出变量,其中6个输入变量均被设为随机变量,从而保证输入变量初始化的随机性;
所述驱动器通过序列发生器获得事务类,然后通过接口传送到SM2模块之中,以驱动SM2模块;
所述输入监视器通过接口获得事务类,然后通过FIFO或者端口port传给参考模型和覆盖率收集器;
所述输出监视器用于检测SM2模块的输出,等SM2模块计算结束后,通过接口把输出端的数据放入事务类中,然后把事务类通过FIFO传送给参考模型中进行比对,验证SM2模块是否正确输出数据;
所述参考模型用于模拟SM2模块的行为;
所述的接口用于实现验证平台与SM2模块数据之间的交互;在顶层中实例化SM2模块和接口后,通过参数调用的方式即可进行数据交互;
所述序列发生器是序列和驱动器之间通信的媒介,驱动器通过向序列发生器发送请求,序列发生器就驱动序列获得事务类,并且发给驱动器;
所述序列是激励产生的源头,只需在测试用例中将不同的序列设置为序列发生器的默认序列,就可以产生不同的激励;
所述验证环境,用于将验证平台中所有组件封装起来,当运行不同的测试用例时,只需在不同的测试用例实例化此验证环境,就可以实现对所有固定不变的组件的实例化,同时也负责验证平台中组件的实例化以及组件之间的连接;
所述覆盖率收集器接收来自输入监视器的事务类,通过功能覆盖组和采样函数来完成功能覆盖点的覆盖率的统计,收集数据或表达式所有出现过的值或改变的情况;
所述测试用例负责配置验证平台,通过指定不同的序列可以产生出不同的测试用例,不同的测试用例中可以实现针对每个功能实现具体的测试项,从而全面验证SM2模块,从而发现SM2模块中可能出现的问题;
所述寄存器模型,通过后门访问操作读取SM2模块中各类寄存器的值,通过读取SM2模块状态寄存器的值以判断SM2模块运算是否完成;
所述顶层位于整个验证平台的最顶层,通过调用和导入的方式把验证平台所需要的SM2模块代码文件和UVM组件代码文件添加到顶层中;用于产生时钟信号,声明并实例化接口、验证平台、SM2模块,连接验证平台和SM2模块、初始化,以及导入参考模型的代码。
2.一种基于UVM的SM2模块验证平台的验证方法,其特征在于,包括以下步骤:
步骤1,在顶层中添加和导入UVM组件代码文件和SM2模块代码文件;初始化验证平台和SM2模块,包括复位验证平台和SM2模块,实例化UVM的全部组件、接口和SM2模块,连接验证平台和SM2模块;启动验证平台;
步骤2,驱动器向序列发生器发送获取事务类的请求,序列发生器就动序列得到事务类,并且发给驱动器,然后直接通过调用接口传送到SM2模块之中,最后驱动SM2模块;
步骤3,SM2模块计算完成事务类数据后把计算得到的结果通过接口传回给输出监视器,从而转变为事务类进行保存,然后把事务类通过FIFO传送给参考模型;
步骤4,参考模型把从输入监视器获取的事务类通过模拟SM2模块功能的方式进行处理,得到预期的输出,然后把从输出监视器得到的数据与预期的输出进行对比,得出验证结果;
步骤5,根据SM2模块的功能特性列举所需要收集的覆盖点,指定每一个覆盖点所采样到的数据范围,把相同类型的覆盖点建立成一个功能覆盖组,根据SM2模块不同的运算模式可以建立成多个不同的功能覆盖组,然后把所有的功能覆盖组与验证平台连接起来进行数据采样,最后输出覆盖率报告;通过查看覆盖率报告修改测试用例,以验证SM2模块功能的完整性。
3.如权利要求2所述的基于UVM的SM2模块验证平台的验证方法,其特征在于,步骤2中的事务类是指SM2模块中的6个输入变量,并且已经进行了随机化。
4.如权利要求2所述的基于UVM的SM2模块验证平台的验证方法,其特征在于,所述步骤3中,验证平台的驱动器和参考模型在SM2模块计算完成前都需要进行无操作等待,通过寄存器模型的后门访问操作读取SM2模块的状态寄存器的值,直到读取到的状态寄存器的值为结束标志所对应的值时,SM2模块计算结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910192410.3A CN110046387B (zh) | 2019-03-14 | 2019-03-14 | 一种基于uvm的sm2模块验证平台及验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910192410.3A CN110046387B (zh) | 2019-03-14 | 2019-03-14 | 一种基于uvm的sm2模块验证平台及验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046387A true CN110046387A (zh) | 2019-07-23 |
CN110046387B CN110046387B (zh) | 2022-04-08 |
Family
ID=67274679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910192410.3A Expired - Fee Related CN110046387B (zh) | 2019-03-14 | 2019-03-14 | 一种基于uvm的sm2模块验证平台及验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046387B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110618929A (zh) * | 2019-08-01 | 2019-12-27 | 广东工业大学 | 一种基于uvm的对称加密算法的验证平台和验证方法 |
CN110688821A (zh) * | 2019-09-27 | 2020-01-14 | 北京中电华大电子设计有限责任公司 | 一种复杂算法的测试激励生成器及其控制方法 |
CN111064449A (zh) * | 2019-12-11 | 2020-04-24 | 电子科技大学 | 一种基于uvm平台的数字降采样滤波器的验证平台及方法 |
CN111611767A (zh) * | 2020-05-21 | 2020-09-01 | 北京百度网讯科技有限公司 | 验证方法和装置 |
CN111736654A (zh) * | 2020-06-24 | 2020-10-02 | 记忆科技(深圳)有限公司 | 时钟模型实现方法、装置、计算机设备及存储介质 |
CN111913840A (zh) * | 2020-04-30 | 2020-11-10 | 电子科技大学 | 一种基于uvm的apb-uart模块的验证方法 |
CN112527587A (zh) * | 2020-12-03 | 2021-03-19 | 深圳大普微电子科技有限公司 | 一种验证进度确定方法、装置、设备及可读存储介质 |
CN112596966A (zh) * | 2020-12-17 | 2021-04-02 | 海光信息技术股份有限公司 | 芯片验证方法、装置、设备、存储介质 |
CN112711533A (zh) * | 2020-12-30 | 2021-04-27 | 北京华捷艾米科技有限公司 | 基于图像处理的验证系统及方法 |
CN112926285A (zh) * | 2021-02-23 | 2021-06-08 | 北京集创北方科技股份有限公司 | 芯片验证方法、平台、装置、设备和存储介质 |
CN113297073A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片中算法模块的验证方法、装置、设备及可读存储介质 |
CN114384403A (zh) * | 2022-03-22 | 2022-04-22 | 浙江大学 | 一种芯片验证ip装置及其测试方法 |
CN114706768A (zh) * | 2022-03-28 | 2022-07-05 | 四川和芯微电子股份有限公司 | I3c总线验证方法及验证系统 |
CN114721986A (zh) * | 2022-06-09 | 2022-07-08 | 井芯微电子技术(天津)有限公司 | 基于通用验证方法的异构直接存储器访问验证方法及系统 |
CN114781325A (zh) * | 2022-04-28 | 2022-07-22 | 牛芯半导体(深圳)有限公司 | 基于uvm的对phy进行验证的验证平台及验证方法 |
CN115150343A (zh) * | 2022-09-05 | 2022-10-04 | 井芯微电子技术(天津)有限公司 | 基于uvm的交换芯片验证平台装置及方法 |
WO2023024251A1 (zh) * | 2021-08-26 | 2023-03-02 | 苏州浪潮智能科技有限公司 | 模块验证方法、uvm验证平台、电子设备及存储介质 |
CN116208507A (zh) * | 2023-03-03 | 2023-06-02 | 西北大学 | 一种基于uvm的1394链路层4节点仿真验证平台 |
CN116306388A (zh) * | 2023-05-23 | 2023-06-23 | 苇创微电子(上海)有限公司 | 一种免除路径连接的自动化uvm验证平台及其搭建方法 |
CN118332980A (zh) * | 2024-06-13 | 2024-07-12 | 山东工商学院 | 面向多功能ip核的三级覆盖点式功能覆盖率收集方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291240A (zh) * | 2011-09-01 | 2011-12-21 | 清华大学 | Sm2签名的认证方法及系统 |
CN104461812A (zh) * | 2014-12-18 | 2015-03-25 | 浪潮集团有限公司 | 一种利用已有Verilog BFM构造UVM验证组件的方法 |
WO2016197768A1 (zh) * | 2016-01-04 | 2016-12-15 | 中兴通讯股份有限公司 | 芯片验证方法、装置及系统 |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
-
2019
- 2019-03-14 CN CN201910192410.3A patent/CN110046387B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291240A (zh) * | 2011-09-01 | 2011-12-21 | 清华大学 | Sm2签名的认证方法及系统 |
CN104461812A (zh) * | 2014-12-18 | 2015-03-25 | 浪潮集团有限公司 | 一种利用已有Verilog BFM构造UVM验证组件的方法 |
WO2016197768A1 (zh) * | 2016-01-04 | 2016-12-15 | 中兴通讯股份有限公司 | 芯片验证方法、装置及系统 |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
Non-Patent Citations (6)
Title |
---|
IEEE: "《IEEE P1800.2/D7》", 17 November 2016 * |
QIUYUN X ET AL.: "The Verification of SHA-256 IP using a semi-automatic UVM platform", 《IEEE》 * |
国家密码管理局: "《SM2椭圆曲线公钥密码算法》", 21 March 2012 * |
年旭升: "基于UVM的高性能总线架构的分析验证", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
李璐 等: "基于DPI-C接口的可扩展SOC验证平台", 《电子设计工程》 * |
王保仓 等: "密码学现状、应用及发展趋势", 《无线电通信技术》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110618929A (zh) * | 2019-08-01 | 2019-12-27 | 广东工业大学 | 一种基于uvm的对称加密算法的验证平台和验证方法 |
CN110688821A (zh) * | 2019-09-27 | 2020-01-14 | 北京中电华大电子设计有限责任公司 | 一种复杂算法的测试激励生成器及其控制方法 |
CN110688821B (zh) * | 2019-09-27 | 2023-10-13 | 北京中电华大电子设计有限责任公司 | 一种复杂算法的测试激励生成器及其控制方法 |
CN111064449A (zh) * | 2019-12-11 | 2020-04-24 | 电子科技大学 | 一种基于uvm平台的数字降采样滤波器的验证平台及方法 |
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 | 记忆科技(深圳)有限公司 | 时钟模型实现方法、装置、计算机设备及存储介质 |
CN112527587B (zh) * | 2020-12-03 | 2023-04-18 | 深圳大普微电子科技有限公司 | 一种验证进度确定方法、装置、设备及可读存储介质 |
CN112527587A (zh) * | 2020-12-03 | 2021-03-19 | 深圳大普微电子科技有限公司 | 一种验证进度确定方法、装置、设备及可读存储介质 |
CN112596966A (zh) * | 2020-12-17 | 2021-04-02 | 海光信息技术股份有限公司 | 芯片验证方法、装置、设备、存储介质 |
CN112596966B (zh) * | 2020-12-17 | 2022-11-01 | 海光信息技术股份有限公司 | 芯片验证方法、装置、设备、存储介质 |
CN112711533A (zh) * | 2020-12-30 | 2021-04-27 | 北京华捷艾米科技有限公司 | 基于图像处理的验证系统及方法 |
CN112926285A (zh) * | 2021-02-23 | 2021-06-08 | 北京集创北方科技股份有限公司 | 芯片验证方法、平台、装置、设备和存储介质 |
CN113297073A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片中算法模块的验证方法、装置、设备及可读存储介质 |
US11893331B2 (en) | 2021-08-26 | 2024-02-06 | Inspur Suzhou Intelligent Technology Co., Ltd. | Device verification method, UVM verification platform, electronic apparatus and storage medium |
WO2023024251A1 (zh) * | 2021-08-26 | 2023-03-02 | 苏州浪潮智能科技有限公司 | 模块验证方法、uvm验证平台、电子设备及存储介质 |
CN114384403A (zh) * | 2022-03-22 | 2022-04-22 | 浙江大学 | 一种芯片验证ip装置及其测试方法 |
CN114706768A (zh) * | 2022-03-28 | 2022-07-05 | 四川和芯微电子股份有限公司 | I3c总线验证方法及验证系统 |
CN114781325B (zh) * | 2022-04-28 | 2024-08-06 | 牛芯半导体(深圳)有限公司 | 基于uvm的对phy进行验证的验证平台及验证方法 |
CN114781325A (zh) * | 2022-04-28 | 2022-07-22 | 牛芯半导体(深圳)有限公司 | 基于uvm的对phy进行验证的验证平台及验证方法 |
CN114721986B (zh) * | 2022-06-09 | 2022-09-06 | 井芯微电子技术(天津)有限公司 | 基于通用验证方法的异构直接存储器访问验证方法及系统 |
CN114721986A (zh) * | 2022-06-09 | 2022-07-08 | 井芯微电子技术(天津)有限公司 | 基于通用验证方法的异构直接存储器访问验证方法及系统 |
CN115150343B (zh) * | 2022-09-05 | 2023-01-03 | 井芯微电子技术(天津)有限公司 | 基于uvm的交换芯片验证平台装置及方法 |
CN115150343A (zh) * | 2022-09-05 | 2022-10-04 | 井芯微电子技术(天津)有限公司 | 基于uvm的交换芯片验证平台装置及方法 |
CN116208507A (zh) * | 2023-03-03 | 2023-06-02 | 西北大学 | 一种基于uvm的1394链路层4节点仿真验证平台 |
CN116306388A (zh) * | 2023-05-23 | 2023-06-23 | 苇创微电子(上海)有限公司 | 一种免除路径连接的自动化uvm验证平台及其搭建方法 |
CN118332980A (zh) * | 2024-06-13 | 2024-07-12 | 山东工商学院 | 面向多功能ip核的三级覆盖点式功能覆盖率收集方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110046387B (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046387A (zh) | 一种基于uvm的sm2模块验证平台及验证方法 | |
CN110618929B (zh) | 一种基于uvm的对称加密算法的验证平台和验证方法 | |
Chen et al. | Challenges and trends in modern SoC design verification | |
US6571373B1 (en) | Simulator-independent system-on-chip verification methodology | |
CN102542110B (zh) | 一种应用于移动存储soc芯片的仿真验证方法 | |
US8214195B2 (en) | Testing in a hardware emulation environment | |
CN104035023B (zh) | Mcu的测试方法和系统 | |
Gai et al. | MOZART: a concurrent multilevel simulator | |
Civera et al. | Exploiting FPGA for accelerating fault injection experiments | |
Chappell et al. | LAMP: Logic‐Circuit Simulators | |
US20020163351A1 (en) | Method for producing test patterns for testing an integrated circuit | |
CN114757135B (zh) | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 | |
Arshak et al. | Testing FPGA based digital system using XILINX ChipScope logic analyzer | |
CN110457743A (zh) | 一种基于fpga的芯片检测方法 | |
CN111460759A (zh) | 一种基于Python语言的EDA验证平台及其使用方法 | |
Feng et al. | Design and application of reusable SoC verification platform | |
Reorda et al. | Fault injection-based reliability evaluation of SoPCs | |
Yang et al. | Current status and challenges of soc verification for embedded systems market | |
CN104811259B (zh) | 一种卫星通信频偏验证方法 | |
CN207302033U (zh) | 带有随机uid的处理器芯片仿真器 | |
CN107577608A (zh) | 带有随机uid的处理器芯片仿真器 | |
SAHU et al. | BOOSTING CHIP VERIFICATION EFFICIENCY: UVM-BASED ADDER VERIFICATION WITH QUESTASIM. | |
Sinervä | UVM testbench in Python: feature and performance comparison with SystemVerilog implementation | |
Ravi et al. | A framework for testing core-based systems-on-a-chip | |
Rao | Modularity, Scalability, Reusability, Configurability, and Interoperability of ASIC/FPGA Verification IP |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220408 |