CN114117975A - 一种有限状态机功能覆盖率自动产生的方法 - Google Patents
一种有限状态机功能覆盖率自动产生的方法 Download PDFInfo
- Publication number
- CN114117975A CN114117975A CN202111272866.4A CN202111272866A CN114117975A CN 114117975 A CN114117975 A CN 114117975A CN 202111272866 A CN202111272866 A CN 202111272866A CN 114117975 A CN114117975 A CN 114117975A
- Authority
- CN
- China
- Prior art keywords
- state machine
- finite state
- coverage
- jump
- generating
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
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)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种有限状态机功能覆盖率自动产生方法,包括以下步骤:有限状态机表生成:定义Timer模块的有限状态机跳转图,分析所述有限状态机跳转图,获取模块中出现的有限状态机以及其跳转关系,输出表格文件;自动化产生功能覆盖率:预设功能覆盖组模板,产生模块对应的功能覆盖率,根据所述模块中出现的有限状态机以及其跳转关系,产生对应的功能覆盖率;覆盖率反标:将生成的功能覆盖率反标至结构验证。本发明通过制定有限状态机跳转表格,实现了自动提取有限状态机以及其跳转关系,即便模块代码发生了更新也能很快找到更新点,有效提高效率。
Description
技术领域
本发明涉及集成电路设计技术,更具体地说,涉及一种有限状态机功能覆盖率自动产生的方法。
背景技术
随着大规模集成电路的发展,集成电路的规模越来越大,功能越来越复杂,其集成的模块也日益增多。较为复杂的芯片由多个模块组成,来实现算法、数据搬移以及和外部通讯等功能。为了满足不同场景的使用需求,芯片中集成的模块越来越多。大量的模块除了让芯片实现更多的功能之外,也增加了验证工作的难度和任务量。而对于模块的验证来说,如何让验证工程师知道自己是否全面覆盖所有的工作场景成为大家所关心的问题。
在针对模块的验证中,对于有限状态机的验证是至关重要的。有限状态机是否能根据使用场景进行正确的跳转关系到模块能否正常工作以及芯片能否正常使用。因此,在前端验证中验证人员需要对有限状态机以及其所有可能的跳转情况进行全面细致的验证。为了保证验证的全面性,通常通过编写功能覆盖率对有限状态机所有的情况进行收集来观察验证用例是否覆盖,来检查是否出现遗漏的场景未进行验证。一般情况下,验证工程师都是手动编写功能覆盖率,这种方法需要工程师花费大量的时间去阅读模块的RTL代码或者模块的使用手册,影响项目进度。同时,如果模块的结构较为复杂,涉及到的有限状态机较多,会出现遗漏部分工作场景的情况,存在验证风险。
发明内容
有鉴于此,本发明的目的在于提出一种有限状态机功能覆盖率自动产生的方法,用以解决现有技术中验证效率低、遗漏验证场景的问题。
基于上述目的,本发明提供了一种有限状态机功能覆盖率自动产生方法,包括以下步骤:
生成有限状态机表,生成有限状态机表包含:定义Timer模块的有限状态机跳转图,分析所述有限状态机跳转图,获取模块中出现的有限状态机以及其跳转关系,输出表格文件;
产生功能覆盖率,产生功能覆盖率包含:预设功能覆盖组模板,产生模块对应的功能覆盖率,根据所述模块中出现的有限状态机以及其跳转关系,产生对应的功能覆盖率;
覆盖率反标,覆盖率反标包含:将生成的功能覆盖率反标至结构验证。
在一些实施例中,所述有限状态机生成,具体为:
a.定义一个Timer模块的有限状态机跳转图,设n个状态,在每个时钟的上升沿,所述模块根据信号内容进入到相应状态,实现有限状态机的跳转;
b.模块在进入到状态后,提取其可进入的下一个状态以及进入的条件,完成对工作场景的收集,并将模块的每个跳转关系输出为表格文件。
在一些实施例中,表格文件包括:有限状态机跳转情况、有限状态机跳转条件。
在一些实施例中,自动化产生功能覆盖率,具体为:基于预设的功能覆盖组模板,生成模块对应的功能覆盖率,所述模板包含了覆盖率名称、采样变量以及表达式的值。
在一些实施例中,在所述生成的功能覆盖组中,包含:有限状态机的跳转状态记录;将有限状态机跳转的情况、跳转条件交叉取样的记录。
覆盖率反标具体为:在验证计划中定义的VO;Group VO_TIMER_FSM_COVERAGE用于给仿真软件识别,作为该VO对应的覆盖率名称;VO对应的功能覆盖率,包括了功能覆盖率文件所在位置,文件名称以及对应的功能覆盖组。
在一些实施例中,所述方法还包括:根据应用场景编写测试用例,在回归验证后在硬件描述语言编译仿真器工具中检查覆盖率是否是100%以及是否需要增加新的测试用例。
在一些实施例中,所述功能覆盖率的生成还包括自动生成总线、寄存器、时钟、复位的功能覆盖率。
本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任意一项方法。
本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任意一项方法。
本发明至少具有以下有益技术效果:
1.本发明通过分析有限状态机表进行验证策略的制定,减少了学习RTL代码的时间,有效提高效率;
2.本发明通过制定有限状态机跳转表格,实现了自动提取有限状态机以及其跳转关系,即便模块代码发生了更新也能很快找到更新点,有效提高效率;
3.本发明通过设计自动生成功能覆盖率的方法,产生模块对应的功能覆盖率,不会出现工作场景的情况,降低验证风险;
4.本发明通过将功能覆盖率反标到结构验证计划中,方便在后续项目中对验证工作的交际,管理和维护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明实施例提供的Timer模块的有限状态机跳转图;
图2为根据本发明实施例提供的有限状态机覆盖率生成流程图;
图3为根据本发明实施例提供的实现资源监控方法的计算机可读存储介质的示意图;
图4为根据本发明实施例提供的执行资源监控方法的计算机设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
基于上述目的,本发明实施例的第一个方面,提出了有限状态机功能覆盖率自动产生方法的实施例。
如图2所示,包括以下步骤:
有限状态机表生成:定义Timer模块的有限状态机跳转图,分析所述有限状态机跳转图,获取模块中出现的有限状态机以及其跳转关系,输出表格文件;
a.如图1所示,定义一个Timer模块的有限状态机跳转图,包括4个个状态,在每个时钟的上升沿,所述模块根据信号内容进入到相应状态,实现有限状态机的跳转;
b.模块在进入到状态后,提取其可进入的下一个状态以及进入的条件,完成对工作场景的收集,并将模块的每个跳转关系输出为表格文件;表格文件包括:有限状态机跳转情况、有限状态机跳转条件。
在实际使用时,模块的有限状态机表由架构工程师依据客观需求完成定义;根据有限状态机表的信息,完成模块内有限状态机RTL的设计,并将模块的每个跳转关系输出成一个表格。表格由两部分组成,第一部分是有限状态机的跳转情况,第二部分则是有限状态机跳转所需的条件。例如,对Timer模块的RTL分析所得到的表格如下:
IDLE | LOAD | CNT | END | |
IDLE | - | Y | - | - |
LOAD | Y | - | Y | - |
CNT | Y | - | - | Y |
END | Y | - | Y | - |
表1有限状态机列表
表2状态跳转条件表
在表格1中,左列为上一状态,上列为下一状态,交叉的格子代表是否存在状态的转换,如果为“Y”则存在,若不存在或者状态相同则为“-”;表格2中,左列表示有限状态机跳转情况,左边为跳转发生时的状态,右边为跳转后状态;右列为发生跳转的条件,所述条件为有一个或多个条件。
自动化产生功能覆盖率:基于预设功能覆盖组模板,产生模块对应的功能覆盖率,根据所述模块中出现的有限状态机以及其跳转关系,产生对应的功能覆盖率;所述覆盖率包含了覆盖率名称(TIMER_FSM_COV)、采样变量(timer_state)以及表达式的值(coverpoint);在所述生成的功能覆盖组中,包含:有限状态机的跳转状态记录;将有限状态机跳转的情况、盖不全的情况。
所述功能覆盖组如下所示:
基于预设的功能覆盖组模板,生成模块对应的功能覆盖率,所述模板包含了覆盖率名称、采样变量以及表达式的值。
在一些实施例中,将生成的功能覆盖率反标至结构验证计划,具体为:通过脚本寻找验证计划中对应的VO,将有限状态机的功能覆盖率添加到其中,方便进行验证项目的管理和维护的同时在仿真软件中可以快速定位到某个VO对应的覆盖组,提高了验证工程师的工作效率。
反标之后的结构验证计划如下所示:
第一行是在验证计划中定义的VO;第二行“Group VO_TIMER_FSM_COVERAGE”是用于仿真软件的识别,作为该VO对应的覆盖率名称;第三行“group”为VO对应的功能覆盖率,包括了功能覆盖率文件所在位置,文件名称以及对应的功能覆盖组。
覆盖率反标:将生成的功能覆盖率反标至结构验证。
在一些实施例中,还包括:根据应用场景编写测试用例,在回归验证后在硬件描述语言编译仿真器工具中检查覆盖率是否是100%以及是否需要增加新的测试用例。
在一些实施例中,所述功能覆盖率的生成还包括自动生成总线、寄存器、时钟、复位的功能覆盖率。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络--包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
本发明实施例还提供了一种计算机可读存储介质,图3示出了根据本发明实施例提供的实现资源监控方法的计算机可读存储介质的示意图。如图3所示,计算机可读存储介质3存储有计算机程序指令31,该计算机程序指令31可以被处理器执行。该计算机程序指令31被执行时实现上述任意一项实施例的方法。
应当理解,在相互不冲突的情况下,以上针对根据本发明的资源监控方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的资源监控系统和存储介质。
本发明实施例还提供了一种计算机设备,包括存储器402和处理器401,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的方法。
如图4所示,为本发明提供的执行资源监控方法的计算机设备的一个实施例的硬件结构示意图。以如图4所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与资源监控系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的资源监控方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储资源监控方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的资源监控方法。
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种有限状态机功能覆盖率自动产生方法,其特征在于,包括以下步骤:
生成有限状态机表,所述生成有限状态机表包含:定义Timer模块的有限状态机跳转图,分析所述有限状态机跳转图,获取模块中出现的有限状态机以及其跳转关系,输出表格文件;
产生功能覆盖率,所述产生功能覆盖率包含:预设功能覆盖组模板,产生模块对应的功能覆盖率,根据所述模块中出现的有限状态机以及其跳转关系,产生对应的功能覆盖率;
覆盖率反标,所述覆盖率反标包含:将生成的功能覆盖率反标至结构验证。
2.根据权利要求1所述的方法,其特征在于,所述有限状态机生成,具体为:
a.定义一个Timer模块的有限状态机跳转图,设n个状态,在每个时钟的上升沿,所述模块根据信号内容进入到相应状态,实现有限状态机的跳转;
b.模块在进入到状态后,提取其可进入的下一个状态以及进入的条件,完成对工作场景的收集,并将模块的每个跳转关系输出为表格文件。
3.根据权利要求2所述的方法,其特征在于,所述表格文件包括:有限状态机跳转情况和/或有限状态机跳转条件。
4.根据权利要求1所述的方法,其特征在于,自动化产生功能覆盖率,具体为:基于预设的功能覆盖组模板,生成模块对应的功能覆盖率,所述模板包含了覆盖率名称、采样变量以及表达式的值。
5.根据权利要求1或4所述的方法,其特征在于,在所述生成的功能覆盖组中,包含:有限状态机的跳转状态记录;将有限状态机跳转的情况、跳转条件交叉取样的记录。
6.根据权利要求1所述的方法,其特征在于,覆盖率反标具体为:在验证计划中定义的VO;Group VO_TIMER_FSM_COVERAGE用于给仿真软件识别,作为该VO对应的覆盖率名称;VO对应的功能覆盖率,包括了功能覆盖率文件所在位置,文件名称以及对应的功能覆盖组。
7.根据权利要求1所述的方法,其特征在于,还包括:
根据应用场景编写测试用例,在回归验证后在硬件描述语言编译仿真器工具中检查覆盖率是否为100%以及是否需要增加新的测试用例。
8.根据权利要求1所述的方法,其特征在于,所述功能覆盖率的生成还包括自动生成总线、寄存器、时钟、复位的功能覆盖率。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被执行时实现如权利要求1-7任意一项所述的方法。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111272866.4A CN114117975A (zh) | 2021-10-29 | 2021-10-29 | 一种有限状态机功能覆盖率自动产生的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111272866.4A CN114117975A (zh) | 2021-10-29 | 2021-10-29 | 一种有限状态机功能覆盖率自动产生的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114117975A true CN114117975A (zh) | 2022-03-01 |
Family
ID=80379523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111272866.4A Pending CN114117975A (zh) | 2021-10-29 | 2021-10-29 | 一种有限状态机功能覆盖率自动产生的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114117975A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610577A (zh) * | 2023-05-25 | 2023-08-18 | 成都融见软件科技有限公司 | 一种覆盖率获取方法 |
CN118228648A (zh) * | 2024-03-26 | 2024-06-21 | 南京邮电大学 | 基于桶排序的fsm状态转移覆盖率计算方法及系统 |
-
2021
- 2021-10-29 CN CN202111272866.4A patent/CN114117975A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610577A (zh) * | 2023-05-25 | 2023-08-18 | 成都融见软件科技有限公司 | 一种覆盖率获取方法 |
CN116610577B (zh) * | 2023-05-25 | 2024-01-26 | 成都融见软件科技有限公司 | 一种覆盖率获取方法 |
CN118228648A (zh) * | 2024-03-26 | 2024-06-21 | 南京邮电大学 | 基于桶排序的fsm状态转移覆盖率计算方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7270764B2 (ja) | 人工知能チップ検証 | |
CN114117975A (zh) | 一种有限状态机功能覆盖率自动产生的方法 | |
CN112364133B (zh) | 岗位画像生成方法、装置、设备及存储介质 | |
WO2019169760A1 (zh) | 测试用例范围确定方法、装置及存储介质 | |
CN110908895A (zh) | 页面自动化测试方法、装置、计算机设备及存储介质 | |
US20160328314A1 (en) | System and method for providing code coverage | |
CN110928802A (zh) | 基于自动生成用例的测试方法、装置、设备及存储介质 | |
CN104035873A (zh) | 测试代码生成方法及生成装置 | |
CN111324526B (zh) | 接口测试系统、方法和服务器 | |
CN112506757A (zh) | 自动测试方法、系统、计算机设备及其介质 | |
CN101183332A (zh) | 一种根据程序内容自动生成测试数据集的方法和装置 | |
CN104021072A (zh) | 用于评估失效的软件程序的机器和方法 | |
CN104657274A (zh) | 软件界面测试方法及装置 | |
DE112017004837T5 (de) | Systeme und Verfahren zum Differenzieren von Funktionsleistung nach Eingabeparametern | |
CN107357619B (zh) | 一种板卡配置文件的生成方法、装置、设备以及存储介质 | |
CN114047968A (zh) | 一种硬件自动适配的方法、系统、存储介质及设备 | |
CN107451038B (zh) | 硬件事件采集方法、处理器和计算系统 | |
CN109324838B (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN110309047B (zh) | 一种测试点生成方法、装置及系统 | |
CN110781079B (zh) | 数据处理流程调试方法、装置及电子设备 | |
CN114443403A (zh) | 一种寄存器功能覆盖组的生成方法、装置、设备及存储介质 | |
CN114077884A (zh) | 深度学习模型的模型转换优化装置、方法及可读存储介质 | |
CN114077538A (zh) | 程序调试方法、装置及可读存储介质 | |
CN111143227A (zh) | 一种数据操作方法、装置、终端及存储介质 | |
CN110569285A (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 |