CN101499105A - 微处理器功能验证测试用例的功能树结构及自动生成方法 - Google Patents

微处理器功能验证测试用例的功能树结构及自动生成方法 Download PDF

Info

Publication number
CN101499105A
CN101499105A CNA2009100794151A CN200910079415A CN101499105A CN 101499105 A CN101499105 A CN 101499105A CN A2009100794151 A CNA2009100794151 A CN A2009100794151A CN 200910079415 A CN200910079415 A CN 200910079415A CN 101499105 A CN101499105 A CN 101499105A
Authority
CN
China
Prior art keywords
class
scene
name
instruction
microprocessor
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
Application number
CNA2009100794151A
Other languages
English (en)
Other versions
CN101499105B (zh
Inventor
吴英攀
于立新
彭和平
兰利东
周海洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Aerospace Modern Electronic Co 772nd Institute
Mxtronics Corp
Original Assignee
China Aerospace Modern Electronic Co 772nd Institute
Mxtronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Aerospace Modern Electronic Co 772nd Institute, Mxtronics Corp filed Critical China Aerospace Modern Electronic Co 772nd Institute
Priority to CN2009100794151A priority Critical patent/CN101499105B/zh
Publication of CN101499105A publication Critical patent/CN101499105A/zh
Application granted granted Critical
Publication of CN101499105B publication Critical patent/CN101499105B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种微处理器功能验证测试用例的功能树结构及自动生成方法,本发明采用功能树结构的方法描述测试用例,该功能树结构结构层次比较清晰,各种指令和参数之间的关系也比较清楚,易于采用编程语言进行描述;本发明利用Perl语言自动把功能树结构映射为SystemVerilog语言描述的测试用例,只需根据功能树结构输入相应的指令便可以自动产生测试用例,从而减少了将功能树结构转化为测试用例所花的时间,提高了验证效率,确保产品能够在较短的时间里不带功能缺陷上市;另外,由于本方法可以在现有功能树结构的基础上根据不同产品增加或减少指令或参数,能够适用不同产品的测试用例的自动生成,从而提高了测试用例的可重用性。

Description

微处理器功能验证测试用例的功能树结构及自动生成方法
技术领域
本发明涉及一种微处理器功能验证测试用例的功能树结构及自动生成方法,尤其涉及一种流水线微处理器功能验证测试用例的功能树结构及自动生成方法。
背景技术
随着CAD(computer-aided design计算机辅助设计)工具和微电子制造工艺的发展,以及微处理器的指令集越来越复杂,设计规模越来越大,预测指令流的结果变得越来越不现实,在上市时间的压力下,人工生成的指令序列很难完全覆盖各种可能情况,由于验证效率低、上市时间晚,或者由于验证覆盖率低导致的功能缺陷,带来的损失都是巨大的,所以传统的定向验证平台、方法和流程已经不适合现代超大规模集成电路的验证要求。基于约束的伪随机模拟验证是一种高效的功能验证方法,该方法根据测试用例描述的约束,生成随机激励向量,可以大大提高功能验证效率。但是如果直接把验证计划中描述的功能描述为测试用例约束将会遇到遗漏功能点的困难。因为验证计划中描述的功能比较抽象、层次不清晰和不易于实现,因此如何通过测试用例描述出完备的向量集合,是目前验证的关键问题,只有得到足够高覆盖率的功能验证向量集合,才可能保证被验证设计没有功能缺陷和降低流片的风险。
为了能够较快把产品推上市场,除了得到足够高覆盖率的功能验证向量集合之外,还需要提高验证效率,缩短设计周期。目前为了满足现代超大规模集成电路的功能验证需求,缩短产品开发时间,一些专门针对功能验证的验证语言先后被推出。其中比较具有代表性的验证语言是Open Vera、e语言和SystemVerilog语言,这些语言具有面向对象语言的特点,具有可继承性和可重用性,采用这些语言编写的程序效率很高,可以用较少的代码行数实现比较复杂的功能,从而较少了构建验证平台的时间,提高了验证的效率,在这些语言中,SystemVerilog语言用于复杂的芯片设计的功能验证是目前业界的趋势,已渐渐地成为主流验证语言。但是如果直接采用SystemVeriiog语言为特定的微处理器功能来描述测试用例的可重用性比较差。要对其它微处理器相同的功能进行验证,还需要对原来的测试用例描述做比较大的改动,导致效率比较低,延长了新产品的开发周期。因此,需要一种方法来提高测试用例的可重用性,从而提高新产品的功能验证效率。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种微处理器功能验证测试用例的功能树结构及自动生成方法,该功能树结构具体、层次清晰,采用该功能树结构的自动生成方法具有较高的验证效率和可重用性。
本发明的技术解决方案是:一种微处理器功能验证测试用例的功能树结构,包括用来表示特定功能验证名称的树根、由树根生出的两个树枝节点、每个树枝节点生出的子树枝节点和每个子树枝节点生出的树叶节点;两个树枝节点分别为场景选择树枝节点和场景实现树枝节点,场景选择树枝节点生出场景选择指令类子树枝节点,场景实现树枝节点生出场景实现指令类子树枝节点和场景实现参数类子树枝节点,场景选择指令类子树枝节点生出操作口令树叶节点,场景实现指令类子树枝节点生出微处理器具体指令树叶节点,场景实现参数类子树枝节点生出控制参数树叶节点。
一种微处理器功能验证测试用例的自动生成方法,包括以下步骤:
(a)利用Perl语言对权利要求1构建的功能树结构进行描述,在树根中输入测试用例的名字,在场景选择树枝节点下的场景选择指令类子树枝节点中输入选择指令类的名字,在场景实现树枝节点下的场景实现指令类子树枝节点中输入实现指令类的名字,在场景实现树枝节点下的场景实现参数类子树枝节点输入实现参数类的名字,在操作口令树叶节点输入具体的操作口令名,在微处理器具体指令树叶节点输入微处理器指令序列中的指令名,在控制参数树叶节点输入具体控制的参数名;
(b)为步骤(a)中的场景选择指令类子树枝节点、场景实现指令类子树枝节点、场景实现参数类子树枝节点、在操作口令树叶节点、微处理器具体指令树叶节点、控制参数树叶节点分配重量;
(c)运行步骤(a)中的Perl语言,把测试用例的名字映射为场景的约束类名,把选择指令类的名字和实现指令类的名字映射为约束类中指令类的集合名,把实现参数类的名字映射为约束类中参数类的集合名,把具体的操作口令名和微处理器指令序列中的指令名映射为约束类中指令类的集合名中的具体指令名,把具体控制的参数名映射为约束类中参数类的集合名中的具体参数名,然后将具体的操作口令映射为SystemVerilog语言描述的场景触发条件,将控制参数映射为SystemVerilog语言描述的场景实现指令类的触发条件,将微处理器的具体指令映射为SystemVerilog语言描述的微处理器指令序列集合,从而实现由Perl语言将功能树结构映射为SystemVerilog语言描述的测试用例。
本发明与现有技术相比的优点在于:
(1)本发明采用功能树结构的方法描述测试用例,该功能树结构结构层次比较清晰,各种指令和参数之间的关系也比较清楚,易于采用编程语言进行描述,从而克服了遗漏定义功能点的缺点,能够保证定义完备的功能点;
(2)本发明利用Perl语言自动把功能树结构映射为SystemVerilog语言描述的测试用例,只需根据功能树结构输入相应的指令便可以自动产生测试用例,从而减少了将功能树结构转化为测试用例所花的时间,提高了验证效率,确保产品能够在较短的时间里不带功能缺陷上市;另外,由于本方法可以在现有功能树结构的基础上根据不同产品增加或减少指令或参数,能够适用不同产品的测试用例的自动生成,从而提高了测试用例的可重用性。
附图说明
图1为本发明的功能树结构图;
图2为本发明测试用例自动生成方法的流程图;
图3为本发明实施例的功能树结构图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的描述。
本发明的具体思路是:首先采用功能树结构把抽象的流水线微处理器功能描述为具体的功能树结构,然后采用Perl语言描述该功能树结构,并把该结构映射为采用SystemVerilog语言描述的测试用例,将该测试用例添加到相应的随机指令序列发生器中,便可以产生验证相应功能的指令序列。
根据要验证流水线微处理器的各种功能,需要构建相应的功能树结构,从而组成功能树结构库,其中每个功能树结构代表了流水线微处理器的一种需要验证的功能。本发明构建的功能树结构如图1所示:该结构包括用来表示特定功能验证名称的树根,由树根生出的两个树枝节点,分别是场景选择树枝节点和场景实现树枝节点,由两个树枝节点生出的子树枝节点,其中场景选择树枝节点生出的是场景选择指令类子树枝节点,由场景实现树枝节点生出的是场景实现指令类子树枝节点和场景实现参数类子树枝节点,由每个子树枝节点生出的树叶节点,其中场景选择指令类子树枝节点生出的是操作口令树叶节点,场景实现指令类子树枝节点生出的是微处理器具体指令树叶节点,场景实现参数类子树枝节点生出控制参数树叶节点,控制参数树叶节点的控制参数用于确定微处理器具体指令树叶节点的微处理器的具体指令,不同控制参数确定的微处理器具体指令组成指令序列集合从而构成一个功能验证场景,操作口令树叶节点的每个操作口令用于确定一个功能验证场景。在激励发生器读入该测试用例时,会首先随机出操作口令,操作口令从而确定相应的功能验证场景,然后根据确定的功能验证场景随机出该场景的各种控制参数,通过控制参数随机出相应的微处理器具体指令,从而实现相应的场景。
场景选择指令类:是指针对某种功能或部件验证时,功能点的集合。比如对存储器控制器验证时,需要验证访问IO的功能点,验证访问PROM的功能点,验证访问SRAM的功能点。由这三种功能点名称组成的集合就是验证存储器控制器功能时的场景选择指令类,即场景选择指令类={IO,PROM,SRAM}。操作口令定义:是指场景选择指令类中的各个元素。例如,对存储器控制器验证时的场景选择指令类中的IO、PROM和SRAM。场景实现指令类:是指针对某种功能或部件验证时,需要微处理器指令的集合。比如验证流水线控制相关的功能时,整数条件跳转指令归为一类,浮点条件指令归为另外一类。其分类原则是要使能够在比较高的抽象次上对生成的指令序列进行控制,减少编写测试用例的代码。比如验证流水线控制相关的功能时,分类原则是:1、每个指令类中的指令格式相同;2、改变PC的类型相同指令归为一类。控制参数定义:是指根据要验证的具体功能,控制微处理器具体指令各个字段的取值的参数。比如验证流水线控制相关的功能时,表示跳转的起始地址的fa参数;表示跳转的目标地址的ta参数;表示向前还是向后跳转的fb参数;表示跳转条件是否成立的taken参数;表示是否设置取消位的a参数。这些参数的取值,将确定场景实现指令类中相应指令的取值。例如,当a参数等于1时,分支跳转指令的取消字段为0。参数类定义:是指由控制参数组成的集合。微处理器具体指令:是指微处理器指令集中的各种指令。
上述内容中,场景是指一种针对流水线微处理器的某种功能点进行验证的指令序列的集合,指令序列中的每条指令即指微处理器具体指令树叶节点中的微处理器具体指令;场景选择是指对流水线微处理器的特定功能点的场景进行选择;场景实现是指对场景的具体实现。其中场景选择节点对应一组场景选择,由场景选择树枝节点生成的子节点是选择场景的指令类子树枝节点,由选择场景的指令类节点生成的是操作口令树叶节点,不同的操作口令对应一个不同的场景,比如,数据相关功能结构树的操作口令树叶节点为整数算数逻辑指令类节点时,对应的场景是下一条指令与该类能够与整数算数逻辑指令构成数据相关条件的指令的场景。场景实现节点对应一个场景实现,由场景实现树枝节点生成的节点是能够实现相应场景的指令类子树枝节点、场景实现参数类子树枝节点,场景实现参数类子树枝节点生出控制参数树叶节点。
测试用例自动生成方法的实现过程如图2所示:
(a)根据上述构建的功能树结构,利用Perl语言描述该功能树结构,该描述可以把相应的功能树结构转换为SystemVeriog语言描述的测试用例;在利用Perl语言描述该功能树结构过程中,在树根中输入该测试用例的名字,在场景选择树枝节点下的场景选择指令类子树枝节点中输入选择指令类的名字,在场景实现树枝节点下的场景实现指令类子树枝节点中输入实现指令类的名字,在场景实现树枝节点下的场景实现参数类子树枝节点输入实现参数类的名字,在操作口令树叶节点输入具体的操作口令名,在微处理器具体指令树叶节点输入微处理器指令序列中的指令名,在实现参数树叶节点输入具体控制的参数名。
(b)为场景选择指令类子树枝节点、场景实现指令类子树枝节点、场景实现参数类子树枝节点、在操作口令树叶节点、微处理器具体指令树叶节点、控制参数树叶节点分配重量,相对重量越大发生的概率越大。每个场景选择指令类树枝节点、操作口令树叶节点、场景实现指令类子树枝节点、微处理器具体指令树叶节点、场景实现参数类子树枝节点、控制参数树叶节点都可以分配一定的重量,当所分配的重量为零重量时,说明无须功能树中的该节点,在映射时将不会映射该节点,此处的重量是指子树枝节点由树枝节点生出的随机概率,或者是树叶节点由子树枝节点生出的随机概率。
(c)运行步骤(a)中的Perl语言程序,把测试用例的名字映射为场景的约束名,把选择指令类的名字和实现指令类的名字映射为约束类中指令类的集合名,把实现参数类的名字映射为约束类中参数类的集合名,把具体的操作口令名和微处理器指令序列中的指令名映射为约束类中指令类的集合名中的具体指令名,把具体控制的参数名映射为约束类中参数类的集合名中的具体参数名,然后将具体的操作口令映射为SystemVerilog语言描述的场景触发条件,将控制参数映射为SystemVerilog语言描述的场景实现指令类的触发条件,将微处理器的具体指令映射为SystemVerilog语言描述的微处理器指令序列集合,从而实现由Perl语言将功能树结构映射为SystemVerilog语言描述的测试用例。场景触发条件:是指对随机出的场景的判断。例如对对存储器控制器验证时,有访问IO,访问PROM和访问SRAM三种口令。所以测试用例需要根据激励发生器随机出来的口令判断生成哪种场景。相当于c语言中的if语句。场景指令实现触发条件:与场景触发条件类似,是指对控制参数的值的判断。相当于c语言中的if语句。
下面以图3所示的SPARC V8架构单发射流水线微处理器控制相关功能验证测试用例为例,对本发明进行描述:
1)根据SPARC V8架构单发射流水线微处理器指令集和组成定义建立功能验证模型表达式,该表达式描述了相应功能验证所需要指令和参数的集合,为了实现定义功能的完备性,验证模型分为数据相关验证模型表达式、控制相关验证模型表达式、浮点运算单元验证表达式模型等等。根据功能验证模型表达式构建功能树结构库,每个表达式用一种功能树结构对其进行描述,功能树结构可以比较清晰地描述出该功能验证模型表达式中各个参数之间的关系,以及该功能验证模型表达式所包含的所有功能点。
以下是验证流水线控制相关验证表达式模型:
Figure A200910079415D00101
此处,inst_class1,...,inst_classn表示划分的指令类;class_sel表示指令类的选择;fa表示跳转的起始地址;ta表示跳转的目标地址;fb表示向前还是向后跳转,当fb=0时,表示向前跳转。当fb=1时,表示向后跳转;taken表示跳转条件是否成立。当taken=0时,表示条件成立。当taken=1时,表示条件不成立;a表示是否设置取消位。
流水线控制相关的功能树的结构为:控制相关功能结构树的树根是p_c_h(pipeline control hazards);场景选择节点为class_sel;由场景选择节点得到的子树枝节点是1、2、...、6,即一共六种场景,因为由6-n分配的重量为0,说明无须功能树中的该节点,在映射时将不会映射该节点,每个子树枝节点产生一个树叶节点的值,就会产生与之对应的指令序列构成的场景;由场景实现节点得到的子树枝节点有浮点转移指令类子树枝节点、整数转移指令类子树枝节点、是否跳转成功参数子树枝节点、前后跳转参数节点等。
对每个场景选择指令类树枝节点、操作口令树叶节点、场景实现指令类子树枝节点、微处理器具体指令树叶节点、场景实现参数类子树枝节点、控制参数树叶节点分配一定的重量,分配原则是根据不同指令类包含的元素的个数的关系,或者同一指令类中不同元素的关系进行分配的。例如图中inst_class1和inst_class2的重量分别是10和2,是因为指令类inst_class1中包含的元素是inst_class2包含元素的5倍。class_sel等于1、2、...、5、6、7...、n分别为2、2、...、2、5、0、...、0,是因为组成场景6的情况与组成场景1、2、...、5的情况的比例是2比5,没有7...、n的场景。
2)采用Perl语言描述功能树结构,该描述可以把相应的功能树结构转换为SystemVeriog语言描述的测试用例,采用Perl语言以功能树结构的形式描述步骤1)中的功能验证模型表达式,在树根中输入该测试用例的名字;在树枝中输入指令类和参数类的名字;在相应指令类的树枝节点对应的树叶中输入每个指令类所包含的指令名,在相应参数类的树枝节点对应的树叶中输入所包含的控制参数名,给每个指令类和每条指令以及各个参数类和参数分配重量。例如,下面一段Perl语言程序描述了树根、场景选择树枝节点以及它们的重量的实现过程,其他节点采用Perl语言的实现过程与上述方法相同,均可以映射为SystemVerilog语言描述的测试用例。
print"root is:\n";
     $rootname=<STDIN>;#输入树根
   foreach($rootname)
       {if(m∧n/){s∧n//g;}}
  print"element number is:\n";
   $elnumber=<STDIN>;#输出参数类包含的参数个数
print"name of element and weight are:\n";
       for($i=0;$i<$elnumber;$i=$i+1)#输入具体的参数名及分配的重量
        {print"name:\n";
$class_sel_name=<STDIN>;
        @class_sel_name[$i]=$class_sel_name;
        print"weight:\n";
        $class_sel_weight=<STDIN>;
        @class_sel_weight[$i]=$class_sel_weight;
    }
  open($rootname,">$rootname")‖die"$!";
        $j=0;
      @contents[$j]="constraint$rootname\{\n";
$j=$j+1;
      @contents[1]="if(scenario_kind==$rootname)\{\n";
  for($i=0;$i<$elnumber;$i=$i+1)  #映射为SystemVerilog语言描述的测试用
          {@contents[2]="items[j].op[0].class_sel dist\{";
          $class_sel_name=@class_sel_name[$i];
          foreach($class_sel_name)
            {if(m∧n/)
                {s∧n//g;}
            }
       $class_sel_weight=@class_sel_weight[$i];
       foreach($class_sel_weight)
       {if(m∧n/)
          {s∧n//g;}
       }
      @contents[$i+3]="$class_sel_name:=$class_sel_weight,";
       if($i==($elnumber-1))
         {foreach(@contents[$i+3])
            {if(m/,/)
               {s/,//g;}
            }
          }
      if($i==($elnumber-1))
        {@contents[$i+4]="};"}
      print"@contents[$i+3]";
}
print$rootname@contents;#输出SystemVerilog语言描述的测试用例
close($rootname);
3)运行步骤2)中的Perl语言程序,把测试用例的名字映射为功能验证场景的约束名,把选择指令类的名字和实现指令类的名字映射为约束类中指令类的集合名,把实现参数类的名字映射为约束类中参数类的集合名,把具体的操作口令名和微处理器指令序列中的指令名映射为约束类中指令类的集合名中的具体指令名,把具体控制的参数名映射为约束类中参数类的集合名中的具体参数名,然后将具体的操作口令映射为SystemVerilog语言描述的场景触发条件,将控制参数映射为SystemVerilog语言描述的场景实现指令类的触发条件,将微处理器的具体指令映射为SystemVerilog语言描述的微处理器指令序列集合,从而实现由Perl语言将功能树结构映射为SystemVerilog语言描述的测试用例。通过Perl语言映射得到控制相关模型对应的用SystemVerilog描述的测试用例为:
      constraint p_c_h_valid
        {
          if(scenario_kind==p_c_h)
            {...
                foreach(items[j])
                 {...
                   items[j].op[0].class_sel dist{1:=2,2:=5,3:=5,...,6:=5};
                   if(items[j].op[0].class_sel==1)//映射得到的场景触发条件
                     {
                       items[j].op[0].class dist{items[j].op[0].inst_class1:=10,
                                         items[j].op[0].inst_class2:=8};
                     }
                  if(items[j].class==inst_class1)//映射得到的微处理器指令序列集合
                    {
                        items[k].op[0].kind inside{ba,fba,......}
                    }
                  if(items[j].class==inst_class2)
                     {
                        items[k].op[0].kind inside{bne,fbne,......}
                    }
                  if(items[j]op[0].fb==1)
                     {
                        items[j].op[0].ta inside{[29:35]};
                    }
                   foreach(items[k])
                    {...
 {
                       if(items[j]op[0].ta>7)
                        {
                           {
                             items[k].op[0].kind==opcode::sethi_cmd;
                             items[k].op[0].rd==5′b00001;
                             if(items[j].op[0].kind==opcode::fbg_cmd...)
                              {
                                  if(items[j].op[0].taken==1)//得到的场景实现指
                                                   //令类的触发条件
                                  items[k].op[0].imm22 inside
                                    {{1′b1,8′h00,12′h00f,1′b0},
              {1′b1,8′h00,12′h01f,1′b0}
                                    };
                                  if(items[j].op[0].taken==0)
        items[k].op[0].imm22=={1′b1,8′h00,
      12′h002,1′b0};
                               }
         }
4)把测试用例加入到随机指令序列发生器中,便可以产生该验证模型指令序列空间所包含指令序列集合内容如表1所示:
表1 指令序列集合
Figure A200910079415D00141
本发明还可有其他的实施例,在不背离本发明实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但是这些相应的改变和变形都应属于本发明所附的权利要求的保护范围,本发明未详细描述内容为本领域技术人员公知技术。

Claims (5)

1、一种微处理器功能验证测试用例的功能树结构,其特征在于:包括用来表示特定功能验证名称的树根、由树根生出的两个树枝节点、每个树枝节点生出的子树枝节点和每个子树枝节点生出的树叶节点;两个树枝节点分别为场景选择树枝节点和场景实现树枝节点,场景选择树枝节点生出场景选择指令类子树枝节点,场景实现树枝节点生出场景实现指令类子树枝节点和场景实现参数类子树枝节点,场景选择指令类子树枝节点生出操作口令树叶节点,场景实现指令类子树枝节点生出微处理器具体指令树叶节点,场景实现参数类子树枝节点生出控制参数树叶节点。
2、根据权利要求1所述的一种微处理器功能验证测试用例的功能树结构,其特征在于:所述控制参数树叶节点中的控制参数确定微处理器具体指令树叶节点中的微处理器具体指令,不同控制参数确定的微处理器具体指令组成指令序列集合从而构成一个功能验证场景。
3、根据权利要求1所述的一种微处理器功能验证测试用例的功能树结构,其特征在于:所述操作口令树叶节点的一个操作口令确定一个功能验证场景。
4、一种微处理器功能验证测试用例的自动生成方法,其特征在于包括以下步骤:
(a)利用Perl语言对权利要求1构建的功能树结构进行描述,在树根中输入测试用例的名字,在场景选择树枝节点下的场景选择指令类子树枝节点中输入选择指令类的名字,在场景实现树枝节点下的场景实现指令类子树枝节点中输入实现指令类的名字,在场景实现树枝节点下的场景实现参数类子树枝节点输入实现参数类的名字,在操作口令树叶节点输入具体的操作口令名,在微处理器具体指令树叶节点输入微处理器指令序列中的指令名,在控制参数树叶节点输入具体控制的参数名;
(b)为步骤(a)中的场景选择指令类子树枝节点、场景实现指令类子树枝节点、场景实现参数类子树枝节点、在操作口令树叶节点、微处理器具体指令树叶节点、控制参数树叶节点分配重量;
(c)运行步骤(a)中的Perl语言,把测试用例的名字映射为场景的约束类名,把选择指令类的名字和实现指令类的名字映射为约束类中指令类的集合名,把实现参数类的名字映射为约束类中参数类的集合名,把具体的操作口令名和微处理器指令序列中的指令名映射为约束类中指令类的集合名中的具体指令名,把具体控制的参数名映射为约束类中参数类的集合名中的具体参数名,然后将具体的操作口令映射为SystemVerilog语言描述的场景触发条件,将控制参数映射为SystemVerilog语言描述的场景实现指令类的触发条件,将微处理器的具体指令映射为SystemVerilog语言描述的微处理器指令序列集合,从而实现由Perl语言将功能树结构映射为SystemVerilog语言描述的测试用例。
5、按照权利要求4所述的一种微处理器功能验证测试用例的自动生成方法,其特征在于:所述步骤(b)中的重量为子树枝节点由树枝节点生出的随机概率,或者为树叶节点由子树枝节点生出的随机概率。
CN2009100794151A 2009-03-11 2009-03-11 微处理器功能验证测试用例的自动生成方法 Expired - Fee Related CN101499105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100794151A CN101499105B (zh) 2009-03-11 2009-03-11 微处理器功能验证测试用例的自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100794151A CN101499105B (zh) 2009-03-11 2009-03-11 微处理器功能验证测试用例的自动生成方法

Publications (2)

Publication Number Publication Date
CN101499105A true CN101499105A (zh) 2009-08-05
CN101499105B CN101499105B (zh) 2010-08-25

Family

ID=40946176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100794151A Expired - Fee Related CN101499105B (zh) 2009-03-11 2009-03-11 微处理器功能验证测试用例的自动生成方法

Country Status (1)

Country Link
CN (1) CN101499105B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763453B (zh) * 2010-01-22 2011-11-23 工业和信息化部软件与集成电路促进中心 规范化ip核评测方法和系统
CN102968368A (zh) * 2012-08-30 2013-03-13 中国人民解放军63928部队 一种遍历场景状态图的嵌入式测试用例设计与生成方法
CN103268272A (zh) * 2013-05-07 2013-08-28 中国人民解放军国防科学技术大学 基于场景的处理器系统级验证完备性度量方法
CN105260317A (zh) * 2015-11-19 2016-01-20 上海斐讯数据通信技术有限公司 一种测试用例的选取方法
CN107976991A (zh) * 2017-11-24 2018-05-01 中国航空工业集团公司西安航空计算技术研究所 一种用于片上处理器中usb控制器的验证方法
CN109933529A (zh) * 2019-03-12 2019-06-25 苏州中晟宏芯信息科技有限公司 基于计算单元的验证方法及验证平台
CN113505066A (zh) * 2021-07-09 2021-10-15 合肥肇观电子科技有限公司 用于验证被测试模块的方法以及验证系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763453B (zh) * 2010-01-22 2011-11-23 工业和信息化部软件与集成电路促进中心 规范化ip核评测方法和系统
CN102968368A (zh) * 2012-08-30 2013-03-13 中国人民解放军63928部队 一种遍历场景状态图的嵌入式测试用例设计与生成方法
CN103268272A (zh) * 2013-05-07 2013-08-28 中国人民解放军国防科学技术大学 基于场景的处理器系统级验证完备性度量方法
CN103268272B (zh) * 2013-05-07 2014-07-23 中国人民解放军国防科学技术大学 基于场景的处理器系统级验证完备性度量方法
CN105260317A (zh) * 2015-11-19 2016-01-20 上海斐讯数据通信技术有限公司 一种测试用例的选取方法
CN105260317B (zh) * 2015-11-19 2017-10-13 上海斐讯数据通信技术有限公司 一种测试用例的选取方法
CN107976991A (zh) * 2017-11-24 2018-05-01 中国航空工业集团公司西安航空计算技术研究所 一种用于片上处理器中usb控制器的验证方法
CN107976991B (zh) * 2017-11-24 2020-06-09 中国航空工业集团公司西安航空计算技术研究所 一种用于片上处理器中usb控制器的验证方法
CN109933529A (zh) * 2019-03-12 2019-06-25 苏州中晟宏芯信息科技有限公司 基于计算单元的验证方法及验证平台
CN109933529B (zh) * 2019-03-12 2022-03-29 苏州中晟宏芯信息科技有限公司 基于计算单元的验证方法及验证平台
CN113505066A (zh) * 2021-07-09 2021-10-15 合肥肇观电子科技有限公司 用于验证被测试模块的方法以及验证系统

Also Published As

Publication number Publication date
CN101499105B (zh) 2010-08-25

Similar Documents

Publication Publication Date Title
CN101499105B (zh) 微处理器功能验证测试用例的自动生成方法
CN102999320B (zh) 测试用例自动生成方法和系统
US8438320B2 (en) Various methods and apparatus for address tiling and channel interleaving throughout the integrated system
US8417504B2 (en) Conversion of circuit description to a transaction model
EP2216722A2 (en) Various Methods and Apparatus for Configurable Mapping of Address Regions Onto One or More Aggregate Targets
CN100511149C (zh) 逻辑仿真测试系统和方法
CN106294148B (zh) 基于扩展符号变迁系统的c语言程序软件验证方法及装置
Boström Contract-based verification of simulink models
CN101673236A (zh) 一种全覆盖的微处理器测试用例包自动生成方法
CN108574590A (zh) 一种网元开通方法和装置以及计算机可读存储介质
CN101673198A (zh) 一种验证uml模型中动态行为与时序契约的一致性的方法
CN104935936A (zh) 基于uvm的熵解码器验证方法及装置
Gort et al. Combined architecture/algorithm approach to fast FPGA routing
CN106462431A (zh) 在高级综合中提取系统架构
CN116341428B (zh) 构建参考模型的方法、芯片验证方法及系统
CN105446952A (zh) 用于处理语义片段的方法和系统
CN110209587B (zh) 安全芯片业务流程的测试方法及装置
CN103646194B (zh) 一种基于形式化验证的同步数据流程序的可信排序方法
CN103294482B (zh) 用于PWscf并行计算系统的Web服务封装方法以及系统
Sohrabizadeh et al. Enabling automated FPGA accelerator optimization using graph neural networks
Håkansson et al. Component-based design and analysis of embedded systems with uppaal port
CN116956801B (zh) 芯片验证方法、装置、计算机设备和存储介质
CN102495778B (zh) 一种测试单包正则匹配逻辑的系统和方法
Bian et al. Concrete hyperheuristic framework for test case prioritization
CN109947644A (zh) 基于模型抽取的安全协议javascript语言实施的分析方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100825

Termination date: 20190311

CF01 Termination of patent right due to non-payment of annual fee