新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于SystemC描述的嵌入式系统的自动化验证

基于SystemC描述的嵌入式系统的自动化验证

作者: 时间:2012-04-05 来源:网络 收藏

CppUnit 测试框架在这里的职责是对测试过程的自动化封装。基础的CppUnit 测试框架,无法与测试点收集器建立联系,并且不提供连续状态的断言机制。本文的方法,一方面让测试用例引用的测试点收集器对象与AOP 植入的收集器对象保持一致,然后将测试点收集器的数据发送到测试用例中来;另一方面,用锁的形式实现测试输入与测试响应异步过程同步化的机制,以适应测试过程同步化的特点。连续输入输出的测试,可以通过扩展测试点收集器的储存能力,收集全部连续输出,统一通知测试单元,完成连续信号的期望判断。在有黄金模型的联合模拟框架下,连续输入输出的测试,也可以由测试点收集器即时收集响应,即时通知测试单元,与黄金模型输出的即时期望数据比较。

的TLM 和简单片上总线的测试实例

语言的一个重要特征是支持系统的交易级建模( TLM) 和验证。在系统级设计与验证中,交易(t ransaction) 成为越来越重要的一个概念。一般来说,交易可以理解为系统模型中2 个模块之间的一次数据交换。这个交换与采用的协议无关,通常不涉及具体的总线时序等细节。最常见的是读交易和写交易,以保证模块之间同步操作是事件交易。另外,模块之间的中断也是一种交易。TLM 模型较RTL (register t ransfer level ) 级容易编写,而且模拟速度较RTL 级提高了100~1 000 倍,每秒钟能仿真至少10 万个交易。TLM 的一个重要用途,是可以作为RTL 级验证的黄金参考模型,系统级测试用例可以重用;另外, TLM 模型对于软件开发已足够精确,因此可以在硬件RTL 级设计的同时,并行在TLM 模型上进行嵌入式软件的开发,加速开发流程。

TLM 模型包含了事件之间的正确顺序,而没有底层的物理延时,可以为软件设计者提供一些初步的性能分析。另外,含有时间信息的TLM 模型可对系统结构做出一些评价,从而探索和优化系统结构。TLM 的设计一般都带有一个总线通信结构, 完成各个功能模块之间的相互通信。TLM 的主要任务就是相应的通信抽象,实现通信机制。一个简单片上的总线系统包括主从设备接口、快/ 慢速存储器通道、通用串口通道、仲裁器接口和仲裁器模块等。测试的目的一是验证各个模块之间通信实现的正确性,为软硬件协同设计提供正确的TLM 模型;二是可以评估系统的体系结构,如确定系统的资源如储存器和FIFO(first in first out) 的大小等。图5 给出了一个简单片上总线的测试实例。

在这个例子中, 由AspectC ++ 实现的Aop Test Probe 直接加在了各通信接口的通信方法上, 各通信方法在调用之前或之后, 都被Aop Test Probe 准确捕获; 然后由TraceRecord 类收集相应的信息,再将信息通过接口NotifyTest 通知测试用例SimpleBusTestCase ;测试用例实例化被测体SimpleBus , 准备输入数据, 然后锁定等待TraceRecord 发过来的响应数据,通过与期望的断言比较, 完成一个测试过程。 这里, SimpleBus 与TraceRecord 的关联是由方面编译器编译Aop Test Probe 而植入的。测试完毕,就可以不再用方面编译器编译而去掉这个关联。被测体在发布时不会由于测试代码的冗余而影响效率和占用内存。

通过这个实例可以发现,该自动化测试方法虽然由于AOP 的方面编译带来了更长的编译时间,但AspectC ++ 实现了与C/ C + + 同样高效的代码同时带来了更加明显的优点,比如消除测试代码的冗余,减少出错的可能,满足测试要求的灵活性和可移植性等;自动化测试框架的结合,更是大大提高了测试过程的效率。所以该方法可为模型的验证和评估提供十分有效的自动化手段。

结语

本文在对 描述的基础上,提出了一种全新的自动化验证方法。该方法采用AOP 技术,并结合ATP 的使用。该方法支持测试自动化,并实现了测试代码的分离和封装,随时可满足被测系统的测试要求;对嵌入式系统的系统模型,可自动化、重复性地验证,能够满足系统模型在较高抽象级的验证和评估要求。面向方面的思想和技术在各方面的应用,已经得到人们越来越多的关注,实际上,可以进一步引用AOP 技术到嵌入式系统的设计过程中,为系统设计提供更好的模块化和复用性。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭