一种应用于芯片的仿真测试方法

文档序号:5948459阅读:719来源:国知局
专利名称:一种应用于芯片的仿真测试方法
技术领域
本发明涉及通信或电子领域的测试技术,尤其涉及一种一种应用于芯片的仿真测试方法。
背景技术
大规模逻辑/ASIC(专用集成电路)芯片设计中一般都有用来存储数据的缓存区,如FIFO(先进先出存储器)、外部数据存储器等,对这样的设计进行仿真验证时,必须构造测试向量来验证当数据缓存区处于临界状态(如满、溢出等状态)时芯片的处理方式是否正确。
目前,在大规模逻辑/ASIC仿真验证中,验证芯片数据缓存区临界状态的仿真测试方法一般是使用外部接口反压的方式。如图1所示的仿真环境中,被测芯片有外部数据缓存RAM(随机存储器),数据流从驱动器1经过被测芯片到驱动器2,要测试芯片数据缓存区临界状态,一般的做法是使用由外部接口提供的反压机制。这样的反压机制一般有两种,一是驱动器2输出反压信号full_2,实际中多是这种接口,如RGGI(简化的通用千兆接口)接口;二是由驱动器2通过总线dat_in2输出带流控信息的流控数据包通知被测芯片停发数据,如以太网接口MII(媒体无关接口)。这两种反压机制的效果是一样的,即驱动器2不接收芯片输出的数据,这自然就能将数据缓存区耗尽,使数据缓存区到达临界状态,达到测试的目的。
但是,上述技术的缺点是它的反压机制在有些场合无法实现或者实现起来效率不高。因为有的设计外部接口不提供带外的反压信号,也没有流控数据包协商流控,所以不能使用现有技术来验证芯片数据缓存区临界状态。另外,如下图所示,有的设计很复杂,由多个模块构成,其中有相当一部分模块都需要数据缓存区,如果要测试图中FIFO处于临界状态时芯片的处理是否正确,使用上面提到的方法从接口2进行反压,则需要后面的模块一级一级往上反压,即RAM_n首先存满数据,向上游模块输出fulln反压信号,一级一级往上,直到RAM_2存满数据,模块2向模块1输出full1反压信号,才能使FIFO达到临界状态;这样,仿真输入的数据量需要很多,仿真时间也得很长,这对仿真验证来说是非常不利的。

发明内容
本发明提供一种应用于芯片的仿真测试方法,以解决现有技术中输入仿真数据多、仿真时间过长的问题。
为解决上述问题,本发明提供如下的解决方案一种应用于芯片的仿真测试方法,所述芯片包括一个或多个模块,在其中一个模块上拥有数据缓存区,所述方法包括如下步骤(1)向所述的芯片发送测试数据;
(2)利用仿真器直接向所述数据缓存区所在的模块强制施加有效的反压信号,使所述的模块停止从所述数据缓存区读取数据;(3)仿真一段时间,使所述数据缓存区的存储容量达到临界状态后观察测试结果。
在步骤(2)中,是通过使用仿真器自带的脚本命令强制拉高或拉低反压信号而得到有效的反压信号。
在步骤(3)中所述的仿真一段时间是根据发送所述测试数据的速率和所述数据缓存区的容量来确定的。
在步骤(3)后还包括在所述数据缓存区的存储容量达到临界状态后通过设置断点来控制仿真器,使所述仿真器暂停仿真。
本发明通过直接向数据缓存区所在的模块强制施加有效的反压信号,使得仿真时间大大减少,提高仿真验证的效率,并使仿真验证更有针对性。


图1是现有技术中仿真系统结构框图;图2是本发明的应用于芯片的仿真测试方法在具体应用时的流程图。
具体实施例方式
下面结合附图对本发明作进一步的详细说明。
请参阅图2,需要测试模块1中FIFO的临界状态时,只需直接使用脚本命令控制full1信号有效,然后发送数据,如果模块l对full1信号处理正确,则模块1很快就停止从FIFO中读数据发送给模块2,这样可使FIFO中数据越存越多,很快到达临界状态,达到测试目的。同理,如果要测试RAM_2缓存区满的情况,则只需直接使用脚本命令控制full2信号有效就可达到测试目的。
因此,本实施例的仿真测试方法的步骤如下(101)了解被测芯片内部大致的模块结构及各模块之间的接口信号;(102)明确需要测试数据缓存区的位置;(103)向芯片发送数据进行仿真测试;(104)使用仿真器自带的脚本命令强制拉高(如果该信号是高有效)或拉低(如果该信号是高有效)数据缓存区所在模块下游输入的反压信号;(105)根据数据流速率和缓存区容量估计需要仿真的时间或者通过设置断点来控制仿真器在被测缓存区达到临界状态后暂停仿真,注意达到数据缓存区存储容量后仍需再多仿真一段时间;(106)观察测试结果。
在步骤(103)提到的脚本命令的实现需依赖所用的仿真器,仍然请参阅图2,假设图中芯片的顶层模块名为duv,各部分模块名为modul1、modul2、modul3......moduln;再假设仿真平台顶层模块名为harness,那么如果要测试RAM_2缓存区满的情况,则使用CADENCE公司的NC-VERILOG仿真器时测试脚本为…… (1)stop-name ram2full-object harness.duv.modul2.full1-if
{#harness.duv.modul2.full1==1′b1}(2)run 20ns(3)force hamess.duv.modul3.full2 1′b1 (4)run (5)stop-delete ram2full(6)run 20us(7)……(8)说明第(1)行,给芯片下配置,相当于准备工作,因芯片而异,省略;第(2)行,设置一个名叫ram2full的断点,使仿真器在模块2的输出信号full1有效时(即ram_2数据缓存区达到临界状态)暂停仿真;第(3)行,运行一小段时间,确保断点设置成功,也可不要此行;第(4)行,使用force命令强制拉高模块3的输出信号full2,达到快速测试ram_2数据缓存区满的目的;第(5)行,运行仿真器,等待断点到来;第(6)行,断点到来后,删掉断点;第(7)行,数据缓存区已到达临界状态,再仿真一段时间,这里写的是20us,实际应用中,可以根据芯片实际情况修改;第(8)行,结果检查,因芯片而异,省略。
权利要求
1.一种应用于芯片的仿真测试方法,所述芯片包括一个或多个模块,在其中一个模块上拥有数据缓存区,其特征在于,所述方法包括如下步骤(1)向所述的芯片发送测试数据;(2)利用仿真器直接向所述数据缓存区所在的模块强制施加有效的反压信号,使所述的模块停止从所述数据缓存区读取数据;(3)仿真一段时间,使所述数据缓存区的存储容量达到临界状态后观察测试结果。
2.如权利要求1所述的方法,其特征在于,在步骤(2)中,是通过使用仿真器自带的脚本命令强制拉高或拉低反压信号而得到有效的反压信号。
3.如权利要求1所述的方法,其特征在于,在步骤(3)中所述的仿真一段时间是根据发送所述测试数据的速率和所述数据缓存区的容量来确定的。
4.如权利要求1所述的方法,其特征在于,在步骤(3)后还包括在所述数据缓存区的存储容量达到临界状态后通过设置断点来控制仿真器,使所述仿真器暂停仿真。
全文摘要
本发明公开了本发明提供一种应用于芯片的仿真测试方法,以解决现有技术中输入仿真数据多、仿真时间过长的问题。所述方法为(1)向所述的芯片发送测试数据;(2)利用仿真器直接向所述数据缓存区所在的模块强制施加有效的反压信号,使所述的模块停止从所述数据缓存区读取数据;(3)仿真一段时间,使所述数据缓存区的存储容量达到临界状态后观察测试结果。
文档编号G01R31/3173GK1704764SQ20041004439
公开日2005年12月7日 申请日期2004年5月26日 优先权日2004年5月26日
发明者叶华斌 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1