验证复用技术确保设计符合预定要求
发布时间:2008/5/26 0:00:00 访问次数:438
    
    
    系统级芯片是由已经设计好的模块组成的,设计人员事先已考虑到了各个方面,并对每一部分都进行了检验,现在只需要把这些模块组合起来,集成为一个完整的系统即可。但问题是怎样使集成好的系统能像各个模块一样可靠完整呢?怎样以最快的速度完成呢?如何才能在一项工作完成之后再集成另一个芯片时,尽管每一步都不同也不会觉得又是完全从头开始呢?本文介绍利用验证复用技术对芯片进行测试,确保设计符合原来预定的要求。
    
    在设计复用中,验证就像汽车的刹车一样,我们都知道如何制作结构模块,怎样使接口标准化并使用兼容的后端流程,但恰恰是验证使我们无法再高兴下去。的确,我的模块和你的模块都有很好的测试平台和测试软件,然而将它们放在一起时,却需要新的测试平台和全新的测试,每一个集成步骤都好像要重新来过。验证不像其它设计任务那样可以累积,这就是为什么随着设计变得越来越大,花在验证上的时间也越来越多。下面介绍一些方法使验证工作能够重复使用,这样项目的集成就是可以预测的而不是掉入一个无底洞。我们以国家半导体公司的geode gx2为例,许多此类想法都是针对geode系列集成处理器开发的,而gx2项目也证明了这种方法非常成功。
    
    验证环境包含许多部分,如测试平台组件、测试软件、随机测试生成器、测试计划、规定条件和覆盖范围分析,要想解决集成瓶颈,上述所有部分在下一结构层次也必须可重复使用,这些验证部分的建立和调试时间将比花在设计模块本身上面的还要多,如果不能重复利用,这部分工作将难以想象。
    
    验证复用既不简单也不轻松,需要做大量工作以使验证环境不仅好而且可以复用,但结果是很明显的。下面首先介绍在模块级如何进行验证,然后说明需要验证组合模块时如何复用模块验证工作。
    
    测试平台组件
    
    测试平台组件可以激励设计并观察评估其反应特性。测试平台必须是针对待测模块的,我们发现通过将测试平台以某种规范方式组织起来,并使各组件之间通信方式标准化之后,将可在下一级集成时再利用这些组件。
    
    一个模块规范测试平台包括测试阅读器、处理器、监视器、仿真器和检验器。测试阅读器读取测试语言并将其转化为一系列命令转给处理器,处理器驱动待测模块输入信号,监视器观察模块的反应特性并按照事件序列做出报告。
    
    仿真器是设计参考模块,我们用c++编写仿真程序,这些仿真程序是对事件处理精确而不是对周期精确。给仿真程序输入和处理器相同的命令序列,它将产生我们认为模块应该具有的反应序列。
    
    检验器得到从仿真程序输出的事件数据流和从监视器输出的事件数据流,将两者进行比较并将不匹配作为错误报告出来。
    
    许多设计人员习惯于在测试平台中使用监视器和处理器,却将仿真器和检验器视为额外的工作。编写自查测试或使用判定语句和智能监视器来查找错误确实比较简单,但我们发现编写仿真程序和傻瓜式监视器及检验器常常比编写智能监视器更加简单,它使得测试不必检查其自身,这样随机测试更加容易。
    
    这种测试平台组织方法的真正优越性还体现在集成上。例如可以凑出一个测试平台,用另一个模块的仿真程序来驱动处理器而不用自己的测试程序,这样可以在不更改模块的前提下运行另一模块的所有测试。或者也可以使用两个监视器、两个仿真器和两个检验器分别说明两个模块,如果原模块输入是点对点来自于另一个模块,则只要去掉原处理器运行另一个模块测试程序即可;如果原模块输入是多路驱动器总线,则可以保留两个处理器同时进行两个测试,每个测试的内容从各模块测试程序中选取。通过在模块级测试平台上做一些额外工作,可以得到能在集成测试平台使用的组件。
    
    这种复用性能可一直延伸到结构最上层,通过将仿真器和处理器混合匹配在一起,你可以测试任意组合形式模块而无需设计新的测试平台组件。
    
    geode gx2设计小组针对每个主要模块使用一种测试平台,如存储器控制器、pci接口、处理器内核和显示控制器(图1),我们将各部件组合起来做成组合模
    
    
    系统级芯片是由已经设计好的模块组成的,设计人员事先已考虑到了各个方面,并对每一部分都进行了检验,现在只需要把这些模块组合起来,集成为一个完整的系统即可。但问题是怎样使集成好的系统能像各个模块一样可靠完整呢?怎样以最快的速度完成呢?如何才能在一项工作完成之后再集成另一个芯片时,尽管每一步都不同也不会觉得又是完全从头开始呢?本文介绍利用验证复用技术对芯片进行测试,确保设计符合原来预定的要求。
    
    在设计复用中,验证就像汽车的刹车一样,我们都知道如何制作结构模块,怎样使接口标准化并使用兼容的后端流程,但恰恰是验证使我们无法再高兴下去。的确,我的模块和你的模块都有很好的测试平台和测试软件,然而将它们放在一起时,却需要新的测试平台和全新的测试,每一个集成步骤都好像要重新来过。验证不像其它设计任务那样可以累积,这就是为什么随着设计变得越来越大,花在验证上的时间也越来越多。下面介绍一些方法使验证工作能够重复使用,这样项目的集成就是可以预测的而不是掉入一个无底洞。我们以国家半导体公司的geode gx2为例,许多此类想法都是针对geode系列集成处理器开发的,而gx2项目也证明了这种方法非常成功。
    
    验证环境包含许多部分,如测试平台组件、测试软件、随机测试生成器、测试计划、规定条件和覆盖范围分析,要想解决集成瓶颈,上述所有部分在下一结构层次也必须可重复使用,这些验证部分的建立和调试时间将比花在设计模块本身上面的还要多,如果不能重复利用,这部分工作将难以想象。
    
    验证复用既不简单也不轻松,需要做大量工作以使验证环境不仅好而且可以复用,但结果是很明显的。下面首先介绍在模块级如何进行验证,然后说明需要验证组合模块时如何复用模块验证工作。
    
    测试平台组件
    
    测试平台组件可以激励设计并观察评估其反应特性。测试平台必须是针对待测模块的,我们发现通过将测试平台以某种规范方式组织起来,并使各组件之间通信方式标准化之后,将可在下一级集成时再利用这些组件。
    
    一个模块规范测试平台包括测试阅读器、处理器、监视器、仿真器和检验器。测试阅读器读取测试语言并将其转化为一系列命令转给处理器,处理器驱动待测模块输入信号,监视器观察模块的反应特性并按照事件序列做出报告。
    
    仿真器是设计参考模块,我们用c++编写仿真程序,这些仿真程序是对事件处理精确而不是对周期精确。给仿真程序输入和处理器相同的命令序列,它将产生我们认为模块应该具有的反应序列。
    
    检验器得到从仿真程序输出的事件数据流和从监视器输出的事件数据流,将两者进行比较并将不匹配作为错误报告出来。
    
    许多设计人员习惯于在测试平台中使用监视器和处理器,却将仿真器和检验器视为额外的工作。编写自查测试或使用判定语句和智能监视器来查找错误确实比较简单,但我们发现编写仿真程序和傻瓜式监视器及检验器常常比编写智能监视器更加简单,它使得测试不必检查其自身,这样随机测试更加容易。
    
    这种测试平台组织方法的真正优越性还体现在集成上。例如可以凑出一个测试平台,用另一个模块的仿真程序来驱动处理器而不用自己的测试程序,这样可以在不更改模块的前提下运行另一模块的所有测试。或者也可以使用两个监视器、两个仿真器和两个检验器分别说明两个模块,如果原模块输入是点对点来自于另一个模块,则只要去掉原处理器运行另一个模块测试程序即可;如果原模块输入是多路驱动器总线,则可以保留两个处理器同时进行两个测试,每个测试的内容从各模块测试程序中选取。通过在模块级测试平台上做一些额外工作,可以得到能在集成测试平台使用的组件。
    
    这种复用性能可一直延伸到结构最上层,通过将仿真器和处理器混合匹配在一起,你可以测试任意组合形式模块而无需设计新的测试平台组件。
    
    geode gx2设计小组针对每个主要模块使用一种测试平台,如存储器控制器、pci接口、处理器内核和显示控制器(图1),我们将各部件组合起来做成组合模
上一篇:充分利用PXI特性构建测试系统
上一篇:通用控制器功能验证中的仿真应用