一种集成电路设计验证方法

文档序号:6601779阅读:161来源:国知局
专利名称:一种集成电路设计验证方法
技术领域
本发明涉及一种集成电路设计验证方法。
背景技术
IC芯片设计包括设计部分和验证部分,其中验证部分大约要消耗整个 设计项目资源(时间、人力等)的70%。而且随着设计复杂度的不断提升,需要的测试用例 呈几何倍数增长,单凭人力的思考和记录难以全面制造出测试用例,难以达到合适的功能 测试覆盖率,而覆盖率的高低直接影响到流片风险的大小。所以我们迫切需要一种能够减 轻手动编写测试用例工作量的方法,将设计验证人员从大量重复性的工作中解放出来。发明内容本发明的主要目的在于提供一种集成电路设计验证方法,这种状态机 结构体模型自动遍历产生测试用例的方法,将系统规格书或设计需求中原始数据提取为具 有独立功能的事务和控制事务的顺序流程,将整合的信息映射到状态机结构体模型,自动 产生事务级测试用例。状态机结构体模型通过对整个测试用例产生过程的控制,调整测试 用例的结构和顺序,不断向合适功能覆盖率逼近。本发明公开了一种集成电路设计验证方法,包括如下步骤第一步,把提取于系统规格书或设计需求的事务级资源检查表和控制事务的顺序 流程,通过记录和算法映射到状态机结构体模型中;第二步,通过状态机结构体模型自动产生事务级测试用例;第三步,所述事务级测试用例作为测试平台Testbench的测试向量,实现集成电 路的设计验证。本发明公开的验证方法,还包括如下从属技术特征在所述第二步中,状态机结构体模型首先通过调度事务的状态机模块对所述事务 进行调度和控制,调整所述事务的顺序流程,产生输入激励的队列。在所述第二步中,所述状态机结构体模型特色之一是具有一份状态机被生成器和 参考模型检查器同时可以使用的属性。通过生成器把所述输入激励的队列发送给参考模型 检查器,所述参考模型检查器监控所述生成器发出的信息。在所述第二步中,所述生成器还根据监听到的测试用设计模块的反馈信息,调整 所述输入激励的队列的产生过程;所述参考模型检查器还对比所述测试用设计模块输出的 反馈信息。在所述第二步与第三步之间还包括以下步骤A、覆盖率统计模块通过记录、统计 所述状态机结构体模型中状态机模块包含的状态列表覆盖率和状态转换列表覆盖率,以及 事务相关的标签列表覆盖率来评估覆盖程度,并反馈给状态机结构体模型本身。在所述第二步中,所述生成器代码和参考模型检查器代码通过在计算机软件(例 如VCS等)平台上的运行产生事务级测试用例。在所述第一步中,所述事务级资源检查表是一个输入敏感量表、输出敏感量表、内部敏感量表和功能函数表。在所述第一步中,所述控制事务的顺序流程是所述事务级资源检查表具体事务的传输过程。本发明公开的一种集成电路设计验证方法,将整合的设计要求信息映射到状态机结构体模型,自动产生事务级测试用例。状态机结构体模型通过对整个测试用例产生过程 的控制,调整测试用例的结构和顺序,不断向更高功能覆盖率逼近。本发明把状态机结构 体模型与事务级资源检查表和调度事务的顺序控制模块相结合,通过状态机结构体模型的 调度、控制、产生所有事务级的测试用例,提升验证效能。本发明通过对状态机结构体模型 中调度事务的状态机和传输事务的覆盖保证了整个验证中的规格书所涉及功能的覆盖率。 本发明能够不断反馈、调节测试用例,不断逼近合格的覆盖率,在验证中达到事半功倍的效 果。


图1为本发明的集成电路设计验证方法总体架构图。图2为本发明的集成电路设计验证方法中定序器的架构图。图3为本发明的集成电路设计验证方法中定序器到状态机结构体模型的具体映 射示意图。图4为本发明的状态机结构体模型的生成器、参考模型检查器与测试用设计模块 DUT (Design Under Test)的验证方案。图5为本发明的不含DUT的状态机结构体模型的生成器、参考模型检查器验证方案。图6为本发明的状态机结构体模型根据覆盖率统计模块反馈而修正的流程图。图7为本发明的事务级测试用例的结构示意图。
具体实施方式
下面结合附图和具体实施方式
对本发明作进一步详细说明。此处 所描述的具体实施例不是对本发明的限定,而是对本发明的解释。如图1所示为本发明的集成电路设计验证方法的总体架构图,图1中100为系统 规格书或设计需求Specification/Requirement,101为定序器Sequencer,102为状态机结 构体模型 StateMachineConstruct,103 为测试平台 Testbench 的代码 TB (Testbench) Code, 104为覆盖率统计模块Coverage,105为测试用例Testcase。本发明将系统规格书或设计 需求100中原始数据提取为具有独立功能的事务级资源检查表和控制事务的顺序流程,将 整合的信息映射到状态机结构体模型102,自动产生事务级测试用例105。从系统规格书或设计需求Specification/Requirement 100到定序器Sequencer 101的过程,是通过人工分析系统规格书或设计需求lOOSpecification/Requirement获得 定序器 Sequencer 101。系统规格书或设计需求Specification/Requirement 100由系统设计人员提供, 或者是需要设计实现的产品标准。在这个过程中,系统规格书或设计需求Specification/ Requirement 100作为原始的材料,包括了所有的信息,将这些信息记录、归类、整合可以 得出资源信息_事务级资源检查表Checklist和控制信息_调度事务的顺序控制模块 Sequence_Control,这两部分之和称为定序器Sequencer 101。如图2所示为本发明的集成电路设计验证方法中定序器的架构图。定序器 Sequencer 101包括调度事务的顺序控制模块Sequencejontrol 201和事务级资源检查 表Checklist 202两大部分。事务级资源检查表Checklist 202是一簇彼此独立又关联的 功能模块集,这些模块在时序上受调度事务的顺序控制模块SeqUence_C0ntr0l 201的控制,调度事务的顺序控制模块Sequence_C0ntr0l 201通过对事务级资源检查表Checklist 的合理调度可以完成某项具体的事务。事务级资源检查表Checklist在事务级上的整合和 衔接,配合调度事务的顺序控制模块SequendControl 201的调度,通过记录和算法映射 到状态机结构体模型StateMachineConstruct 102。如图3所示为本发明的集成电路设计验证方法中定序器SequencerlOl到状态机 结构体模型StateMachineConstruct 102的具体映射方法示意图,定序器Sequencer 101 通过算法映射获得状态机结构体模型StateMachineConstruct 102,完成映射的方法可以 通过数据库或人工干预进行计算。
定序器Sequencer 101包含调度事务的顺序控制模块Sequence Control 201 和事务级资源检查表Checklist 202,事务级资源检查表Checklist 202包含事务 Transaction 300、标签列表Tag_List 301。标签列表Tag_List 301是一组用来描述 Transaction 300中不同字段(如地址、数据等)属性的标签,可以看作是不同角度对事务 Transaction 300 的描述。事务Transaction 300指具体的事务级信息交互过程,可以是两个、多个功能模 块间的信息交互。调度事务的顺序控制模块SequendControl 201负责调度整个事务级信息交互 过程,保证过程的有序、合法进行。状态机结构体模型StateMachineConstruct 102包含调度事务的状态机 StateMachine302、事务Transaction 300和产生输入激励的队列Queue 303。调度事务 的状态机StateMachine 302作为事务Transaction 300的调度和控制,输入激励的队列 Queue 303存放调整顺序后的事务Transaction 300,作为测试平台Testbench的测试用例 Testcase0下面详细描述状态机结构体模型StateMachineConstruct 102到测试平台 Testbench的代码TB Code 103的过程。根据测试平台Testbench的代码TB Code 103验 证环境代码的具体情况,图4为本发明的状态机结构体模型与DUT在有测试用设计模块DUT 时,生成器 Gen_SMC (Generator StateMachineConstruct)、参考模型检查器 RM_Checker_ SMC (ReferenceModule Checker StateMachineConstruct)和 DUT 的验证方案。这里测试 用设计模块DUT的作用是最终评估本验证方法作用和效能的对象,Testcase是要注入到其 中。图5为本发明的不含DUT时,生成器Gen_SMC和参考模型检查器RM_Checker_SMC的验 证方案。如图4和图5所示,状态机结构体模型StateMachineConstruct 102在验证平 台上划分为生成器Gen_SMC和参考模型检查器RM_Checker_SMC两份状态机结构体模型 StateMachineConstruct代码。生成器Gen_SMC主控测试用例Testcase的发送和监听DUT 的反馈信息,以调整Testcase的输入顺序和其他的关系。参考模型检查器RM_CheCker_SMC 收到生成器Gen_SMC发出的Testcase后,做出相应筛选、标记等行为,与DUT输出的行为对 比,对比过程由计算机程序完成。这里StateMachineConstruct是数学模型,TB Code 103是在实际软件上写的代 码,从StateMachineConstruct模型可以编写出TB Code 103。换言之,TB Code 103代码 包含两部分生成器Gen_SMC代码和参考模型检查器RM_Checker_SMC代码。
下面详细描述状态机结构体模型StateMachineConstruct 102到覆盖率统计模 块CoVeragel04的过程。如图6所示为本发明的状态机结构体模型根据覆盖率反馈的流程 图。通过记录、统计状态机结构体模型StateMachineConstruct 102中调度事务的状态机 StateMachine 302模块包含的状态列表State覆盖率和状态转换列表State_Transition 覆盖率,事务Transaction 300模块中的标签列表Tag_List301覆盖率可以评估整个验 证的覆盖程度。从而统计出所有State和Statejransition的覆盖率,也就是调度事 务的状态机StateMachine的覆盖包括所有State、所有Statejransition的覆盖;事务 Transaction的覆盖包括所有Tag_List的覆盖、所有传输事务Transaction的覆盖。下面详细描述测试平台Testbench的代码TB Code 103到测试用例Testcase 105 过程。以状态机结构体模型StateMachineConstruct 102为原型的生成器Gen_SMC和参考 模型检查器RM_Checker_SMC的代码通过在计算机软件(例如VCS等)平台上的运行产生 事务级 Testcase 105。如图7所示为本发明的事务级的测试用例的结构示意图,测试用例Testcase中包 括多组不同的事务。为了在项目早期就能对功能测点进行全面完整的分析,同时对测试用例进行有 效的预测和管理,提高功能验证的自动化程度,本发明提供了一种基于状态机结构体模型 自动产生测试用例的验证方法。本状态机结构体模型自动遍历模型验证方法的资源来源 于系统规格书或设计需求Specification/Requirement,通过对系统规格书或设计需求 Specification/Requirement的分析、整合,提取出定序器Sequencer,其中包括事务级资 源检查表Checklist和调度事务的顺序控制Sequence_Control,将定序器Sequencer经过 记录、算法映射到状态机结构体模型StateMachineConstruct中。状态机结构体模型StateMachineConstruct由三部分构成负责控制、调度事务 的状态机StateMachine、不同传输类型的事务Transaction和作为DUT输入激励的队列 Queue0从验证平台角度该状态机结构体模型特色之一是具有一份状态机被生成器和参 考模型检查器同时可以使用的属性。评估该验证方法效能的依据为状态机结构体模型StateMachineConstruct映射 到覆盖率统计模块Coverage的过程,称之为反馈机制。通过记录、统计状态机结构体模型 StateMachineConstruct中各个模块的覆盖率可以预估该方法测试用例的覆盖情况,并通 过干预、调整状态机结构体模型StateMachineConstruct不断使其产生的测试用例向合格
的覆盖率逼近。在本发明的实施例中,本方法包括对系统规格书或设计需求Specification/Requirement功能点进行结构化分析,将信息按照思路记录模型记录下来。通过系统规格 书或设计需求Specification/Requirement中的信息记录、分析、整理、归纳,提取出对应 事务级资源检查表Checklist和控制事务级资源调度事务的顺序控制Sequence_C0ntr0l。 我们认为所有事务级功能模块的基本单位是一个包含输入敏感量表input_SenSitiVity_ list、输出敏感量表 output_sensitivity_list> 内部敏感量表 internal_sensitivity_ list和功能函数表functionjist的事务级资源检查表Checklist,而通过这些事务级资 源的检查表Checklist在流程上的调度可以用来描述具体的事务传输过程。这些事务根据不同的属性、角度划分为不同种事务Transaction和标签列表Tag_List。在本发明的实施例中,状态机结构体模型StateMachineConstruct是核心, 该模型在验证平台实现上由两份状态机结构体模型StateMachineConstruct代码组 成,生成器Gen_SMC的状态机结构体模型StateMachineConstruct代码和参考模型检 查器RM_Checker_SMC状态机结构体模型StateMachineConstruct代码。生成器Gen_ SMC的状态机结构体模型StateMachineConstruct代码作为主控单元用于产生测试用例 Testcase和监听DUT的反馈信息。参考模型检查器RM_CheCker_SMC的状态机结构体模型 StateMachineConstruct作为参考、检查单元,用来监控生成器Gen_SMC发出的Testcase和 对比DUT输出的信息。本发明的有益效果是,对系统规格书或设计需求Specification/Requirement 的功能点进行结构化分析,在事务级把功能点梳理清晰,借助状态机结构体模 型StateMachineConstruct的自动遍历模型,产生出覆盖系统规格书或设计需求 Specification/Requirement功能点的Testcase,作为Testbench的测试向量,实现基于状 态机结构体模型自动产生事务级测 试用例Testcase的过程和方法。状态机结构体模型StateMachineConstruct与事务级资源检查表Checklist、调 度事务的顺序控制SequendControl的结合是本发明的亮点之一,主要通过状态机结构 体模型StateMachineConstruct调度、控制、产生所有事务级的Testcase,将人力从书写海 量Testcase的过程中解脱,提升验证效能。亮点之二是通过对状态机结构体模型StateMachineConstruct中调度事务的 状态机StateMachine和传输事务Transaction的覆盖可以保证整个验证中的系统规格 书或设计需求Spec i fi cat ion/Requirement所涉及的功能覆盖率。其中调度事务的状 态机StateMachine的覆盖包括所有State、所有Statejransition的覆盖;传输事务 Transaction的覆盖包括所有标签列表Tag_list的覆盖、所有事务Transaction的覆盖。
权利要求
一种集成电路设计验证方法,其特征在于包括如下步骤第一步,把提取于系统规格书或设计需求的事务级资源检查表和控制事务的顺序流程,通过记录和算法映射到状态机结构体模型中;第二步,通过状态机结构体模型自动产生事务级测试用例;第三步,所述事务级测试用例作为测试平台Testbench的测试向量,实现集成电路的设计验证。
2.如权利要求1所述的验证方法,其特征在于,在所述第二步中,状态机结构体模型首 先通过调度事务的状态机模块对所述事务进行调度和控制,调整所述事务的顺序流程,产 生输入激励的队列。
3.如权利要求2所述的验证方法,其特征在于,在所述第二步中,所述状态机结构体模 型特色之一是具有一份状态机被生成器和参考模型检查器同时可以使用的属性。通过生成 器把所述输入激励的队列发送给参考模型检查器,所述参考模型检查器监控所述生成器发 出的信息。
4.如权利要求3所述的验证方法,其特征在于,在所述第二步中,所述生成器还根据监 听测试用设计模块的反馈信息,调整所述输入激励的队列的产生过程;所述参考模型检查 器还对比所述测试用设计模块输出的反馈信息。
5.如权利要求1所述的验证方法,其特征在于,在所述第二步与第三步之间还包括以 下步骤:A、覆盖率统计模块通过记录、统计所述状态机结构体模型中状态机模块包含的状 态列表覆盖率和状态转换列表覆盖率,和事务相关的标签列表覆盖率来评估覆盖程度,并 反馈给状态机结构体模型本身。
6.如权利要求4所述的验证方法,其特征在于,在所述第二步中,所述生成器代码和参 考模型检查器代码通过在计算机软件平台上的运行产生事务级测试用例。
7.如权利要求1所述的验证方法,其特征在于,在所述第一步中,所述事务级资源检查 表是一个输入敏感量表、输出敏感量表、内部敏感量表和功能函数表。
8.如权利要求1所述的验证方法,其特征在于,在所述第一步中,所述控制事务的顺序 流程是所述事务级资源检查表的具体事务的传输过程。
全文摘要
本发明涉及一种集成电路设计验证方法,包括如下步骤把提取于系统规格书或设计需求中包含事务级资源检查表和控制所述事务的顺序流程,通过记录和算法映射到状态机结构体模型中;通过状态机结构体模型产生事务级测试用例;所述事务级测试用例作为测试平台的测试向量,实现集成电路的设计验证。本发明将整合的设计要求信息映射到状态机结构体模型,自动产生事务级测试用例,提升了验证效能,将设计验证人员从大量重复性的工作中解放出来。
文档编号G06F17/50GK101833606SQ20101016311
公开日2010年9月15日 申请日期2010年3月30日 优先权日2010年3月30日
发明者刘芳, 张国栋, 杨伟才, 苏世祥, 谢峥, 连志斌, 黄瑞华 申请人:连志斌
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1