背景技术
在现今技术越来越发达,电路设计越来越复杂的时代,验证技术成为了电路设计领域中非常重要的一环。一般来说,C模型与CAD工具经常被拿来作为仿真电路概念与电路行为的仿真器,主要用来验证目标电路的一些基本功能。然而,当电路越来越复杂而又需要在短时间内验证完毕,或是需要对目标电路实时(real-time)的实际功能进行验证时,由于C模型或CAD工具都具有其本身的限制,皆无法达到令人满意的验证效果。举例来说,一个多媒体处理器,其本身需要在一秒之内处理三十个视频图框,若以前述的CAD工具进行模拟与验证工作将会花费非常长的时间,因此,在实际应用上,并不是一种可行的方法。
另一方面,概念性的设计行为一般是从C模型开始。由于C模型是运作在软件环境之中,因此需要依赖CPU加以执行。然而,如业界所习知,C模型本身也具有相当多的限制。举例来说,如果欲验证的目标系统,其输入数据非常频繁时,则若利用C模型来进行该目标系统的仿真时,往往需要花费非常惊人的时间。因此,在实际应用上,也很难利用C模型来验证前述目标系统的实时功能。
此外,另一种验证的做法是场式可程序化门阵列(field programmablegate array,FPGA)技术。场式可程序化门阵列技术是一种用集成电路做出的技术,由于场式可程序化门阵列技术是为场式可程序化的(fieldprogrammable),这是场式可程序化门阵列技术与其它芯片技术的最主要区别。所谓的场式可程序化是代表着使用者可以在设计与验证的过程中重复使用该芯片来修改设计。因此,场式可程序化门阵列技术具有可快速的重复使用,节省不可重复性工程费用(non-recurring engineering cost),进而节省了大量的时间与成本的优点;同时,场式可程序化门阵列技术也可提供实时验证的能力。但是,场式可程序化门阵列技术在实时应用中存在除错(debugging)能力不高的缺陷,需耗费大量的时间与成本。
发明内容
本发明的目的在于提供一种可节省大量的时间与成本的验证系统及其验证方法。
本发明的另一目的在于提供该验证系统的验证方法。
一种验证系统,其用来验证目标系统,该验证系统包括:来源代理器,其包括第一储存装置,用来储存多个测试数据串流,该来源代理器可接收至少一控制指令,并可执行下列操作之一,以响应接收到的该控制指令:输出多个测试数据中的一个以作为选择到的测试数据串流,以及搁置该选择到的测试数据串流的输出以使所述选择到的测试数据串流可于任一单位暂停;待测装置,其包括控制器及该目标系统,该待测装置耦合至该来源代理器,用来处理自该来源代理器输出的该选择到的测试数据串流,以产生输出数据串流;以及输出代理器,耦合至该待测装置,用来接收该输出数据串流,并根据该输出数据串流与预定数据串流执行验证操作。
一种用来验证目标系统的验证方法,该验证方法包含有:提供来源代理器,该来源代理器包括第一储存装置,用来储存多个测试数据串流,并可用来接收至少一控制指令;当接收到的该控制指令为传送数据的控制指令时,该来源代理器选择该多个测试数据串流中的一个测试数据串流,以将该测试数据串流作为选择到的测试数据串流;当接收到的该控制指令为输出数据的控制指令时,该来源代理器输出该选择到的测试数据串流;当接收到的该控制指令为搁置数据传输的控制指令时,该来源代理器搁置该选择到的测试数据串流的输出,以使所述选择到的测试数据串流可于任一单位暂停;提供待测装置,包括控制器及目标系统,利用该待测装置来处理自该来源代理器输出的该选择到的测试数据串流,以产生输出数据串流;提供输出代理器,以自该待测装置接收该输出数据串流,以及利用该输出代理器,根据该输出数据串流与预定数据串流执行验证操作。
在验证过程中,数据流控制是极为紧要的关键之一;当系统发生问题时,本发明验证系统及其验证方法所具有的流程控制能力可以立即地将验证程序暂停,以供电路设计者检查问题所在并且进行除错。因此,本发明验证系统及其验证方法可以节省大量的时间与成本。
具体实施方式
请参阅图1,图1为本发明验证系统的示意图。该验证系统100包括来源代理器(source agent)110,输出代理器(drain agent)120,以及待测装置(device under test,DUT)130。
其中,该待测装置130包括控制器、IDE接口150、160及目标系统170,该控制器可为中央处理器(central processing unit,CPU)140,该IDE接口150、160分别电连接至该中央处理器140,该目标系统170分别电连接至IDE接口150、160与中央处理器140。
该来源代理器110与输出代理器120可以分别以个人计算机来实现。在本实施例中,该来源代理器110包含有中央处理器111及第一储存装置112。而输出代理器120还包含有中央处理器121以及第二储存装置122。其中,该储存装置112、122可为任何形式的储存装置(譬如内存或是硬盘)。因此,该来源代理器110与该输出代理器120的处理能力皆可基于中央处理器111、121的运算能力与计算能力而提升。此外,该来源代理器110与该输出代理器120分别具有IDE接口113、123,以分别与该待测装置130的IDE接口160、150进行沟通。该目标系统170为欲验证的集成电路,或在一些实施例中,该目标系统170还可以用场式可程序化门阵列来实现。
如图1所示,该来源代理器110的第一储存装置112中储存有多个测试数据串流(或称之为测试型样)114,其可输入至该目标系统170,以作为该目标系统170的输入数据。此外,该输出代理器120的第二储存装置122储存有多个预定数据串流(或称之为预定型样)124。该预定数据串流124分别为该目标系统170接收到对应该测试数据串流114之后的理想输出结果。而该验证系统100的操作与功能将在以下的揭示中详述。
首先,中央处理器140用来作为控制器,其发出传送数据的控制指令CMDSEL通过该IDE接口160、113输入至该来源代理器110。当该来源代理器110的中央处理器111接收到该传送数据的控制指令CMDSEL之后,该中央处理器111便会从该第一储存装置112中选择测试数据串流114。接着,该中央处理器111便将选择到的测试数据串流114通过该IDE接口113、160传送至该待测装置130。因此,该目标系统170便可接收选择到的测试数据串流114,并且对选择到的测试数据串流114进行处理,以产生输出数据串流。
另一方面,该中央处理器140另通过该IDE接口150、123送出准备数据的控制指令至该输出代理器120,以准备对应前述选择到的测试数据串流114的预定数据串流。此外,该目标系统170产生的输出数据串流会通过该IDE接口150、123传递至该输出代理器120。该输出代理器120比较输出数据串流与已准备的其对应的预定数据串流的内容,以验证该目标系统170的功能。其中,该预定数据串流可为输出代理器120中内部第二储存装置122中的一个预定数据串流124,或由该输出代理器120的计算模块(图未示)根据准备数据的控制指令实时产生出来。
该中央处理器140具有控制该来源代理器110与待测装置130之间的数据传输,或控制该输出代理器120与待测装置130之间的数据传输的能力。举例来说,该中央处理器140可通过该IDE接口160、113发出控制指令至该来源代理器110,以在传输每N个测试数据串流之后,暂停该测试数据串流传输,其中N为一正整数。或者,该中央处理器140也可以在传输每M位的输出数据串流后,暂停该输出数据串流传输,其中M为一正整数。前述暂停测试数据串流与输出数据串流传输的能力,可以允许该目标电路170的设计能够更有弹性的进行验证与除错。
该中央处理器140具有控制该IDE接口150、160上数据传输的能力。举例来说,当该目标系统170在处理特定的测试数据串流114时,若发生一些处理上的问题(可能造成该输出代理器120的不匹配或造成该目标系统170运作上发生错误或闲置),此时,该目标系统170可以触发该中央处理器140发出搁置(suspend)数据传输的控制指令CMDX至来源代理器110,以搁置选择到的测试数据串流的传输,以达到中断该中央处理器140的目的。而当问题解决之后,该中央处理器140可以发出重新启动(resume)数据传输的控制指令CMDRE至来源代理器110,使该来源代理器110重新启动(resume)数据传输,以继续验证系统100的验证操作。
此外,该输出代理器120还具有流程控制的能力,换言之,该输出代理器120也可发出与流程控制有关的控制信号至来源代理器110,来进行流程控制。譬如,该来源代理器110输出数据至该待测装置130的速度可能过快,如此使得该输出代理器120没有办法及时的处理。通常,该输出代理器120是利用先进先出(first-in-first-out,FIFO)器缓冲架构,以处理来自待测装置130的数据。此时,如果该输出代理器120的输入数据速率过大时,前述先进先出缓冲器的剩余空间将会相对应地减少,而当先进先出缓冲器的剩余空间小于一个预定的闸值时,该输出代理器120便可得知其输入数据速率大过于本身所能够处理的能力。因此,该输出代理器120会发出搁置(suspend)数据传输的控制指令CMDX至来源代理器110,以搁置(suspend)其数据传输。通过上述的机制,便可以避免输出代理器120数据流量过大(overflow)或是数据过多(overload)的情形。如此一来,该输出代理器120便不会漏掉任何自待测装置130传送过来的数据,而正确地执行其验证功能。另一方面,只要该输出代理器120内部的先进先出缓冲器的剩余空间够大(譬如大于另一闸值时),该输出代理器120便可再一次的通过IDE接口160、150、113、123发出另一重新启动(resume)数据传输的控制指令CMDRE至来源代理器110,以重新启动其数据传输。
此外,除了触发来源代理器110之外,该输出代理器120也可以根据特定的需求,通过中央处理器140来控制该来源代理器110的传输速率。换言之,该输出代理器120可以通过IDE接口150、123发出指令至该中央处理器140,因此该中央处理器140便可以根据IDE接口150传送过来的指令,或根据直接从该待测装置130中的目标系统170传送过来的信息,相对应地发出控制指令至来源代理器110,以搁置或重新启动其数据传输。
此外,在数据比对/除错的过程中,也可能需要搁置该来源代理器110的数据传输。由于该输出代理器120主要的功能在于实时的进行数据验证,然而,在数据验证的过程之中,往往会发生目标系统170所输出的数据串流与相对应的预定数据串流不一致的情况。在这种状况之中,会需要暂停整个验证流程来进行除错(debug),直到除错完毕。而暂停验证流程首先必须完成的第一步骤便是暂停测试数据串流的数据传输,因此,在本实施例中,该输出代理器120可在此时发出搁置(suspend)数据传输的控制指令CMDX以暂停其它的组件(包括来源代理器110)。
由前面的揭示可知,本发明验证系统100提供了一个解决方案,来弥补场式可程序化门阵列所具有的缺点以及开发系统的盲点,而该验证系统100的要点在于其具有实时的除错功能,这使得系统/电路开发者在开发阶段能够完全地实时掌控流程以及其内容。
此外,本发明会实时的控制来源代理器110、待测装置130、以及输出代理器120之间的数据传输,因此整个验证系统100可以暂停在数据串流一个数据单位或一个特定的时间点上。换言之,本发明提供了一种小单位的流程控制:数据传输可以在数据(譬如一个特定的数据串流)的任一单位暂停。如前所述,中央处理器140可以在数据传输N个长度时,停止其数据传输。因此,使用者可以直接检查特定长度的数据,来检视错误所在。举例来说,开发者可以检视中央处理器的状况,目标系统170的状况,或是利用其它的分析模块来分析数据。
同时,前述的IDE接口113、160、150、123仅为本发明之一实施例,而非本发明的限制,在一些实施例中,也可分别称为第一、二、三、四接口。在实际应用上,只须接口具有传递控制指令的能力,本发明还可应用其它各种各样的传输接口(譬如ATA接口、其它标准/非标准接口、或是自订接口)。换句话说,前述的接口是指一种传输媒介,而接口的种类并非本发明的限制。
因此,本发明不但利用场式可程序化门阵列来达到快速重复应用,降低成本的目的,并且同时改善了场式可程序化门阵列在实时应用上的除错能力。