CN105574292A - 一种基于动态数组实现多通道任意带宽发包的方法 - Google Patents
一种基于动态数组实现多通道任意带宽发包的方法 Download PDFInfo
- Publication number
- CN105574292A CN105574292A CN201610064734.5A CN201610064734A CN105574292A CN 105574292 A CN105574292 A CN 105574292A CN 201610064734 A CN201610064734 A CN 201610064734A CN 105574292 A CN105574292 A CN 105574292A
- Authority
- CN
- China
- Prior art keywords
- message data
- dynamic array
- contract
- project
- token
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种基于动态数组实现多通道任意带宽发包的方法,其包括令牌维护模块和发包控制模块,所述令牌维护模块用来控制发包速率,在每个时钟沿到来时,令牌维护模块按照指定的速率累加,在令牌维护模块为正的情况下才发送报文数据,每发送一个报文数据则减去该发送报文数据占用的令牌数,保证发包的速率和令牌累计的速率相同;所述发包控制模块按照各个通道轮循处理。本发明有效提升了芯片验证者的工作效率,缩短了芯片开发周期。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种基于动态数组实现多通道任意带宽发包的方法。
背景技术
在网络芯片的验证领域,通常要广泛应用发包工具,通过发包工具来模拟真实网络环境中的以太网报文流,从而达到验证芯片功能和性能的目的。目前的发包工具大都采用C语言函数来实现,再通过编程语言接口(英文简称PLI)接口将C语言产生的报文传给硬件描述语言(英文称Verilog)仿真器。这种方法在一定程度上能满足芯片验证要求,但这种方法有以下两个方面的不足:第一,仿真效率不够高,尤其在发包通道很多,发包数量很大的情况下,其仿真速度会变得很慢,严重影响芯片验证的效率,从而影响芯片开发周期及上市时间;第二,调试不方便,由于C语言运行的结果要通过PLI接口传给Verilog仿真器,也就是说在Verilog仿真器里面既无法看到C函数的代码,也无法看到C语言发包工具的任何中间结果,这样调试起来很不方便。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种基于动态数组实现多通道任意带宽发包的方法。
为实现上述目的,本发明提出如下技术方案:一种基于动态数组实现多通道任意带宽发包的方法,其包括令牌维护模块和发包控制模块,所述令牌维护模块用来控制发包速率,在每个时钟沿到来时,令牌维护模块按照指定的速率累加,在令牌维护模块为正的情况下才发送报文数据,每发送一个报文数据则减去该发送报文数据占用的令牌数,保证发包的速率和令牌累计的速率相同;所述发包控制模块按照各个通道轮循处理,若当前通道的动态数组里有报文数据,则看是否有令牌数,如果有,则发送报文数据,在报文数据发送之后将动态数组里面的该报文数据删除,保证动态数组里面没有存储多余的报文数据;若当前通道的动态数组有报文数据没有令牌数,则切换到下一个通道,按前述方式中如果该通道对应的动态数组有报文并且该通道对应的令牌数大于零,则使能该通道发送报文数据,否则继续切换到下一通道,实现基于动态数组的多通道任意带宽发包。
优选地,所述通道之间的切换可以指定不同的模式,所述通道之间的切换可为依次累加,或依次递减,或指定序列。
优选地,所述报文数据的存储采用系统级硬件描述语言(英文称SystemVerilog)定义的动态数组。
优选地,所述动态数组里面最多存一个包,只有发完一个包之后才会存储下一个报文数据。
优选地,在每次时钟触发时,查看当前通道的动态数组里面是否有报文数据,如果没有,看是否满足产生报文数据条件,在满足发包条件下产生一整个报文数据,并将该报文数据按照数据发送的格式存储在动态数组中。
优选地,产生报文数据的条件满足已经发送的报文数小于需要发送的总报文数。
优选地,所述产生报文数据的条件还需满足该通道的报文数据没有被反压。
优选地,所述产生报文数据的条件还需满足该通道已被用户使用。
本发明的有益效果是:本发明基于SystemVerilog的动态数组实现多通道任意带宽发包,仿真效率大大提升,调试大为方便,而且很容易扩展新的功能,有效提升了芯片验证者的工作效率,缩短了芯片开发周期。
附图说明
图1是本发明基于动态数组实现多通道任意带宽发包流程图;
图2是本发明基于动态数组和基于C函数实现发包的仿真效率对比。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
结合图1所示,本发明所揭示的一种基于动态数组实现多通道任意带宽发包的方法,包括令牌维护模块和发包控制模块,令牌维护模块主要用来控制发包速率,在每个时钟沿到来时,令牌维护模块就按照指定的速率累加,只有在令牌维护模块为正的情况下才发送报文数据,每发送一个报文数据则减去该发送数据占用的令牌数,这样就保证了发包的速率和令牌累计的速率一样,即为指定的发包速率;发包控制按照各个通道轮循处理,通道之间的切换可以指定不同的模式,如依次累加,依次递减,指定序列等,报文数据的存储采用SystemVerilog定义的动态数组,这种数据结构可以最大化的优化程序运行时消耗的内存,其只根据实际消耗的数据大小分配内存空间,这样不管产生多大的报文数据,都不会占用多余的内存。
为了进一步优化程序运行效率,在动态数组里面最多存一个包,只有发完一个包之后才会存储下一个报文数据。具体的,在每次时钟触发时,查看当前通道的动态数组里面是否有报文数据,如果没有,看是否满足产生报文数据条件,在满足发包条件下产生一整个报文数据,并将该报文数据按照数据发送的格式存储在动态数组中。
其中产生报文数据的条件有三个,一是已经发送的报文数小于需要发送的总报文数,二是该通道的报文没有被反压,最后一个是该通道被用户使能了。如果当前通道的动态数组里有报文数据,则看是否有令牌数,如果有,则发送报文数据,在报文数据发送之后将动态数组里面的该报文数据删除,这样保证动态数组里面没有存储多余的报文数据,若当前通道的动态数组有数据没有令牌数,则切换到下一个通道,按前述方式继续发送报文数据,这样便实现了基于动态数组的多通道任意带宽发包。
图2的是基于动态数组和基于C语言实现的发包工具的仿真效率对比,由图表格式可以看到,在通道数比较少的情况下,动态数组发包工具的仿真效率约为C函数的三到五倍,在通道数很多的情况下,动态数组发包工具的仿真效率也比C函数高了一倍以上。
本发明基于SystemVerilog动态数组实现多通道任意带宽的方法,采用动态数组存储要发送的报文数据,实时根据发送报文数据的数量分配内存空间,提升仿真效率,又由于该方法完全基于SystemVerilog实现,对于Verilog仿真器完全可见,方便调试,易于扩展新功能。
本发明还可以很方便的扩展新功能,比如按照突发模式发包,带内插入报文信息发包等等,这些功能基于C语言发包函数扩展很麻烦,不便调试,对于大部分芯片验证者来说是不可行的,但是基于本发明去实现的话,则大部分验证者都可以很容易做到。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (8)
1.一种基于动态数组实现多通道任意带宽发包的方法,其包括令牌维护模块和发包控制模块,其特征在于:所述令牌维护模块用来控制发包速率,在每个时钟沿到来时,令牌维护模块按照指定的速率累加,在令牌维护模块为正的情况下才发送报文数据,每发送一个报文数据则减去该发送报文数据占用的令牌数,保证发包的速率和令牌累计的速率相同;所述发包控制模块按照各个通道轮循处理,若当前通道的动态数组里有报文数据,则看是否有令牌数,如果有,则发送报文数据,在报文数据发送之后将动态数组里面的该报文数据删除;若当前通道的动态数组有报文数据没有令牌数,则切换到下一个通道,如果该通道对应的动态数组有报文并且该通道对应的令牌数大于零,则使能该通道发送报文数据,否则继续切换到下一通道。
2.根据权利要求1所述的基于动态数组实现多通道任意带宽发包的方法,其特征在于,所述通道之间的切换可指定不同的模式,所述通道之间的切换为依次累加,或依次递减,或指定序列。
3.根据权利要求1所述的基于动态数组实现多通道任意带宽发包的方法,其特征在于,所述报文数据的存储采用系统级硬件描述语言定义的动态数组。
4.根据权利要求1所述的基于动态数组实现多通道任意带宽发包的方法,其特征在于,所述动态数组里面最多存一个包,只有发完一个包之后才会存储下一个报文数据。
5.根据权利要求1所述的基于动态数组实现多通道任意带宽发包的方法,其特征在于,所述方法还包括:在每次时钟触发时,查看当前通道的动态数组里面是否有报文数据,如果没有,看是否满足产生报文数据条件,在满足发包条件下产生一整个报文数据,并将该报文数据按照数据发送的格式存储在动态数组中。
6.根据权利要求1所述的基于动态数组实现多通道任意带宽发包的方法,其特征在于,所述方法还包括:产生报文数据的条件满足已经发送的报文数小于需要发送的总报文数。
7.根据权利要求6所述的基于动态数组实现多通道任意带宽发包的方法,其特征在于,所述产生报文数据的条件还满足该通道的报文数据没有被反压。
8.根据权利要求7所述的基于动态数组实现多通道任意带宽发包的方法,其特征在于,所述产生报文数据的条件还满足该通道已被用户使能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610064734.5A CN105574292B (zh) | 2016-01-29 | 2016-01-29 | 一种基于动态数组实现多通道任意带宽发包的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610064734.5A CN105574292B (zh) | 2016-01-29 | 2016-01-29 | 一种基于动态数组实现多通道任意带宽发包的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105574292A true CN105574292A (zh) | 2016-05-11 |
CN105574292B CN105574292B (zh) | 2018-12-11 |
Family
ID=55884422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610064734.5A Active CN105574292B (zh) | 2016-01-29 | 2016-01-29 | 一种基于动态数组实现多通道任意带宽发包的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105574292B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115373645A (zh) * | 2022-10-24 | 2022-11-22 | 济南新语软件科技有限公司 | 一种基于可动态定义的复杂数据包操作方法及系统 |
CN117082010A (zh) * | 2023-10-17 | 2023-11-17 | 北京汤谷软件技术有限公司 | 一种基于大数据的芯片原型验证报文传输管理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549119A (zh) * | 2003-05-07 | 2004-11-24 | 华为技术有限公司 | 逻辑仿真测试系统和方法 |
CN1671117A (zh) * | 2004-03-19 | 2005-09-21 | 富士通株式会社 | 在通信网络中调度令牌控制的数据传输 |
CN1787483A (zh) * | 2004-12-10 | 2006-06-14 | 华为技术有限公司 | 一种流量控制方法 |
CN1949748A (zh) * | 2006-10-09 | 2007-04-18 | 华为数字技术有限公司 | 一种对多用户进行qos调度的方法和装置 |
CN102523159A (zh) * | 2011-12-15 | 2012-06-27 | 盛科网络(苏州)有限公司 | 网络芯片的验证报文生成方法及系统 |
CN103036734A (zh) * | 2011-10-10 | 2013-04-10 | 盛科网络(苏州)有限公司 | 网络芯片逻辑验证方法及系统 |
EP2945344A1 (en) * | 2012-10-22 | 2015-11-18 | Koninklijke KPN N.V. | Token-based validation method for segmented content delivery |
-
2016
- 2016-01-29 CN CN201610064734.5A patent/CN105574292B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549119A (zh) * | 2003-05-07 | 2004-11-24 | 华为技术有限公司 | 逻辑仿真测试系统和方法 |
CN1671117A (zh) * | 2004-03-19 | 2005-09-21 | 富士通株式会社 | 在通信网络中调度令牌控制的数据传输 |
CN1787483A (zh) * | 2004-12-10 | 2006-06-14 | 华为技术有限公司 | 一种流量控制方法 |
CN1949748A (zh) * | 2006-10-09 | 2007-04-18 | 华为数字技术有限公司 | 一种对多用户进行qos调度的方法和装置 |
CN103036734A (zh) * | 2011-10-10 | 2013-04-10 | 盛科网络(苏州)有限公司 | 网络芯片逻辑验证方法及系统 |
CN102523159A (zh) * | 2011-12-15 | 2012-06-27 | 盛科网络(苏州)有限公司 | 网络芯片的验证报文生成方法及系统 |
EP2945344A1 (en) * | 2012-10-22 | 2015-11-18 | Koninklijke KPN N.V. | Token-based validation method for segmented content delivery |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115373645A (zh) * | 2022-10-24 | 2022-11-22 | 济南新语软件科技有限公司 | 一种基于可动态定义的复杂数据包操作方法及系统 |
CN115373645B (zh) * | 2022-10-24 | 2023-02-03 | 济南新语软件科技有限公司 | 一种基于可动态定义的复杂数据包操作方法及系统 |
CN117082010A (zh) * | 2023-10-17 | 2023-11-17 | 北京汤谷软件技术有限公司 | 一种基于大数据的芯片原型验证报文传输管理方法及系统 |
CN117082010B (zh) * | 2023-10-17 | 2024-02-06 | 北京汤谷软件技术有限公司 | 一种基于大数据的芯片原型验证报文传输管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105574292B (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101859289B (zh) | 一种利用片外存储器访问控制器访问外部存储器的方法 | |
CN103970939A (zh) | 一种层次化可重构的片上网络建模与仿真系统 | |
CN103427846A (zh) | 动态可重构高速串行总线中错误控制方法 | |
CN110321319A (zh) | 片上系统 | |
CN105281433A (zh) | 一种配电终端通信系统 | |
CN109450705A (zh) | 一种基于fpga的面向映射的片上网络验证方法及系统 | |
CN104615684A (zh) | 一种海量数据通信并发处理方法及系统 | |
CN104584492B (zh) | 报文处理方法、设备及系统 | |
CN106227673B (zh) | 一种基于dma的序列波形合成方法 | |
CN105072589B (zh) | 一种广域物联网基站的数据传输方法及广域物联网基站 | |
CN105574292A (zh) | 一种基于动态数组实现多通道任意带宽发包的方法 | |
CN109729013A (zh) | 一种流量整形中添加令牌的方法、装置及计算机可读存储介质 | |
CN109800074A (zh) | 任务数据并发执行方法、装置以及电子设备 | |
CN102308538B (zh) | 报文处理方法及装置 | |
CN108572787A (zh) | 一种数据存储、读取的方法及装置 | |
CN103827836A (zh) | 存储数据的方法和装置 | |
CN103415085A (zh) | 一种通用mac协议处理器的自动生成方法 | |
CN103078766B (zh) | 网络流量的审计方法、装置及网络设备 | |
CN105516008A (zh) | 数据分流设备及其多用户处理的实现方法 | |
CN106993306B (zh) | 基于fpga的无线网络mac层分布式协调系统及其构建方法 | |
CN106686046B (zh) | 车载FlexRay总线网络静态段信号设计方法及装置 | |
CN109471679A (zh) | 一种对pcie交换芯片配置文件进行配置的方法 | |
CN101237417B (zh) | 队列索引方法及装置和流量整形的方法及装置 | |
CN107918589A (zh) | 一种基于fpga的dmx512信号高效缓存并发系统 | |
CN101834876A (zh) | 基于蓝牙、数据库与udp协议的分布式半物理仿真系统及其数据汇总和分发的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |