一种以太网芯片中动态表项的设计方法及装置与流程

文档序号:15558514发布日期:2018-09-29 01:41阅读:110来源:国知局
本发明涉及芯片设计
技术领域
,尤其是涉及一种以太网芯片中动态表项的设计方法及装置。
背景技术
:以太网交换芯片设计中,动态共享表项的设计是核心技术之一,实现了表项的灵活动态管理和物理面积最小化的合理平衡。在交换芯片最终流片之前,rtl(registertransferlevel,寄存器传输级)代码设计方案可能会随着需求发生变化,使得查找引擎和物理存储器之间的连接关系变化频繁,同时还可能增加或减少查找引擎,也可能增加或减少物理存储器,也可能改变物理存储器的深度,给rlt代码设计和验证带来诸多不确定性。传统的方法是基于最新的设计需求通过人工去调整查找引擎的设计、物理存储器的设计,以及查找引擎与物理存储之间的连接关系,通常情况下,查找引擎与物理存储之间的连接关系较复杂,人工调整的方法使得最终的rtl设计代码更新周期长,且易出错。技术实现要素:本发明的目的在于克服现有技术的缺陷,提供一种以太网芯片中动态表项的设计方法及装置,提高了动态表项rtl代码设计的高效性和准确性。为实现上述目的,本发明提出如下技术方案:一种以太网动态表项设计方法,其特征在于,包括如下步骤:s1,建立二维矩阵编码表,所述二维矩阵编码表用于表示查找引擎与物理存储器之间的连接关系,以及物理存储器的深度;s2,建立脚本程序,所述脚本程序对二维矩阵编码表进行解析并自动生成设计代码。优选地,步骤s1中还包括:建立供脚本程序调用的可设置参数的基础查找引擎le(n)和可设置参数的物理存储器pm(d),其中,n表示查找引擎连接物理存储器的最大个数,d表示物理存储的深度。优选地,在步骤s2中,所述脚本程序对二维矩阵编码表进行解析获得查找引擎的个数、每个查找引擎连接物理存储器的最大个数、物理存储器的个数、物理存储器的深度,以及查找引擎与物理存储器之间的连接关系。优选地,所述脚本程序根据如下步骤自动生成设计代码:s201,调用基础查找引擎le(n)并根据每个查找引擎连接物理存储器的最大个数生成与之相对应的实例化代码;s202,调用基础物理存储器pm(d)并根据每个物理存储器的深度生成与之相对应的实例化代码;以及s203,根据查找引擎和物理存储器之间的连接关系将查找引擎的接口与物理存储器的接口进行代码连接。一种以太网芯片中动态表项的设计装置,其特征在于,包括二维矩阵编码表模块,用于建立表示查找引擎和物理存储器之间连接关系和物理存储器深度的二维矩阵编码表;以及脚本程序模块,用于建立对二维矩阵编码表进行解析并自动生成设计代码的脚本程序。优选地,所述装置还包括查找引擎模块,用于建立可设置参数的基础查找引擎le(n);以及物理存储器模块,用于建立可设置参数的基础物理存储器pm(d),其中,n表示查找引擎连接物理存储器的最大个数,d表示物理存储器的深度。优选地,所述脚本程序对二维矩阵编码表进行解析获得查找引擎的个数、每个查找引擎连接物理存储器的最大个数、物理存储器的个数、物理存储器的深度,以及查找引擎与物理存储器之间的连接关系。优选地,所述脚本程序调用基础查找引擎le(n)并根据每个查找引擎连接物理存储器的最大个数生成与之相对应的实例化代码;调用基础物理存储器pm(d)并根据每个物理存储器的深度生成与之相对应的实例化代码;根据查找引擎和物理存储器之间的连接关系将查找引擎的接口与物理存储器的接口进行代码连接。本发明的有益效果是:与现有技术相比,本发明所述的一种以太网芯片中动态表项的设计方法及装置,通过建立二维矩阵编码表表示查找引擎与物理存储器之间的连接关系,并利用脚本程序根据二维矩阵编码表自动生成rtl设计代码,在发生动态表项设计方案的调整时,只需修改相应的二维矩阵编码表,再次运行脚本程序即可自动生成rtl设计代码即可,提高了以太网芯片中动态表项rtl代码设计的灵活性、高效性和准确性。附图说明图1是本发明的方法流程图示意图;图2是本发明的查找引擎与物理存储器的连接关系示意图;图3是本发明的装置结构框图示意图。具体实施方式下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。本发明所揭示的一种以太网芯片中动态表项的设计方法及装置,通过建立二维矩阵编码表表示查找引擎与物理存储器之间的连接关系,并利用脚本程序根据二维矩阵编码表自动生成rtl设计代码,提高动态表项的设计效率。如图1所示,一种以太网芯片中动态表项的设计方法,包括如下步骤:s1,建立二维矩阵编码表,所述二维矩阵编码表用于表示查找引擎与物理存储器之间的连接关系,以及物理存储器的深度;具体地,在以太网芯片中可能存在多个查找引擎和物理存储器,每个查找引擎可能与多个物理存储器相连接,且每个物理存储器的深度也可能不相同。本实施例中,以以太网芯片中包括三个查找引擎(分别记为le0、le1和le2)和五个物理存储器(分别记为pm0、pm1、pm2、pm3和pm4)为例进行详细的说明。需要说明的是,物理存储器的深度可以根据芯片设计需求或芯片设计规划书直接确定。如物理存储器pm0的深度为1kbit,物理存储器pm1的深度为2kbit,物理存储器pm2的深度为2kbit,物理存储器pm3的深度为4kbit,物理存储器pm4的深度为4kbit。进一步地,根据查找引擎和物理存储器的个数、以及如图2所示的查找引擎和物理存储器之间的连接关系建立二位矩阵编码表,如下表所示:pm0(1k)->a[0][0]=le0a[0][1]=le2a[0][2]=""a[0][3]=""a[0][4]=""pm1(2k)->a[1][0]=le0a[1][1]=le1a[1][2]=le2a[1][3]=""a[1][4]=""pm2(2k)->a[2][0]=le2a[2][1]=""a[2][2]=""a[2][3]=""a[2][4]=""pm3(4k)->a[3][0]=le1a[3][1]=le2a[3][2]=""a[3][3]=""a[3][4]=""pm4(4k)->a[4][0]=le0a[4][1]=le1a[4][2]=""a[4][3]=""a[4][4]=""从上表中可知,二维矩阵编码表的第一行表示与第一个物理存储器相连接的查找引擎,即:物理存储器pm0与查找引擎le0和le2均相连接。同理,第二行表示与第二个物理存储器相连接的查找引擎,第三行表示与第三物理存储器相连接的查找引擎,第四行表示与第四个物理存储器相连接的查找引擎,第五行表示与第五个物理存储器相连接的查找引擎。当然,二维矩阵编码表中物理存储器的排列顺序也可以按照其他形式进行排列,如二维矩阵编码表的第一行表示与第二个物理存储器相连接的查找引擎。s2,建立脚本程序,所述脚本程序对二维矩阵编码表进行解析并自动生成设计代码。具体的,本发明通过建立脚本程序,脚本程序对二维矩阵编码表进行解析自动生成rtl设计代码,通过将rtl设计代码嵌入至原rtl设计代码中即可。如果发生动态表项设计方案的调整,只需修改相应的二维矩阵编码表,再次运行脚本程序即可自动生成rtl设计代码即可,方案的调整包括查找引擎的增加或减少,物理存储器的增加或减少,以及查找引擎与物理存储器之间连接关系的改变。进一步地,脚本程序建立之前,还需要建立在脚本程序自动生成rtl设计代码时供脚本程序调用的可设置参数的基础查找引擎le(n)和可设置参数的物理存储器pm(d)。其中,n表示查找引擎连接物理存储器的最大个数,d表示物理存储器的深度。基础查找引擎le(n)和物理存储器pm(d)均是代码片段。进一步地,脚本程序对二维矩阵编码表进行解析,可以获得查找引擎的个数、每个查找引擎连接物理存储器的最大个数、物理存储器的个数、物理存储器的深度,以及查找引擎与物理存储器之间的连接关系。脚本程序通过将二维矩阵编码表转换为二维数组可获得查找引擎和物理存储器之间的连接关系。脚本程序根据获得的上述信息通过如下步骤自动生成代码。s201,用基础查找引擎le(n)并根据每个查找引擎连接物理存储器的最大个数与之相对应的实例化代码;s202,调用基础物理存储器pm(d)并根据每个物理存储器的深度生成与之相对应的实例化代码;s203,根据查找引擎与物理存储器的连接关系将相应的查找引擎的接口与物理存储的接口进行代码连接。具体地,当为查找引擎le0生成实例化代码时,脚本程序调用基础查找引擎le(n),并修改基础查找引擎le(n)中相应的参数即可获得查找引擎le0的实例化代码。同理可得,查找引擎le1和le2的实例化代码。当为物理存储器pm0生成实例化代码时,脚本程序调用基础物理存储器pm(d),并修改基础物理存储器pm(d)中相应的参数即可获得物理存储器pm0的实例化代码。同理可得,物理存储器pm1~pm4的实例化代码。在步骤201中,为每个查找引擎生成实例化代码时除了需要获取该查找引擎连接的物理存储器最大个数,还需要获取该查找引擎的其他一些参数,如查找引擎的类型等等,查找引擎的类型可以从芯片设计需求或芯片设计规划书直接确定。同样的,在步骤202中,为每个物理存储器生成实例化代码时除了需要获取该物理存储器的深度外,还需要获取该物理存储器的位宽等等,物理存储器的位宽同样可以从芯片设计需求或芯片设计规划书直接确定。在步骤203中,通过接口连接后,查找引擎具备了地址映射的功能。如图3所示,一种以太网芯片中动态表项的设计装置,其包括二维矩阵编码表模块和脚本程序模块。其中,二维矩阵编码表模块用于建立表示查找引擎和物理存储器之间连接关系和物理存储器深度的二维矩阵编码表;脚本程序模块用于建立对二维矩阵编码表进行解析并自动生成设计代码的脚本程序。进一步地,脚本程序通过对二维矩阵编码表进行解析时,可获得查找引擎的个数、每个查找引擎连接物理存储器的最大个数、物理存储器的个数、物理存储器的深度,以及查找引擎与物理存储器之间的连接关系。脚本程序通过将二维矩阵编码表转换为二维数组可获得查找引擎和物理存储器之间的连接关系。进一步地,以太网芯片中动态表项的设计装置还包括查找引擎模块和物理存储器模块。其中,查找引擎模块用于建立可设置参数的基础查找引擎le(n),物理存储器模块用于建立可设置参数的基础物理存储器pm(d),n表示查找引擎连接物理存储器的最大个数,d表示物理存储器的深度。脚本程序根据每个查找引擎连接的最大物理存储器个数调用基础查找引擎为每个查找引擎生成与之相对应的实例化代码,同时还根据每个物理存储器的深度调用基础物理存储器pm(d)为每个物理存储器生成与之相对应的实例化代码。最后根据查找引擎与物理存储器之间的连接关系将查找引擎的接口与物理存储器的接口进行代码连接即可获得生成rtl设计代码。脚本程序在为每个查找引擎生成实例化代码时还需要获取该查找引擎的其他一些参数,如查找引擎的类型等等,查找引擎的类型可以从芯片设计需求或芯片设计规划书直接确定。同样的,为每个物理存储器生成实例化代码时还需要获取该物理存储器的位宽等等,物理存储器的位宽同样可以从芯片设计需求或芯片设计规划书直接确定。通过接口连接后,查找引擎具备了地址映射的功能。本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1