面向对象的检查器作为DO-254设计保证中覆盖驱动验证的第一步

H. Carter, T. Fitzpatrick, P. Williams
{"title":"面向对象的检查器作为DO-254设计保证中覆盖驱动验证的第一步","authors":"H. Carter, T. Fitzpatrick, P. Williams","doi":"10.1109/DASC.2018.8569591","DOIUrl":null,"url":null,"abstract":"ASIC devices deployed in avionics systems continue to grow in complexity presenting verification challenges that must be addressed to ensure safe deployment. DO-254 recommends a requirements driven verification approach for these ASIC devices under test (DUTs). One of the simplest., and most obvious implementations of this recommendation is the construction of directed testcase libraries with each testcase corresponding to a specific ASIC design requirement. The one to one correspondence between testcases and design requirements makes the testcases easy to track in requirements based projects. However, this intentional one to one mapping between testcases and requirements buries much of the inherent value of the testcase library. While multiple requirements are usually exercised in each testcase, only one is intentionally checked. Bugs in the exercised secondary design requirements will not be detected if they do not impact operation of the primary requirement addressed by the test case. The one to one correspondence between testcases and requirements may also hide bugs that are caused by (perhaps unintended) interactions between two or more design requirements. Constrained random coverage driven verification, (CRCDV), a widely adopted verification methodology, addresses these and other shortcomings of directed testing by exercising and checking multiple design features in parallel. CRCDV consists of three steps: 1. Randomizing stimulus, including internal configuration parameters as well as external inputs, to the DUT; 2. constructing checkers-decoupled from the stimulus generation in step 1-used to detect errors in the DUT's functionality by observing only the inputs and outputs of the DUT; and 3. Cataloging, through functional coverage, the randomly generated stimulus, (again decoupled from the stimulus generation of step 1)., applied to the DUT to ensure that it covers a sufficient portion of the DUT's stimulus space. While CRCDV is a powerful and valuable methodology, making the move to this approach all at once can be a daunting and expensive prospect. What might not be immediately apparent is that there is unexploited randomness built into even pure directed testing verification environments. This randomness is inherent because various secondary device features are utilized in testing the primary feature of a test case. This randomness, however, typically remains hidden-its value not leveraged-because while the secondary features are exercised in ways that were perhaps not emphasized in the test cases where the secondary feature was the primary focus., in typical directed test suites., there are no checks for the correct operation of these secondary features. This paper outlines a small, but very valuable first step in the move to CRCDV: transferring existing directed testing checks into an object oriented, (OO), memory cloud where they can be independently utilized by all existing testcases. Because the methodology described requires no changes to existing testcases it enables changing to a more powerful verification technique without sacrificing existing verification intellectual property. At the same time, the hidden value inherent in testing multi-requirement interactions is realized. The methodology presented can be briefly summarized as follows. Standalone SystemVerilog objects encapsulating protocol monitors are implemented, and interfaced to the each of the DUT buses. These monitors create both read and write transaction objects describing traffic on these buses. The transaction objects are broadcast by analysis ports that can be subscribed to by any other object supporting the same port interface. All testcase checks corresponding to a single feature are collected into a single class corresponding to that feature; these classes will be instantiated as the OO checkers. In the most simplistic implementation these checkers filter bus transactions looking for the exact conditions created in their associated directed testcases. When these conditions are detected, the check is performed. More generic implementations can be constructed to check the feature under all conditions. Finally, the testbench environment is modified so that checker objects defined by these classes are instantiated, attached to the appropriate bus monitors via their associated analysis ports, and execute their checks. Because the modifications are performed in the testbench environment that serves as a framework for the entire testcase library, these object-oriented checks function transparently during every simulation with no modifications required to the existing testcase code. Tracking OO verification checks as primary artifacts derived from design requirements instead of verification testcases will also be discussed as a topic for further study.","PeriodicalId":405724,"journal":{"name":"2018 IEEE/AIAA 37th Digital Avionics Systems Conference (DASC)","volume":"135 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Object Oriented Checkers as a First Step Towards Coverage Driven Verification in DO-254 Design Assurance\",\"authors\":\"H. Carter, T. Fitzpatrick, P. Williams\",\"doi\":\"10.1109/DASC.2018.8569591\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"ASIC devices deployed in avionics systems continue to grow in complexity presenting verification challenges that must be addressed to ensure safe deployment. DO-254 recommends a requirements driven verification approach for these ASIC devices under test (DUTs). One of the simplest., and most obvious implementations of this recommendation is the construction of directed testcase libraries with each testcase corresponding to a specific ASIC design requirement. The one to one correspondence between testcases and design requirements makes the testcases easy to track in requirements based projects. However, this intentional one to one mapping between testcases and requirements buries much of the inherent value of the testcase library. While multiple requirements are usually exercised in each testcase, only one is intentionally checked. Bugs in the exercised secondary design requirements will not be detected if they do not impact operation of the primary requirement addressed by the test case. The one to one correspondence between testcases and requirements may also hide bugs that are caused by (perhaps unintended) interactions between two or more design requirements. Constrained random coverage driven verification, (CRCDV), a widely adopted verification methodology, addresses these and other shortcomings of directed testing by exercising and checking multiple design features in parallel. CRCDV consists of three steps: 1. Randomizing stimulus, including internal configuration parameters as well as external inputs, to the DUT; 2. constructing checkers-decoupled from the stimulus generation in step 1-used to detect errors in the DUT's functionality by observing only the inputs and outputs of the DUT; and 3. Cataloging, through functional coverage, the randomly generated stimulus, (again decoupled from the stimulus generation of step 1)., applied to the DUT to ensure that it covers a sufficient portion of the DUT's stimulus space. While CRCDV is a powerful and valuable methodology, making the move to this approach all at once can be a daunting and expensive prospect. What might not be immediately apparent is that there is unexploited randomness built into even pure directed testing verification environments. This randomness is inherent because various secondary device features are utilized in testing the primary feature of a test case. This randomness, however, typically remains hidden-its value not leveraged-because while the secondary features are exercised in ways that were perhaps not emphasized in the test cases where the secondary feature was the primary focus., in typical directed test suites., there are no checks for the correct operation of these secondary features. This paper outlines a small, but very valuable first step in the move to CRCDV: transferring existing directed testing checks into an object oriented, (OO), memory cloud where they can be independently utilized by all existing testcases. Because the methodology described requires no changes to existing testcases it enables changing to a more powerful verification technique without sacrificing existing verification intellectual property. At the same time, the hidden value inherent in testing multi-requirement interactions is realized. The methodology presented can be briefly summarized as follows. Standalone SystemVerilog objects encapsulating protocol monitors are implemented, and interfaced to the each of the DUT buses. These monitors create both read and write transaction objects describing traffic on these buses. The transaction objects are broadcast by analysis ports that can be subscribed to by any other object supporting the same port interface. All testcase checks corresponding to a single feature are collected into a single class corresponding to that feature; these classes will be instantiated as the OO checkers. In the most simplistic implementation these checkers filter bus transactions looking for the exact conditions created in their associated directed testcases. When these conditions are detected, the check is performed. More generic implementations can be constructed to check the feature under all conditions. Finally, the testbench environment is modified so that checker objects defined by these classes are instantiated, attached to the appropriate bus monitors via their associated analysis ports, and execute their checks. Because the modifications are performed in the testbench environment that serves as a framework for the entire testcase library, these object-oriented checks function transparently during every simulation with no modifications required to the existing testcase code. Tracking OO verification checks as primary artifacts derived from design requirements instead of verification testcases will also be discussed as a topic for further study.\",\"PeriodicalId\":405724,\"journal\":{\"name\":\"2018 IEEE/AIAA 37th Digital Avionics Systems Conference (DASC)\",\"volume\":\"135 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2018 IEEE/AIAA 37th Digital Avionics Systems Conference (DASC)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/DASC.2018.8569591\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 IEEE/AIAA 37th Digital Avionics Systems Conference (DASC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/DASC.2018.8569591","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

在航空电子系统中部署的ASIC设备的复杂性不断增加,提出了必须解决的验证挑战,以确保安全部署。DO-254建议对这些被测ASIC设备(dut)采用需求驱动的验证方法。最简单的方法之一。这个建议最明显的实现是用每个测试用例与特定的ASIC设计需求相对应的定向测试用例库的构建。测试用例和设计需求之间的一对一对应使得测试用例在基于需求的项目中易于跟踪。然而,这种测试用例和需求之间的一对一映射隐藏了测试用例库的许多固有价值。虽然在每个测试用例中通常执行多个需求,但只有一个被有意检查。如果次要设计需求中的错误不影响测试用例处理的主要需求的操作,那么它们将不会被检测到。测试用例和需求之间的一对一对应关系也可能隐藏由两个或更多设计需求之间的交互(可能是无意的)引起的错误。约束随机覆盖驱动验证(CRCDV)是一种被广泛采用的验证方法,它通过并行地练习和检查多个设计特征来解决定向测试的这些缺点和其他缺点。CRCDV分为三个步骤:随机刺激,包括内部配置参数和外部输入,DUT;2. 构建检查器——与步骤1中的刺激生成解耦——用于通过仅观察被测器的输入和输出来检测被测器功能中的错误;和3。通过功能覆盖,将随机生成的刺激(再次与步骤1的刺激生成解耦)应用于被试体进行编目,以确保其覆盖被试体刺激空间的足够部分。虽然CRCDV是一种强大而有价值的方法,但一次性转向这种方法可能是一项艰巨而昂贵的任务。可能不是很明显的是,即使是纯粹的定向测试验证环境中也存在未开发的随机性。这种随机性是固有的,因为在测试用例的主要特征时使用了各种次要设备特征。然而,这种随机性通常是隐藏的——它的价值没有被利用——因为次要特性在次要特性是主要焦点的测试用例中可能没有被强调。,在典型的定向测试套件中。,没有检查这些次要功能的正确操作。本文概述了向CRCDV迁移的一个很小但非常有价值的第一步:将现有的定向测试检查转移到面向对象(OO)的内存云中,在那里它们可以被所有现有的测试用例独立地利用。由于所描述的方法不需要对现有的测试用例进行更改,因此可以在不牺牲现有的验证知识产权的情况下更改为更强大的验证技术。同时,实现了多需求交互测试的内在隐藏价值。所提出的方法可以简单概括如下。实现了封装协议监视器的独立SystemVerilog对象,并与每个DUT总线相连。这些监视器创建描述这些总线上的流量的读和写事务对象。事务对象通过分析端口广播,可以被支持相同端口接口的任何其他对象订阅。所有与单个特性相对应的测试用例检查被收集到与该特性相对应的单个类中;这些类将被实例化为OO检查器。在最简单的实现中,这些检查器过滤总线事务,寻找在其关联的定向测试用例中创建的确切条件。当检测到这些条件时,执行检查。可以构造更多的通用实现来检查所有条件下的特性。最后,修改测试台架环境,以便实例化由这些类定义的检查器对象,通过它们相关的分析端口附加到适当的总线监视器,并执行它们的检查。因为修改是在作为整个测试用例库框架的测试台架环境中执行的,所以这些面向对象的检查在每个模拟过程中都是透明的,不需要对现有的测试用例代码进行修改。跟踪OO验证检查作为源自设计需求的主要工件,而不是验证测试用例,也将作为进一步研究的主题进行讨论。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Object Oriented Checkers as a First Step Towards Coverage Driven Verification in DO-254 Design Assurance
ASIC devices deployed in avionics systems continue to grow in complexity presenting verification challenges that must be addressed to ensure safe deployment. DO-254 recommends a requirements driven verification approach for these ASIC devices under test (DUTs). One of the simplest., and most obvious implementations of this recommendation is the construction of directed testcase libraries with each testcase corresponding to a specific ASIC design requirement. The one to one correspondence between testcases and design requirements makes the testcases easy to track in requirements based projects. However, this intentional one to one mapping between testcases and requirements buries much of the inherent value of the testcase library. While multiple requirements are usually exercised in each testcase, only one is intentionally checked. Bugs in the exercised secondary design requirements will not be detected if they do not impact operation of the primary requirement addressed by the test case. The one to one correspondence between testcases and requirements may also hide bugs that are caused by (perhaps unintended) interactions between two or more design requirements. Constrained random coverage driven verification, (CRCDV), a widely adopted verification methodology, addresses these and other shortcomings of directed testing by exercising and checking multiple design features in parallel. CRCDV consists of three steps: 1. Randomizing stimulus, including internal configuration parameters as well as external inputs, to the DUT; 2. constructing checkers-decoupled from the stimulus generation in step 1-used to detect errors in the DUT's functionality by observing only the inputs and outputs of the DUT; and 3. Cataloging, through functional coverage, the randomly generated stimulus, (again decoupled from the stimulus generation of step 1)., applied to the DUT to ensure that it covers a sufficient portion of the DUT's stimulus space. While CRCDV is a powerful and valuable methodology, making the move to this approach all at once can be a daunting and expensive prospect. What might not be immediately apparent is that there is unexploited randomness built into even pure directed testing verification environments. This randomness is inherent because various secondary device features are utilized in testing the primary feature of a test case. This randomness, however, typically remains hidden-its value not leveraged-because while the secondary features are exercised in ways that were perhaps not emphasized in the test cases where the secondary feature was the primary focus., in typical directed test suites., there are no checks for the correct operation of these secondary features. This paper outlines a small, but very valuable first step in the move to CRCDV: transferring existing directed testing checks into an object oriented, (OO), memory cloud where they can be independently utilized by all existing testcases. Because the methodology described requires no changes to existing testcases it enables changing to a more powerful verification technique without sacrificing existing verification intellectual property. At the same time, the hidden value inherent in testing multi-requirement interactions is realized. The methodology presented can be briefly summarized as follows. Standalone SystemVerilog objects encapsulating protocol monitors are implemented, and interfaced to the each of the DUT buses. These monitors create both read and write transaction objects describing traffic on these buses. The transaction objects are broadcast by analysis ports that can be subscribed to by any other object supporting the same port interface. All testcase checks corresponding to a single feature are collected into a single class corresponding to that feature; these classes will be instantiated as the OO checkers. In the most simplistic implementation these checkers filter bus transactions looking for the exact conditions created in their associated directed testcases. When these conditions are detected, the check is performed. More generic implementations can be constructed to check the feature under all conditions. Finally, the testbench environment is modified so that checker objects defined by these classes are instantiated, attached to the appropriate bus monitors via their associated analysis ports, and execute their checks. Because the modifications are performed in the testbench environment that serves as a framework for the entire testcase library, these object-oriented checks function transparently during every simulation with no modifications required to the existing testcase code. Tracking OO verification checks as primary artifacts derived from design requirements instead of verification testcases will also be discussed as a topic for further study.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信