CN108595731B - 一种以太网芯片中动态表项的设计方法及装置 - Google Patents

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

Info

Publication number
CN108595731B
CN108595731B CN201810064301.9A CN201810064301A CN108595731B CN 108595731 B CN108595731 B CN 108595731B CN 201810064301 A CN201810064301 A CN 201810064301A CN 108595731 B CN108595731 B CN 108595731B
Authority
CN
China
Prior art keywords
physical memory
search engine
physical
dimensional matrix
depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810064301.9A
Other languages
English (en)
Other versions
CN108595731A (zh
Inventor
唐飞
耿磊
夏杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Centec Communications Co Ltd
Original Assignee
Suzhou Centec Communications Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Centec Communications Co Ltd filed Critical Suzhou Centec Communications Co Ltd
Priority to CN201810064301.9A priority Critical patent/CN108595731B/zh
Publication of CN108595731A publication Critical patent/CN108595731A/zh
Application granted granted Critical
Publication of CN108595731B publication Critical patent/CN108595731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Small-Scale Networks (AREA)
  • Stored Programmes (AREA)

Abstract

本发明揭示了一种以太网芯片中动态表项的设计方法及装置,方法包括建立表示查找引擎与物理存储器之间的连接关系及物理存储器的深度的二维矩阵编码表;建立对二维矩阵编码表进行解析并自动生成RTL设计代码的脚本程序。本发明通过建立二维矩阵编码表表示查找引擎与物理存储器之间的关系,并利用脚本程序对二维矩阵编码表进行解析自动生成RTL设计代码,提高动态表项的设计效率和准确性。

Description

一种以太网芯片中动态表项的设计方法及装置
技术领域
本发明涉及芯片设计技术领域,尤其是涉及一种以太网芯片中动态表项的设计方法及装置。
背景技术
以太网交换芯片设计中,动态共享表项的设计是核心技术之一,实现了表项的灵活动态管理和物理面积最小化的合理平衡。在交换芯片最终流片之前,RTL(RegisterTransfer Level,寄存器传输级)代码设计方案可能会随着需求发生变化,使得查找引擎和物理存储器之间的连接关系变化频繁,同时还可能增加或减少查找引擎,也可能增加或减少物理存储器,也可能改变物理存储器的深度,给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]=LE0 A[0][1]=LE2 A[0][2]="" A[0][3]="" A[0][4]=""
PM1(2K)-> A[1][0]=LE0 A[1][1]=LE1 A[1][2]=LE2 A[1][3]="" A[1][4]=""
PM2(2K)-> A[2][0]=LE2 A[2][1]="" A[2][2]="" A[2][3]="" A[2][4]=""
PM3(4K)-> A[3][0]=LE1 A[3][1]=LE2 A[3][2]="" A[3][3]="" A[3][4]=""
PM4(4K)-> A[4][0]=LE0 A[4][1]=LE1 A[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设计代码。
脚本程序在为每个查找引擎生成实例化代码时还需要获取该查找引擎的其他一些参数,如查找引擎的类型等等,查找引擎的类型可以从芯片设计需求或芯片设计规划书直接确定。同样的,为每个物理存储器生成实例化代码时还需要获取该物理存储器的位宽等等,物理存储器的位宽同样可以从芯片设计需求或芯片设计规划书直接确定。通过接口连接后,查找引擎具备了地址映射的功能。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

Claims (4)

1.一种以太网芯片中动态表项的设计方法,其特征在于,包括如下步骤:
S1,建立二维矩阵编码表,及建立供脚本程序调用的可设置参数的基础查找引擎LE(n)和可设置参数的物理存储器PM(d),所述二维矩阵编码表用于表示查找引擎与物理存储器之间的连接关系,以及物理存储器的深度,n表示查找引擎连接物理存储器的最大个数,d表示物理存储的深度;
S2,建立脚本程序,所述脚本程序对二维矩阵编码表进行解析并自动生成设计代码,其中,所述脚本程序根据如下步骤自动生成设计代码:
S201,调用基础查找引擎LE(n)并根据每个查找引擎连接物理存储器的最大个数生成与之相对应的实例化代码;
S202,调用基础物理存储器PM(d)并根据每个物理存储器的深度生成与之相对应的实例化代码;以及
S203,根据查找引擎和物理存储器之间的连接关系将查找引擎的接口与物理存储器的接口进行代码连接。
2.根据权利要求1所述的方法,其特征在于,在步骤S2中,所述脚本程序通过对二维矩阵编码表进行解析获得查找引擎的个数、每个查找引擎连接物理存储器的最大个数、物理存储器的个数、物理存储器的深度,以及查找引擎与物理存储器之间的连接关系。
3.一种以太网芯片中动态表项的设计装置,其特征在于,包括
二维矩阵编码表模块,用于建立表示查找引擎和物理存储器之间连接关系和物理存储器深度的二维矩阵编码表;
查找引擎模块,用于建立可设置参数的基础查找引擎LE(n);
物理存储器模块,用于建立可设置参数的基础物理存储器PM(d),其中,n表示查找引擎连接物理存储器的最大个数,d表示物理存储器的深度;
以及
脚本程序模块,用于建立对二维矩阵编码表进行解析并自动生成设计代码的脚本程序,其中,所述脚本程序通过调用基础查找引擎LE(n)并根据每个查找引擎连接物理存储器的最大个数生成与之相对应的实例化代码,通过调用基础物理存储器PM(d)并根据每个物理存储器的深度生成与之相对应的实例化代码,进一步根据查找引擎和物理存储器之间的连接关系将查找引擎的接口与物理存储器的接口进行代码连接,以自动生成设计代码。
4.根据权利要求3所述的装置,其特征在于,所述脚本程序通过对二维矩阵编码表进行解析获得查找引擎的个数、每个查找引擎连接物理存储器的最大个数、物理存储器的个数、物理存储器的深度,以及查找引擎与物理存储器之间的连接关系。
CN201810064301.9A 2018-01-23 2018-01-23 一种以太网芯片中动态表项的设计方法及装置 Active CN108595731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810064301.9A CN108595731B (zh) 2018-01-23 2018-01-23 一种以太网芯片中动态表项的设计方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810064301.9A CN108595731B (zh) 2018-01-23 2018-01-23 一种以太网芯片中动态表项的设计方法及装置

Publications (2)

Publication Number Publication Date
CN108595731A CN108595731A (zh) 2018-09-28
CN108595731B true CN108595731B (zh) 2022-02-08

Family

ID=63608660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810064301.9A Active CN108595731B (zh) 2018-01-23 2018-01-23 一种以太网芯片中动态表项的设计方法及装置

Country Status (1)

Country Link
CN (1) CN108595731B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111862966A (zh) * 2019-08-22 2020-10-30 马上消费金融股份有限公司 智能语音交互方法以及相关装置
CN111460745B (zh) * 2020-03-31 2023-07-21 深圳市风云实业有限公司 一种设备芯片间连通性检测方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441579A (zh) * 2003-03-28 2003-09-10 清华大学 支持多nexthop的TCAM高速查找方法及其系统
CN1516840A (zh) * 2001-04-25 2004-07-28 �ź㴫 自适应多协议通信系统
CN103227752A (zh) * 2013-05-14 2013-07-31 盛科网络(苏州)有限公司 以太网交换芯片中策略路由的实现方法和装置
CN105791455A (zh) * 2014-12-26 2016-07-20 中兴通讯股份有限公司 三态内容寻址存储器tcam空间的处理方法及装置
CN106708425A (zh) * 2015-11-13 2017-05-24 三星电子株式会社 分布式多模存储管理
CN107168698A (zh) * 2017-04-24 2017-09-15 华南理工大学 图形化编程的自动编译方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1516840A (zh) * 2001-04-25 2004-07-28 �ź㴫 自适应多协议通信系统
CN1441579A (zh) * 2003-03-28 2003-09-10 清华大学 支持多nexthop的TCAM高速查找方法及其系统
CN103227752A (zh) * 2013-05-14 2013-07-31 盛科网络(苏州)有限公司 以太网交换芯片中策略路由的实现方法和装置
CN105791455A (zh) * 2014-12-26 2016-07-20 中兴通讯股份有限公司 三态内容寻址存储器tcam空间的处理方法及装置
CN106708425A (zh) * 2015-11-13 2017-05-24 三星电子株式会社 分布式多模存储管理
CN107168698A (zh) * 2017-04-24 2017-09-15 华南理工大学 图形化编程的自动编译方法

Also Published As

Publication number Publication date
CN108595731A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108595731B (zh) 一种以太网芯片中动态表项的设计方法及装置
CN102279816A (zh) Lcd自动识别方法及装置
CN102426612A (zh) 条件对象查询方法及系统
CN109165266A (zh) 表单生成方法、装置、计算机设备和存储介质
CN111767144B (zh) 交易数据的交易路由确定方法、装置、设备及系统
CN109460219A (zh) 快速序列化接口控制文件的方法
CN108829382B (zh) 一种用Python建立参考模型提高自动化验证平台效率的方法
CN105279269A (zh) 一种支持表自由关联的sql生成方法和系统
CN105373621A (zh) 一种快速的跨数据库系统的数据增量迁移方法
CN116166700A (zh) 查询方法、装置、系统、电子设备及存储介质
CN103425793B (zh) 用于即时通讯系统中利用数据库存储层访问数据库的方法
CN116521921B (zh) 一种三维可视化场景下数据模型的配置及查询方法
CN102156789B (zh) Fpga约束文件自动生成系统及方法
CN111738853A (zh) 一种基于区块链分布式系统的交易优化方法及装置
CN105718429A (zh) 巡检报告生成的方法及装置
CN108108337A (zh) 简繁互转方法及装置
CN106919615A (zh) 数据存取方法及系统
CN109361399A (zh) 一种获取字节序列的方法、装置、设备及存储介质
CN105068793A (zh) 生成业务逻辑关系图以及实现业务应用的方法和装置
CN109388406A (zh) 转换java代码的方法及装置、存储介质、电子装置
CN111090714B (zh) 一种基于cass地形图的数据入库方法和装置
US7979814B1 (en) Model implementation on GPU
CN112445811A (zh) 基于sql配置的数据服务方法、装置、存储介质及组件
CN105224525A (zh) 中文地址的翻译方法及系统
CN111008346A (zh) 一种数据采集方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 215101 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Jiangsu Province

Applicant after: Suzhou Shengke Communication Co.,Ltd.

Address before: Unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, 215000 Jiangsu Province

Applicant before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant