Tcam验证方法及系统与流程

文档序号:17479379发布日期:2019-04-20 06:20阅读:511来源:国知局
Tcam验证方法及系统与流程

本发明涉及数字集成电路验证技术领域,特别是涉及一种tcam验证方法及系统。



背景技术:

在现在高速以太网交换芯片中大量采用tcam(ternarycontentaddressablememory,三态内容寻址存储器)来存储acl和路由等表项,这些表项都是交换芯片中很重要的表项也是交换芯片性能的重要指标,一旦实现错误后果往往是灾难性的,芯片一些重要功能将不能够使用,所以tcam的验证就显得尤为重要。

然而现有技术中的验证方法为了提高tcam内部存储内容的命中率,都采用预先初始化好的内容存储到tcam内部,然后在产生仿真激励的过程中从这些已有的内容池中随机挑选lookupkey(查找关键字)不断的输入到tcam中进行验证。由于现在tcam存储的lookupkey一般位宽都比较大,动辄几百个bit位,所以现有的验证方法,一般lookupkeypool(查找关键字组)会做成与tcam空间一样大,虽然可以提高lookupkey的命中率,但是所有的lookupkey都是从预先生成的激励池中取出来的,lookupkeypool的空间不够大,导致lookupkey的重复概率大大提高,有效仿真时间占比下降。

参图1所示,一块深度为1024的tcam,在验证时设置一个同样深度的lookupkeypoola,在一次仿真中总共访问了tcam10240次,将整个仿真过程切分成10段,那么在每一段的lookupkeypool都是a,并且平均每个lookupkey的重复次数为10次。

因此,针对上述技术问题,有必要提供一种tcam验证方法及系统。



技术实现要素:

有鉴于此,本发明的目的在于提供一种tcam验证方法及系统。

为了实现上述目的,本发明一实施例提供的技术方案如下:

一种tcam验证方法,所述方法包括:

s1、确定仿真窗口的大小及移动频率;

s2、生成lookupkey以建立lookupkeypool;

s3、使用lookupkeypool初始化tcam;

s4、进行当前仿真窗口的仿真验证;

s5、重复步骤s2-s4直至完成tcam的仿真验证。

作为本发明的进一步改进,所述步骤s1具体为:

根据lookupkeypool的大小及所要查找tcam的次数来确定仿真窗口的大小;

根据仿真窗口的大小确定仿真窗口的移动频率,仿真窗口越大则移动频率越低,仿真窗口越小则移动频率越高。

作为本发明的进一步改进,所述lookupkeypool的大小与tcam的大小之比为1:2n,其中n=0,1,2…。

作为本发明的进一步改进,所述步骤s2还包括:

清除原有lookupkeypool中的lookupkey。

作为本发明的进一步改进,所述步骤s3后还包括:

将当前lookupkeypool中的lookupkey配置到tcam中。

本发明另一实施例提供的技术方案如下:

一种tcam验证系统,所述系统包括:

仿真窗口确定单元,用于确定仿真窗口的大小及移动频率;

查找关键字组建立单元,用于生成lookupkey以建立lookupkeypool;

初始化单元,用于使用lookupkeypool初始化tcam;

仿真验证单元,用于进行当前仿真窗口的仿真验证。

作为本发明的进一步改进,所述仿真窗口确定单元还用于:

根据lookupkeypool的大小及所要查找tcam的次数来确定仿真窗口的大小;

根据仿真窗口的大小确定仿真窗口的移动频率,仿真窗口越大则移动频率越低,仿真窗口越小则移动频率越高。

作为本发明的进一步改进,所述lookupkeypool的大小与tcam的大小之比为1:2n,其中n=0,1,2…。

作为本发明的进一步改进,所述查找关键字组建立单元还用于:

清除原有lookupkeypool中的lookupkey。

作为本发明的进一步改进,所述初始化单元还用于:

将当前lookupkeypool中的lookupkey配置到tcam中。

本发明具有以下有益效果:

本发明在一次仿真中利用一个lookupkeypool在不同的移动仿真窗口内多次生成lookupkey进行tcam的初始化,可以利用相同的存储空间,大大降低了在一次仿真过程中lookupkey的重复概率,提高了有效仿真时间的占比,并且避免重复生成仿真场景的额外开销。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本现有技术中tcam验证的仿真时间轴图;

图2为本发明中tcam验证方法的流程示意图;

图3为本发明中tcam验证系统的模块示意图;

图4为本发明一具体实施例中tcam验证的仿真时间轴图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

参图2所示,本发明公开了一种tcam验证方法,包括:

s1、确定仿真窗口的大小及移动频率;

s2、生成lookupkey以建立lookupkeypool;

s3、使用lookupkeypool初始化tcam;

s4、进行当前仿真窗口的仿真验证;

s5、重复步骤s2-s4直至完成tcam的仿真验证。

本发明中,首先根据要验证tcam的大小建立lookupkeypool,lookupkeypool的大小与tcam的大小之比为1:2n,其中n=0,1,2…。

优选地,一般来说建立与tcam大小相同的lookupkeypool,当然也可以根据需求适当的减小lookupkeypool,比如tcam大小的二分之一、四分之一、八分之一等。

其中,lookupkeypool会影响仿真窗口的粒度和窗口的移动频率,lookupkeypool的大小与窗口的大小成正比关系。

根据lookupkeypool以及所要查找tcam的次数来确定窗口的大小,同时窗口的大小也会影响窗口的移动频率,窗口越大需要移动频率越低,窗口越小需要移动的频率越高,此处窗口移动指沿着仿真时间轴的移动。

进一步地,在完成一个仿真窗口之后,清除原有lookupkeypool中的lookupkey,重新生成lookupkey填充到lookupkeypool中,同时将这些lookupkey配置到tcam中,进入新的仿真窗口的计算和仿真。

参图3所示,本发明还公开了一种tcam验证系统,包括:

仿真窗口确定单元,用于确定仿真窗口的大小及移动频率;

查找关键字组建立单元,用于生成lookupkey以建立lookupkeypool;

初始化单元,用于使用lookupkeypool初始化tcam;

仿真验证单元,用于进行当前仿真窗口的仿真验证。

本发明中的tcam为三态内容寻址存储器(ternarycontentaddressablememory),lookupkey为查找关键字,lookupkeypool为查找关键字组。

参图4所示,本发明的一具体实施例中,tcam的大小(即深度)为1024,将整个仿真过程切分成1~10共10个仿真窗口,其中,currentsimulatewindow为当前仿真窗口,pastsimulatewindow为之前的仿真窗口。

每一个仿真窗口进行仿真验证过程中采用的lookupkeypool的大小为1024,lookupkeypool中的lookupkey都是重新生成的,这样保证在10个仿真窗口内采用的都是不同的lookupkeypool(即a-j共10个不同的lookupkeypool)。

本实施例中在一定的时间窗口内动态配置tcam的查找关键字,降低激励发生器产生lookupkey的重复概率,大大降低了lookupkey的重复率,提高了有效仿真的次数和时间。

应当理解的是,本实施例中的仿真窗口的数量、lookupkeypool的大小、仿真窗口的大小及移动频率等可以根据需要进行调整,而并不限于本实施例中的限定。

由以上技术方案可以看出,本发明具有以下优点:

本发明在一次仿真中利用一个lookupkeypool在不同的移动仿真窗口内多次生成lookupkey进行tcam的初始化,可以利用相同的存储空间,大大降低了在一次仿真过程中lookupkey的重复概率,提高了有效仿真时间的占比,并且避免重复生成仿真场景的额外开销。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书一个或多个实施例的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1