本发明专利技术公开了一种扩展状态机图的结构和构建方法,以及在其上实现遍历的方法,还公开了根据遍历结果产生测试用例的方法。该扩展状态机图对分析覆盖率有很好的帮助。遍历方法简单实用,可以产生状态序列、状态转移时选取的输出函数、使状态转移发生的测试激励包的约束标签或其中产生的具体输入信号值。测试用例产生方法,可以根据遍历结果的不同形式,包括固定值的激励包、带约束的激励包、带不可实现标记的激励包,完成测试用例的产生,实现对更多覆盖率指标的高覆盖效果。测试用例的产生过程,可以接受人工的指导来减少运算量。该套方法对边角情况的自动验证非常有效,减低了验证工程师制造边角情况场景和测试用例的成本。
【技术实现步骤摘要】
本专利技术涉及,属于集成电路功能验证的
技术介绍
现有的集成电路功能验证方法主要通过限制性随机验证完成大部分应用场景的模拟。对于很难在随机情况中产生的边角情况由验证工程师手工编写,并通过原有的验证平台加载到被测设计中,这时边角情况种类的完全性、产生的复杂度、与现有验证平台的兼容性都直接影响到了验证成本。验证工程师会根据状态机的状态点和状态之间的转移功能是否被覆盖到来决定手工编写的测试案例的内容,以达到两者覆盖率的完整。状态机图中只标注了状态和其之间的转移连线,状态内部的各种情况没有进行图形标注,致使边角情况的制造困难。在状态机图上的遍历研究中,最优解的查找往往比较复杂,根据功能验证的特性,少量的重复减少大量的计算是更实用的方案。而且仅对简单的状态的遍历,对其他覆盖率指标和一些边角情况的功能测点效果不明显。随机加手工的方法产生的测试用例集合整体效率并不高,因为其中测试用例的针对性不强,对某些覆盖的重复测试过多,影响相同覆盖率下仿真软件的运行时间。为解决高覆盖率且高效的测试用例的产生问题,甚至是对于某些指标的全覆盖率和最高效问题,本专利将提出一种扩展的状态机模型,配以低复杂度的遍历方法和测试用例产生方法,完成高效高覆盖率测试用例的自动产生。现有根据状态序列产生测试信号的方法,仅考虑当前运行周期输入信号对状态转移的影响,对复杂状态机,特别是由内部变量引起的状态转移,现有方法无法满足。
技术实现思路
本专利技术要解决的主要技术问题是,提供一种扩展的状态机图及其构建方法,在此基础上提供对应的遍历方法和测试用例的自动生成方法。为解决上述技术问题,本专利技术采用的技术方案如下:一种扩展的状态机图及其构建方法:1.状态集合、状态转移集合、状态转移条件集合分别用带有状态名的圆圈、带箭头的曲线、曲线上转移条件的文字表示。2.收集并分类每个状态中涉及的输入信号、内部变量、输出信号、输出函数。3.对于每个状态中的每个输出函数,收集和记录实现该输出函数对输入信号和内部变量的要求,以及该输出函数输出时所影响的内部变量与输出信号。4.将每个状态中的每个输出函数,按照输出后的下一状态分类。即该状态的状态扇出数目为输出函数的分类数目。5.在每个状态圆圈中,构建影响输出函数选择,由输入信号和内部变量取值约束构成的,具有优先级先后顺序的路径图。进一步地,状态圆圈中的路径图,其特征在于,每个状态有几种下一状态,就有几个路径终点,即该状态的状态扇出数。该路径图上的每一条路径都由一个统一的起点出发,路经该状态所有输入信号和内部变量,最后汇聚到这几个终点中的一个上,形成一条完整的路径。该起点由该状态的扇入状态转移曲线的终点汇合而成。每一条连接到终点的路径都对应着一种输出函数的选择。从起点走到终点的一条完整路径,表示了如果要走到最后连接终点的线路所表示的输出函数,需要经过一路上各相关输入信号和内部变量的约束,随后通过终点对应的状态转移曲线,进入下一个状态。更进一步地,状态圆圈中的路径图,其特征在于,在路径上标注通过该路径时对输入信号和内部变量相关的约束条件,包括与多个信号或多个变量相关的组合约束条件,并且同一条路径上相同的约束条件可以合并。同一个状态圆圈中的各输出函数的选取条件可能会存在重叠,根据设计中判断输出函数选择的实际判断条件的优先级从上到下排列,高优先级的选择条件自动从低优先级的选择条件中减掉,使每条完整路径上的约束条件不会重叠。在扩展的状态机图上遍历的方法:I)计算并保存状态机图上任意一个状态到另一个状态中间经过的最少状态路径,即任意两状态间的最短路径。从一个状态到另一个状态,如果是不可达的,最短路径则为无限大。进入第二步。2)如果从复位后的初始状态存在到某一个状态的最短路径是不可达,停止该方法,打印状态机设计错误信息,否则进入第三步。3)统计每一个状态到其每种下一个状态可能通过的路径图中的路径种类。并将种类数标记在该状态到其下一状态的状态转移连线上。4)创建一条路径,增加到遍历路径集合中,以复位后的初始状态节点作为起始节点,进入第5步。5)如果当前状态节点到任意下一状态节点存在3步中标记的大于零的转移连线,从中选择一个下一状态,并选择一条可以连接到该状态转移的输出函数的约束路径通过,在4步中创建的路径中记录这个状态转移,并将这个转移的连线上标记的数字减一,再以进入的下一状态节点作为当前节点,进入5步骤。如果当前状态节点到任意下一状态节点转移连线上的数字都为零,则进入6步骤。6)如果状态机图中所有状态之间的转移连线上的数字都不大于零时,则遍历完成,停止该方法,打印所有遍历路径集合中的路径。如果状态机图中状态之间的转移连线上的数字存在大于零的情况时,进入步骤7。7)如果不存在路径从当前状态节点到任何一个标记的数字还大于零的状态转移连线的起始状态节点,则进入步骤4,建立另一个从复位动作开始的路径。如果存在路径从当前状态节点到一个标记的数字还大于零的状态转移连线的起始状态节点,从所有满足该条件的起始状态节点中选择一个,从步骤I中保存的任意两个可达节点的最短路径中找到当前状态节点到所选大于零的状态转移连线的起始状态节点的最短路径,将该路径记录在遍历路径中,路径中经历的连线上的数字减一。被选择的大于零的连线的起始状态节点作为当前节点,进入步骤5。在扩展的状态机图上遍历的方法,其特征在于,先确定下一状态,再确定进入该下一状态的输出函数。在扩展的状态机图上遍历的方法,其特征在于,选择下一状态的选择条件按优先级从高到低的排序为:优先选择没有走过的状态转移和状态、选择在当前条件下可实现该状态转移的、选择该状态转移上标记数字大的、选择该状态转移上已减掉的数字小的、选择该状态转移上可实现的输出函数的种类数字大的、随机选择。在扩展的状态机图上遍历的方法,其特征在于,选择输出函数时,备选输出函数集合是连接到选定的下一状态的输出函数路径集合。选择的优先级从高到低的排序为:优先选择没有走过的输出函数路径、选择当前条件下可实现的输出函数、选取位置靠上的路径即路径图中判断条件处于较高优先级的路径。在扩展的状态机图上遍历的方法,其特征在于,记录遍历集合中每条路径经过各节点时状态转移的可实现性、选择的输出函数、输入信号与内部变量的约束条件、该输出函数对内部变量值的影响。需要产生具体输入信号值时,按照约束条件产生。需要计算输出信号和内部变量时,根据所选输出函数设计的功能计算输出信号和内部变量。在扩展的状态机图上遍历的方法,其特征在于,选择标记数字大于零的状态转移连线的起始状态节点时优先级从高到低的排序是:优先选择从当前状态节点到各大于零的状态转移连线的起始状态节点的最短路径中路径长度最短的、选择从该起始状态节点所有状态扇出连线上大于零的数字的总和最大的、选择从当前状态节点到各大于零的状态转移连线的起始状态节点的最短路径中路径上大于零的数字的总和最大的,随机选择。在扩展的状态机图上遍历的方法,其特征在于,可实现性的判断由是否可以产生满足该路径选择中所有约束条件的数据为依据。在扩展的状态机图上遍历的方法,其特征在于,对于选定的状态转移和输出函数,如果输入信号的生成不可实现,则用符合选定状态转移和输出函数的内部变量值替换当时内部变量的实际值,生成输入信号,继续向后计算,同时本文档来自技高网...
【技术保护点】
一种扩展的状态机图及其构建方法,其特征在于包括:1)状态集合、状态转移集合、状态转移条件集合分别用带有状态名的圆圈、带箭头的曲线、曲线上转移条件的文字表示。2)收集并分类每个状态中涉及的输入信号、内部变量、输出信号、输出函数。3)对于每个状态中的每个输出函数,收集和记录实现该输出函数对输入信号和内部变量的要求,以及该输出函数输出时所影响的内部变量与输出信号。4)将每个状态中的每个输出函数,按照输出后的下一状态分类。即该状态的状态扇出数目为输出函数的分类数目。5)在每个状态圆圈中,构建影响输出函数选择,由输入信号和内部变量取值约束构成的,具有优先级先后顺序的路径图。
【技术特征摘要】
【专利技术属性】
技术研发人员:谢峥,罗永贵,宋建龙,伍国斌,李姮乐,
申请(专利权)人:李姮乐,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。