VA ■爨 【技术研发】 硬件系统逻辑设计的测试方法探析 黄俊呜(武汉科技学院王东 武汉430074) 湖北摘要: 任何硬件产品在其开发研制过程中都要进行测试,以此判断产品的功能和性能是否合格。在基于硬件系统逻辑测试总的策略的基础上,根据黑盒测 试的原理,提出关于硬件系统逻辑设计的测试模型,并详细分析其中模块,对于硬件系统测试工作具有一定帮助。 关键词: 硬件系统;逻辑设计测试;黑色测试;测试模块 中图分类号:TP3文献标识码:A文章编号:1671--7597(2010)0610116一O1 0引言 硬件系统逻辑的测试也称为仿真,仿真过程是用来验证设计者的设计 思想是否正确,以及设计实现过程中各种分布参数引入后,其设计的功能 是否依然正确无误。功能仿真(前仿真)是指在一个设计中,在设计实现 前对所创建的逻辑进行的验证其功能是否正确的过程。时序仿真(后仿 真)是使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况 下对电路的行为作出实际的估价。时序仿真使用的仿真器和功能仿真使用 的仿真器可以是相同的,所需的流程和激励也是相同的。因而功能仿真和 时序仿真的设计过程和操作方法基本相同[1,2]。对硬件系统逻辑测试总的 策略是:先使用黑盒测试方法设计基本的测试方案,再用白盒方法补充一 些必要的测试方案,具体的测试过程还要结合传统的硬件测试理论进行。 1硬件系统逻辑设计的溯试模型 硬件系统逻辑测试的基本任务是生成测试波形,将测试波形应用于被 测逻辑,并分析其输出的正确性。按照这些要求,功能测试是在其接口进 行。因此测试模块的基本任务是:产生模拟激励(波形),然后将输入激 励加入到测试模块并收集其输出响应,最后将响应输出与期望值进行比 较。由于芯片不能独立工作,因此它需要一些外围器件如时钟、存储器件 等的支持。测试时,要模拟这些外围器件的功能,这些模拟器件称为支持 库。根据黑盒测试的原理,提出关于硬件系统逻辑设计的测试模型,这种 模型既可适用在单元测试中,辅以白盒测试找出详细设计的问题,也可适 用在集成测试中,找出各模块的接口问题,还可适用在系统测试中,找出 系统设计的功能是否符合设计要求。 1 1被测逻辑模块。该模块是被测试的对象,一般是封装好的一段代 码或者IP核。根据它的功能就可以推导出要测试的内容以及预期的结果。 被测逻辑的测试内容包括功能测试和性能测试。 1)功能测试:功能测试是整个测试的核心内容,它着重于核实被测 试对象能否按计划运行,提供需要的数据或信号。这种测试的目标是核实 数据的接受、处理是否正确,以及其时序是否符合要求。此类测试基于黑 盒技术,在接口处与被测逻辑进行交互,并对交互的输出或结果进行分 析,以此来核实应用程序及其内部进程。如果测试中发现问题可进一步结 合白盒测试方法进行测试。 2)性能测试:性能测试包括对安全性、容量、负载、强度等与时间相 关的需求进行评测和评估。性能测试的目标是核实性能需求是否都已满足。 ①安全性测试:安全性测试主要包括两个方面:程序级别的安全性和系统级 别的安全性 程序级别的安全性是指在单元测试中,确保被测模块只有特定 的逻辑组合信号才可以触发特定的功能模块,使程序按照预定的状态机运 转。系统级别的安全性是指在集成测试中确保触发系统中各个子模块的接 E1信号具有唯一性,即实现某种功能的接口信号只能触发并进入特定的子模 块。②容量测试:侧重于核实测试对象对于大量数据的处理能力,以确定是 否达到了将使设计逻辑发生故障的极限。容量测试还将确定测试对象在给定 时间内能够持续处理的最大负载或工作量。⑧负载测试:用于在测试的系统 保持不变的情况下,核实和评估系统在不同负载下操作极限的可接受性。 强度测试:实施和执行此类测试的目的是找出因资源不足或资源争用 而导致的错误。侧重于确保系统在遇到异常条件时按预期方向运行。 1.2激励产生模块。该模块是产生被测逻辑模块的输入信号。在某些 复杂的系统中,该模块还要受到比较模块的控制,根据其反馈信号对测试 激励进行调整。在设计该模块产生的测试激励数据时需要从如下三个方面 进行考虑。 深度:表示在测试中所使用数据的容量或数量。宽度:表示测试数据 中数据的变化程度,创建更多的记录就可以增加测试数据的深度。范围: 表示测试数据与测试目标的相关性,它和测试深度和测试宽度相关。具有 许多数据并不意味着其数据一定正确。与处理测试数据的宽度一样,必须 确保测试数据和测试目标相关,也就是说,需要有支持特定测试目标的测 试数据。 1.3支持库。测试时所需要的支持模块,它的作用主要是:模拟产生 被测逻辑模块所需要的输入信号:接收被测逻辑输出的信号以及对这些接 收的信号做出响应。实际中可以使用EDAI具软件中自带的标准库,用户也 可以对自己所需要的库元件进行建模。库元件的建模主要根据系统设计文 档或者电路结构。 1 4预期功能模块。该模块是被测逻辑模块的预期功能,它的作用是 提供和实际输出进行比较所需要的数据。这些数据主要根据被测逻辑的设 计文档或功能说明进行设计,设计预期数据要结合要求设定。如果被测逻 辑简单,预期功能可能只体现为几个输入输出波形,这时该模块就可以简 化,测试时只需在被测逻辑模块的接口处观察其输入输出波形是否符合要 求即可。如果被测逻辑复杂,它的输入输出数据可能需要存放在文件或者 数据库中,然后再人工对这些数据进行分析,或者使用其他工具软件对这 些数据进行自动分析,从而判断被测逻辑是否实现了某种功能。 1.5输出比较模块。该模块主要实现将预期功能和实际输出的波形或 数据进行比较,判断被测逻辑模块的功能正确与否。进而判断硬件系统逻 辑设计是否符合要求。比较时可以采用人工方式逐一核对数据,也可利用 计算机实现自动比较。比较的结果可以作为一种反馈信号提供给激励产生 模块用于激励的调整。如果实际输出信号和预期功能模块中与之相对应的 功能得到验证,就说明浚模块实现了某种功能。当所有模块的功能测试完 毕则整个测试也就结束,否则则进入下一次迭代测试。 2测试过程 硬件系统逻辑设计的测试包含功能仿真和时序仿真阶段。在功能仿真 阶段中,首先需要对每个程序模块单独进行测试,这项测试称为单元测 试。当每个模块都完成了单元测试之后,测试的下一步工作就是要保证各 模块之间的接口定义和处理的正确性。集成测试就是要将各模块集成起 来,检查各模块在一起工作时是否满足系统和程序规范的要求。当集成测 试结束之后,下一步就是系统测试阶段。系统测试阶段结束之后,作为开 发人员已经确信被测系统运行良好,各项功能和性能符合对系统需求的理 解。下一步工作是实现时序仿真,时序仿真旨在将所做逻辑设计综合到具 体的器件中。时序仿真通过之后就可以将设计下载到实际芯片中进行板级 调试了。 3结论 硬件系统的测试是保证其可靠性的主要手段,是硬件系统丌发过程中 最艰巨最繁重的任务。 。 参考文献: [1]杨德才、陈光禹、谢永乐,阵列乘法器通路时延故障的内建自测试 [J].电子与信息学报,2009,31(1). [2]梁明、陈涛,对弹载计算机进行单元测试的方法研究[J].战术导弹技 术,2008,(3).