一种在FPGA平台上进行数据报文采集的方法.pdf

上传人:Y94****206 文档编号:20929 上传时间:2018-01-12 格式:PDF 页数:6 大小:385.86KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510099042.X

申请日:

2015.03.06

公开号:

CN104765703A

公开日:

2015.07.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/38申请日:20150306|||公开

IPC分类号:

G06F13/38; G06F12/08; H04L12/879(2013.01)I

主分类号:

G06F13/38

申请人:

浪潮电子信息产业股份有限公司

发明人:

刘凯; 童元满; 李仁刚; 刘金广

地址:

250101山东省济南市高新区浪潮路1036号

优先权:

专利代理机构:

济南信达专利事务所有限公司37100

代理人:

姜明

PDF下载: PDF下载
内容摘要

本发明公开了一种在FPGA平台上进行数据报文采集的方法,其具体实现过程为:构建异步FIFO用于报文采集输出,该异步FIFO为一个报文存储RAM;设置所需采集抓取的报文类型,并进行报文传输;当传输过程中出现所对应的报文时,RAM的输入使能信号有效,相关报文输入RAM中;完成输入后,输入数据地址位加一,完成了输入报文的存储;使能控制模块检测到输入地址有变化,并与输出地址进行比较,得出当前RAM中已经采集存有所需报文,使输出的使能信号有效。该一种在FPGA平台上进行数据报文采集的方法与现有技术相比,利用一个可控地址的RAM,去掉了报文之间的间隔时隙,最大可能的在FPGA中存储有效报文数据并且输出显示到FPGA软件界面,达到采集输出大量报文的目的。

权利要求书

1.  一种在FPGA平台上进行数据报文采集的方法,其特征在于,其具体实现过程为:
首先构建一个异步FIFO用于报文采集输出,该异步FIFO的主体为一个报文存储RAM,且输入和输出地址由外部信号可控,该报文存储RAM还连接可输入并控制时能信号的使能控制模块、可输入地址的输入地址控制模块、可输出地址的输出地址控制模块,其中异步FIFO输出使能信号是根据输入输出地址的关系得到的;
设置所需采集抓取的报文类型,并进行报文传输;
当传输过程中出现所对应的报文时,RAM的输入使能信号有效,相关报文输入RAM中;
完成输入后,输入数据地址位加一,完成了输入报文的存储;
使能控制模块检测到输入地址有变化,并与输出地址进行比较,得出当前RAM中已经采集存有所需报文,使输出的使能信号有效。

2.
  根据权利要求1所述的一种在FPGA平台上进行数据报文采集的方法,其特征在于,在异步FIFO的报文输入端设置计数模块,当报文存入异步FIFO中时,同时连同计数模块数值作为时间戳一起存入到该异步FIFO中。

3.
  根据权利要求1所述的一种在FPGA平台上进行数据报文采集的方法,其特征在于,所述异步FIFO的输入端对输入的报文进行过滤,且当处理器传输过来的为所需求分析报文时存入FIFO中,其他传输来的分析报文不存储入异步FIFO中。

4.
  根据权利要求1、2或3所述的一种在FPGA平台上进行数据报文采集的方法,其特征在于,所述输入地址与输出地址的比较即为比较输入地址和输出地址是否在同一个时钟域里,当两者不在同一时钟域中,且在输出地址的时钟域里使用输入地址时,通过格雷码转换对输入地址进行转换后使两者处于同一时钟域内。

说明书

一种在FPGA平台上进行数据报文采集的方法
技术领域
本发明涉及计算机芯片技术领域,具体地说是一种实用性强、在FPGA平台上进行数据报文采集的方法。
背景技术
随着国家对信息安全的越来越重视,打破国外厂商在小型机服务器上的垄断迫在眉睫。而小型机服务器的研发在于需要网络控制类芯片控制多路处理器系统,这个系统使得多个处理器之间能够进行高速有效、可靠安全地进行报文交换处理。对应这个系统的前期验证调试过程肯定是要在FPGA平台上进行的。为了在FPGA平台上很好地验证,使用一些调试手段是必需的。采集抓取各种报文来分析的方法是经常用到的方法之一。而由于各个处理器之间传输报文数据量巨大且报文之间不是连续的,各个报文之间会有较长时间的空闲。因为FPGA调试软件的存储空间是有限的,在这种情况下对报文的抓取采集就会带来很大的麻烦,通常只能采集到一段时间内很少量的报文。
针对这种问题,本专利提出了一种在FPGA平台上进行数据报文采集的方法,有效解决了在FPGA平台进行多处理器之间报文传输的时候,由于FPGA软件存储资源较小的原因无法较多地抓取所需报文的困难。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、在FPGA平台上进行数据报文采集的方法。
一种在FPGA平台上进行数据报文采集的方法,其具体实现过程为:
首先构建一个异步FIFO用于报文采集输出,该异步FIFO的主体为一个报文存储RAM,且输入和输出地址由外部信号可控,该报文存储RAM还连接可输入并控制时能信号的使能控制模块、可输入地址的输入地址控制模块、可输出地址的输出地址控制模块,其中异步FIFO输出使能信号是根据输入输出地址的关系得到的;
设置所需采集抓取的报文类型,并进行报文传输;
当传输过程中出现所对应的报文时,RAM的输入使能信号有效,相关报文输入RAM中;
完成输入后,输入数据地址位加一,完成了输入报文的存储;
使能控制模块检测到输入地址有变化,并与输出地址进行比较,得出当前RAM中已经采集存有所需报文,使输出的使能信号有效。
在异步FIFO的报文输入端设置计数模块,当报文存入异步FIFO中时,同时连同计数模块数值作为时间戳一起存入到该异步FIFO中。
所述异步FIFO的输入端对输入的报文进行过滤,且当处理器传输过来的为所需求分析报文时存入FIFO中,其他传输来的分析报文不存储入异步FIFO中。
所述输入地址与输出地址的比较即为比较输入地址和输出地址是否在同一个时钟域里,当两者不在同一时钟域中,且在输出地址的时钟域里使用输入地址时,通过格雷码转换对输入地址进行转换后使两者处于同一时钟域内。
本发明的一种在FPGA平台上进行数据报文采集的方法,具有以下优点:
本发明提出的一种在FPGA平台上进行数据报文采集的方法,利用一个可控地址的RAM,去掉了报文之间的间隔时隙,最大可能地存储有效报文数据,达到采集输出报文目的;解决了在FPGA平台进行多处理器之间报文传输的时候,由于FPGA软件存储资源较小的原因无法较多地抓取所需报文的困难;本发明构建一个可控地址的FIFO,过滤掉了报文传输过程中的空闲无效时间,以及暂时不需要采集分析的报文;该方法最大程度节约了FPGA内部有限的资源,提高了效率,更好使用了FPGA相关软件进行代码项目调试,实用性强,易于推广。
附图说明
附图1为本发明的实现系统结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
在FPGA平台验证调试过程中,经常遇到各个处理器所发送报文无法提取采集输出的问题。这是因为各个报文输出为非连续的,报文之间的间隔不固定,无法在FPGA软件有限的缓存中存储大量的数据报文。
针对上述问题,现提供一种在FPGA平台上进行数据报文采集的方法,其具体实现过程为:
首先构建一个异步FIFO用于报文采集输出,该异步FIFO的主体为一个报文存储RAM,且输入和输出地址由外部信号可控,该报文存储RAM还连接可输入并控制时能信号的使能控制模块、可输入地址的输入地址控制模块、可输出地址的输出地址控制模块,其中异步FIFO输出使能信号是根据输入输出地址的关系得到的;
设置所需采集抓取的报文类型,并进行报文传输;
当传输过程中出现所对应的报文时,RAM的输入使能信号有效,相关报文输入RAM中;
完成输入后,输入数据地址位加一,完成了输入报文的存储;
使能控制模块检测到输入地址有变化,并与输出地址进行比较,根据输入输出地址的比较,就可以得出当前RAM中已经采集存有所需报文,输出使能信号可以有效。随着输出地址的变化,RAM的报文在输出时钟域下输出提供给FPGA软件分析。一般情况下输出时钟域为高频时钟,可以快速地输出报文,进而RAM中很快变空用来存储下一个报文,RAM也不需要太大的空间,不会占用FPGA有限的资源。
在异步FIFO的报文输入端设置计数模块,当报文存入异步FIFO中时,同时连同计数模块数值作为时间戳一起存入到该异步FIFO中,这样有利于对报文传输在时间上进行分析。
所述异步FIFO的输入端对输入的报文进行过滤,且当处理器传输过来的为所需求分析报文时存入FIFO中,其他传输来的分析报文不存储入异步FIFO中,这样更加提高了采集抓取效率。
所述输入地址与输出地址的比较即为比较输入地址和输出地址是否在同一个时钟域里,当两者不在同一时钟域中,且在输出地址的时钟域里使用输入地址时,通过格雷码转换对输入地址进行转换后使两者处于同一时钟域内。
如附图1所示,其具体实施过程为:
从图1中可以看出本专利设计的主体为一个单口输入输出RAM。该RAM具有很宽的输入输出数据位,但是较浅的存储深度,深度只需奇偶两个地址即可。类似一个乒乓动作,一旦有数据就对存储的数据高速输出,提供所需数据包。而对该RAM的输入输出控制需要一些逻辑控制模块。
首先是输入模块。对于一个RAM来说,要有数据输入端口Data_in、输入地址DataIn_addr、输入使能信号DataIn_en、输入时钟信号Clk_in等。输入数据信号Data_in是由多种数据包的结合体,而且每个数据包又包涵多位的并行数据,所以此RAM的输入数据总位宽取决于有多少种类的数据包和每个数据包的位宽。输入使能信号DataIn_en来自于每个数据包的输入使能信号。它为各个数据包使能信号相或的结果,这样保证任何一种所需数据包传输过来都要写入RAM中。输入地址控制信号DataIn_addr,因为RAM的深度很浅,只用来存储两个输入宽度的数据包,因此输入地址也只需要1bit即可。至于输入时钟即为数据包统一时钟即可。
其次是输出模块。对于一个RAM来说,输出的控制信号数目和输入的控制信号数目基本一致。包括输出数据信号Data_out,输出数据使能信号Dataout_en,输出地址Dataout_addr,输出时钟Clk_out等。下面对这几个信号情况从易到难说明:输出数据信号Data_out是和输入数据信号相同位宽,位宽为所有数据包位宽的总合,这一项没有需要太注意的情况。其次是Clk_out信号,该信号为输出时钟,为了尽快把采集到的数据包输出,这里的输出时钟就需要高频时钟,相对与输入时钟越高越好。例如输入时钟为25Mhz时候,输出时钟为100Mhz。输出地址Dataout_addr信号,是根据输出数据使能信号Dataout_en控制。当Dataout_en使能的时候,Dataout_addr就根据输出时钟自动增加。输出控制信号中最复杂的为输出数据使能信号Dataout_en。该RAM主要的功能类似一个过滤缓存,一旦有数据就可以输出,所以输出使能信号是根据输入地址和输出地址的关系确定的。输入地址和输出地址一旦不同,就说明该RAM中有数据,可以输出了,即输出数据使能信号Dataout_en使能。这里要注意的是两个地址的时钟域不同,即输入地址和输出地址是由不同的时钟控制的。所以在某个时钟域做计算比较的时候,另一个地址处于变化中的不稳态。这样容易导致误判断。针对这个危险,在实际操作采用格雷码处理跨时钟域的情况。有效的解决了该问题。
为了记录报文的到达时间,方便对采集提取后的报文做分析,从如下框图中可以看出在整个系统中还加入了一个Time计数器模块。当有报文存入RAM的时候,记录下当时的计数数值一起存入RAM,这样对报文传输时间有个记录,方便以后抓取出来进行分析,对比各种报文到来的时间。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种在FPGA平台上进行数据报文采集的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

一种在FPGA平台上进行数据报文采集的方法.pdf_第1页
第1页 / 共6页
一种在FPGA平台上进行数据报文采集的方法.pdf_第2页
第2页 / 共6页
一种在FPGA平台上进行数据报文采集的方法.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《一种在FPGA平台上进行数据报文采集的方法.pdf》由会员分享,可在线阅读,更多相关《一种在FPGA平台上进行数据报文采集的方法.pdf(6页珍藏版)》请在专利查询网上搜索。

本发明公开了一种在FPGA平台上进行数据报文采集的方法,其具体实现过程为:构建异步FIFO用于报文采集输出,该异步FIFO为一个报文存储RAM;设置所需采集抓取的报文类型,并进行报文传输;当传输过程中出现所对应的报文时,RAM的输入使能信号有效,相关报文输入RAM中;完成输入后,输入数据地址位加一,完成了输入报文的存储;使能控制模块检测到输入地址有变化,并与输出地址进行比较,得出当前RAM中已经采。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1