在以覆盖率为导向的验证理论中如何有效结合断言和覆盖点
发布时间:2008/5/27 0:00:00 访问次数:977
    
    断言和功能覆盖率犹如一个硬币的两面,在一个rtl的设计中,两者都提供了详尽的可观察点。断言提供了功能正确与否的信息,而功能覆盖率则显示出对设计行为的监测。两者都代表了对设计意图的描述,它们以仿真或形式验证的方式来确认。
    断言已被运用于rtl为主的侦错中,在确认错误及使错误区域化的方面有显著的效用。除此之外,它还可以缩短整个设计时程,使除错更为便利。然而断言所能提供的优点,除了设计的功能验证外,还可用在仿真过程中,改进事件发生的可观测性以及覆盖点。此种程度的可观测性,往往在部署一个以覆盖率为导向的验证理论中,具有决定性的影响。
    
    
    
    在一个以覆盖率为导向的验证理论中,一个设计的验证主要是以手写而随机产生的激励向量为主,使用者自己定义覆盖点,以确认所有重要的行为以及边际状况。在规格中所描述的部分都能被测试到,未能涵盖的测试点通称为覆盖的漏洞,此项信息提供了一些反馈,并在下次产生激励向量或随机向量时使用,以期能增进验证的完整性。在此理论中,断言通常结合端对端的检查,以确认所有的行为都能符合设计的规格。
    将断言应用在检查设计的优点是众所皆知的,额外的优点可以补足功能覆盖率的不足,却常常被设计工作小组所忽略。这与将段言置于设计之中或接口上以捕捉设计的意图是相似的,此工作就是尝试去发现在设计中感兴趣的部分,或是与功能覆盖点有关的部份,因此设计与验证的工作小组应能了解到,如果他们能有效地利用断言与功能覆盖率,将此两种功能结合在一起,可以省去许多时间与精力。
    本篇文章中将会使用一个真实的设计案例,其中包含片上总线、一个嵌入式处理器和一些标准接口,来描述如何结合断言与覆盖率,并使用断言库或是标准的断言语法,例如像是system verilog assertions (sva)或property specification language (psl)。一旦断言和覆盖点被撷取到,他们将会被用来确认所有必要和随机测试的激励,以期能发挥仿真的最大效能。他们也会被用来确认之前的设计或是第三方的ip是否被充分验证。
    在使用以断言覆盖率为基础的理论中,设计者必须考虑到不仅是如何能撷取到断言,更重要的是断言和被捕捉到的覆盖点是否充分?这些理论中的部分内容必须和被成为“断言密度(assertion density)”的覆盖指针相配合使用。
    结合断言密度,并以断言为基础的覆盖率,提供了完整的rtl验证过程,其中结合了白盒子以可观测性为主,以及黑盒子以规格为基础的优点。此种结合也使设计小组在验证时,能使用更完整的覆盖模型,以期及早发现错误。 以覆盖率为导向的验证
    一个以覆盖率为导向的验证理论的目标就是使验证的效率达到极致,同时也是在减少冗长且没有效率的验证工作,并且可以藉由选定一个或数个指标来衡量验证完成的进度来实现。如图1所示,一个以仿真为基础的cdv验证理论,可由抽象方式来表示为一个验证、侦错和覆盖率测量的反复渐进的过程。
    在实际应用上,使用者总尝试去验证设计的rtl是否能符合功能上的规格。理论上,应该有一个自动化的方法,去比较功能与rtl实现的差异。遗憾的是大部分设计的规格都是以不可实现的方式来表示的。在此处,一个验证计划列举了在设计中必须被检查到的所有功能,同时所有的边际状况也应该被涵盖。
    验证计划会列举出一连串必须被检查的功能行为,覆盖率则是检测此行为仿真执行的是否够彻底?为了落实计划,需藉由仿真或其它验证的过程(例如形式验证),同时借着测试激励,就可观察出设计的反应。若未能正确反应设计,一个除错流程必须能确认错误发生的原因,以便修改rtl。倘若设计符合预期,需藉由覆盖率的信息来提供rtl内部运行的可观测性,决定是否验证计划已被执行到令人满意的质量。
    在以仿真为基础的cvd理论中,许多的先期工作都集中在验证过程,简而言之也就是说能迅速地增进覆盖率之测试向量的产生,但是很重要却被人所忽略的是如何仔细地去评量覆盖率——测试向量产生的根基。 总体覆盖率模型
    测量覆盖率是所有验证方法重要的一环,覆盖率的测量为下阶段验证的工作提供反馈,
    
    断言和功能覆盖率犹如一个硬币的两面,在一个rtl的设计中,两者都提供了详尽的可观察点。断言提供了功能正确与否的信息,而功能覆盖率则显示出对设计行为的监测。两者都代表了对设计意图的描述,它们以仿真或形式验证的方式来确认。
    断言已被运用于rtl为主的侦错中,在确认错误及使错误区域化的方面有显著的效用。除此之外,它还可以缩短整个设计时程,使除错更为便利。然而断言所能提供的优点,除了设计的功能验证外,还可用在仿真过程中,改进事件发生的可观测性以及覆盖点。此种程度的可观测性,往往在部署一个以覆盖率为导向的验证理论中,具有决定性的影响。
    
    
    
    在一个以覆盖率为导向的验证理论中,一个设计的验证主要是以手写而随机产生的激励向量为主,使用者自己定义覆盖点,以确认所有重要的行为以及边际状况。在规格中所描述的部分都能被测试到,未能涵盖的测试点通称为覆盖的漏洞,此项信息提供了一些反馈,并在下次产生激励向量或随机向量时使用,以期能增进验证的完整性。在此理论中,断言通常结合端对端的检查,以确认所有的行为都能符合设计的规格。
    将断言应用在检查设计的优点是众所皆知的,额外的优点可以补足功能覆盖率的不足,却常常被设计工作小组所忽略。这与将段言置于设计之中或接口上以捕捉设计的意图是相似的,此工作就是尝试去发现在设计中感兴趣的部分,或是与功能覆盖点有关的部份,因此设计与验证的工作小组应能了解到,如果他们能有效地利用断言与功能覆盖率,将此两种功能结合在一起,可以省去许多时间与精力。
    本篇文章中将会使用一个真实的设计案例,其中包含片上总线、一个嵌入式处理器和一些标准接口,来描述如何结合断言与覆盖率,并使用断言库或是标准的断言语法,例如像是system verilog assertions (sva)或property specification language (psl)。一旦断言和覆盖点被撷取到,他们将会被用来确认所有必要和随机测试的激励,以期能发挥仿真的最大效能。他们也会被用来确认之前的设计或是第三方的ip是否被充分验证。
    在使用以断言覆盖率为基础的理论中,设计者必须考虑到不仅是如何能撷取到断言,更重要的是断言和被捕捉到的覆盖点是否充分?这些理论中的部分内容必须和被成为“断言密度(assertion density)”的覆盖指针相配合使用。
    结合断言密度,并以断言为基础的覆盖率,提供了完整的rtl验证过程,其中结合了白盒子以可观测性为主,以及黑盒子以规格为基础的优点。此种结合也使设计小组在验证时,能使用更完整的覆盖模型,以期及早发现错误。 以覆盖率为导向的验证
    一个以覆盖率为导向的验证理论的目标就是使验证的效率达到极致,同时也是在减少冗长且没有效率的验证工作,并且可以藉由选定一个或数个指标来衡量验证完成的进度来实现。如图1所示,一个以仿真为基础的cdv验证理论,可由抽象方式来表示为一个验证、侦错和覆盖率测量的反复渐进的过程。
    在实际应用上,使用者总尝试去验证设计的rtl是否能符合功能上的规格。理论上,应该有一个自动化的方法,去比较功能与rtl实现的差异。遗憾的是大部分设计的规格都是以不可实现的方式来表示的。在此处,一个验证计划列举了在设计中必须被检查到的所有功能,同时所有的边际状况也应该被涵盖。
    验证计划会列举出一连串必须被检查的功能行为,覆盖率则是检测此行为仿真执行的是否够彻底?为了落实计划,需藉由仿真或其它验证的过程(例如形式验证),同时借着测试激励,就可观察出设计的反应。若未能正确反应设计,一个除错流程必须能确认错误发生的原因,以便修改rtl。倘若设计符合预期,需藉由覆盖率的信息来提供rtl内部运行的可观测性,决定是否验证计划已被执行到令人满意的质量。
    在以仿真为基础的cvd理论中,许多的先期工作都集中在验证过程,简而言之也就是说能迅速地增进覆盖率之测试向量的产生,但是很重要却被人所忽略的是如何仔细地去评量覆盖率——测试向量产生的根基。 总体覆盖率模型
    测量覆盖率是所有验证方法重要的一环,覆盖率的测量为下阶段验证的工作提供反馈,
上一篇:高性能DSO梳理串行数据流
上一篇:如何实现纳米级芯片设计的时序收敛