作者:雷绍充,梁锋,邵志标
摘要:研究构成仿真环境的策略及软硬件协同验证环境的接口实现,介绍了用于功能和性能验证的软件伪随机测试生成方法。该方法对SoC和复杂的板机系统进行可测性设计的优化验证,大大降低测试成本,缩短了系统开发周期。
关键词:验证;仿真;伪随机测试:软硬件协同验证
中图分类号:TN407 文献标识码:A 文章编号:1003-353X(2004)04-0086-04
1 引言
在深亚微米以及复杂百万门级芯片设计的推动下,通过集成各种IP核,系统级芯片(SoC)的功能更加强大,同时也推动着IC设计的自动化和测试技术的发展,但是也带来了一系列的设计和测试的问题。例如来自PC、蜂窝电话和互联网基础设施市场的巨大芯片需求量已迫使制造厂家要求其测试系统提供更大的吞吐量和更好的通用性,在性能和测试效率两方面都能提供一个完整解决方案的测试设备。系统级芯片设计人员也面临着越来越大的压力,需要不断增强其设计和服务的灵活性,更加仔细地验证整个系统[1]。
传统的测试方法例如自动测试图形生成(ATPG)已应付不了测试的需求,因此应该研究探索新的测试方法,及早发现设计上的错误。仿真则成为验证的核心,因为最复杂的问题例如对芯片控制和通信问题只能通过应用仿真之类的技术才能发现,同时仿真可加快软件开发和系统调试的速度。在仿真基础上的硬软件协同验证使我们不仅能改进系统性能,还缩短了设计周期。它可以让软件设计人员在仿真结果上开始设计[2]。仿真的另外的优越性就是可以大大降低对复杂的测试设备的依赖程度,减少测试设备投资的成本[5]。
开发和应用仿真环境已成为SoC设计人员进行设计验证的重要方法。本文旨在研究探索一种高效、成本甚低的VLSI测试验证方法,为复杂的VLSI特别是SoC的可测性设计提供优化和测试验证的基础,为VLSI测试装置的开发和测试实施提供基本方法。
2 仿真环境构造方法
SoC一般包含处理器、数模转换电路、模数转换电路、存储器和数字逻辑电路等部分[4],仿真应为这些部分的设计提供一个与真实环境相同或相似的验证环境。仿真系统还应通过正确的信息转换和映射模型,使得样机的HDL与芯片HDL一样或只有很少的改动,这样可以在真实状态下测试芯片设计。开发的用户交互系统可实现测试开发平台、EDA工具和ATE之间各种测试生成和分析数据流无缝连接,使之既能实现在线高速测试,又不改变设计,各种算法和故障诊断可实时修改。因此仿真系统的建立应解决好以下几个问题:取代芯片外部接口模型的真实硬件;仿真板的构造;建立验证样机的HDL代码与芯片的HDL代码尽量相同的模型;主处理器的选择:软硬件协同验证环境的建立;用户交互系统的开发。
仿真板一般有三种不同方法可构造。第一种方法是设计一种黑箱系统,它能自动将一大型设计分割到大量FPGA或定制处理器中。这种结构的主要优势在于能处理非常大型的设计,系统的成本很高。第二种方法是将设计分割为多个小块,并用带有FPGA的定制电路板仿真每个小块,具有成本低、运行速度快的优点,但由于FPGA之间是通过硬件互连的,因此FPGA的I/O边界必须保持固定。第三种方案是借助商用的可编程电路板(FPCB)譬如Aptix的MP4板,这种电路板允许插入Aptix FPGA模块,外部设备能直接通过可插入区域或通过电路板边上的I/O连接器连至原型电路板。通过研究分析我们认为用第二种方法构造仿真系统适合我国大部分单位情况。第二种方法定制的仿真板应可垂直插接多个FPGA的器件,人工将设计划分为多个适于单个FPGA实现的模块。每个FPGA器件都需要一个说明如何从数据库中提取必要HDL模块的包装文件。这一包装文件也可同时包括任何所需的接口逻辑,如双向驱动器。FPGA之间的连接在一个顶层仿真文件(一个不带其它逻辑的纯粹网表)中定义。如果在仿真电路板上还包含FPGA之外的其他器件,就必须创建定义这些器件I/O结构的HDL模块。为使仿真卓有成效,仿真前将RTL综合到门级格式中。当门级网表在模拟中通过一些基本功能测试后,网表就转向仿真器。仿真逻辑、模拟阶段运行的逻辑和最终芯片中的逻辑三者在功能上等效。软件流程通过从原始设计数据库中提取逻辑来确保这种等效性。另外,要考虑的接口是主处理器,其选择的原则主要是:可直接贴装到开发板上、有SDRAM接口、多I/O、与主机连接方便而且通信速度较高。当然可以选择商用的DSP软核作为嵌入式处理器,但我们选择的是具有JTAG口的商用DSP器件,这样选择的原因是商用DSP器件有比较成熟的开发工具,与开发板和周边器件的接口比较完善,带来的益处是成本低、易设计升级。硬件构造考虑的最后一个接口是外置存储器接口。SDRAM芯片能以比实时慢的速度运行,也有一些现成转接器可将SDRAM芯片直接装到目标IC板上,这样可以让存储器接口在真正SDRAM芯片上测试控制和刷新方案,而不是用一个模型或构建的一个模块。外部接口工作完成后,还要对一些内部硬件主要是板上总线进行修改,使得包括DSP和存储器时钟在内的样机系统以正常速度运行,同时增加DSP等待状态。
从上面的讨论我们总结出仿真系统的结构,如图1所示。系统主要由目标系统的外部输入电路、外部输出电路、 多个模块、DSP开发板、SDRAM、JTAG棒、PCI卡和主机组成。

3 软件伪随机测试生成方法
除了基本的兼容性测试外,测试环境还应支持测试开发。伪随机测试方法是一种高效率的智能化测试方法,利用伪随机处理发生器可以验证外围设备的核心功能和性能。从这些非常有用的随机方法中可以发现限制性随机情况、循环情况、边界情况和一些加权算法。另外,通过研究多个结构化参数之间的固有关系,可以发现改进随机测试效率的方法。
对于任意一个m位的线形反馈移位寄存器,根据原始多项式C0X0+C1X1+C2X2+Λ十CmXm的系数Ci,i=0,1,2,…,m,连接反馈所形成的伪随机序列发生电路,均可生成最大长度(2m-1)的测试矢量[3]。对于4位寄存器来说,原始多项式为X4+X2+1,对应的IE型电路如图2(a),EE型电路如图2(b)。

对于矢量应用下面关系:

如果采用硬件电路构成伪随机发生器,则仿真系统需要另外设计专门的生成电路。若用软件的方法根据式(1)生成测试图形,所需的测试生成时间长,数据存储容量也相当大。例如,用DSP根据式(1)生成长度为m位的伪随机测试矢量,所需的周期数为24m个,测试矢量的存储空间为m×2m-3个字节,m=16时周期数和测试矢量的存储空间分别为264和32M,可见对于仿真来说这两种难以有效。
研究图2(b)EE型电路生成的序列我们发现其具有这样的特征:当前的序列Ak是对先前的序列Ak-1向右移位一次,然后修改第一位a0。研究表明对于所有的根据原始多项式系数构成的EE型伪随机生成电路来讲,这样的结论是成立的[6]。
当EE型伪随机生成电路初始化值给定以后,a0(1),a0(1),…,a0(2m-1),的值也就可以随之得以确定了,这里我们定义为特征位值。如果我们把计算好的特征位值存放在存储器中的话,m位的最大长度序列所需的存储空间为2m-3个字节,m=16为2M个字节。采取把特征位值存放在存储器方法,可以把每个序列的运算次数由23m个减为仅仅3个简单的算逻运算。据此我们得到用软件生成伪随机序列的方法:
(1)把先前(或初始化)序列右移一位;
(2)从存储单元读取当前的特征位值:
(3)根据特征位值修改第一位。
这样的伪随机生成算法可适应在线测试的要求。
4 硬件协同验证环境
协同验证就是将一个专用处理器模型和一个运行于逻辑模拟器中的嵌入式系统模型结合在一起,在嵌入式系统模型上执行目标系统软件。专用处理器采用具有IEEEll49.1JTAG测试存取口的DSP,通过PCI模块和JTAG棒组成的JTAG口连接到主机,如图3所示。主机通过标准的JTAG信号TMS,TRST,TDI,TDO,TMS,TCK来与专用处理器交换信息,进而测试连接到专用处理器上的目标模块。

要验证的目标模型通过硬件描述语言(HDL)创建,然后加载到定制的FPGA模板上,最后将可执行目标系统软件的镜像文件加载到嵌入式系统模型存储器中,就像在实际系统样机上那样运行,这样就能在得到物理样机以前对软件进行测试。
除了基本的兼容性测试外,测试环境还应支持测试开发,通过用户交互软件可改变多种处理参数,如命令类型、脉冲长度、目标地址、器件请求速率等。由于PCI和JTAG棒子系统本质上是一个多层次的硬件/软件系统,因此可把诊断和器件驱动器与硬件仿真模型集成起来,这样可以简化软件的开发和调试,同时还可发现接口方面的故障。
硬件平台和HDL改动完成之后,再开发DSP器件驱动器,并为PC编写图形用户界面(GUI),该GUI允许直接进入主处理器接口及程序,用这种方法测试可验证的预缺省设置及用户选项。为便于调试,逻辑分析仪利用FPGA调试特性可直接连接到DSP接口、外部输入、外部输出和SDRAM接口。硬件、软件和调试平台都完成以后,就可以着手开始验证工作了。
我们在协处理器开发过程中是采用上述结构进行仿真的,效果良好,从而探索出高效、成本甚低、具有自主知识产权的VLSI测试验证方法。
对SoC芯片全面验证的仿真结构的研究-技术文章对SoC芯片全面验证的仿真结构的研究1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

