基于FPGA的SRIO节点自动匹配相异DeviceID宽度的电路及方法

文档序号:9767816阅读:856来源:国知局
基于FPGA的SRIO节点自动匹配相异DeviceID宽度的电路及方法
【技术领域】
[00011本发明涉及FPGA设计技术领域,具体涉及一种基于FPGA的SRI0节点自动匹配相异 DevicelD宽度的电路及方法。
【背景技术】
[0002] 目前基于FPGA的SRIO IP核无法处理本地节点和远程节点存在相异宽度DevicelD 的情况。因为根据SRI0协议,SRI0本地和远程双发收发帧的内容均含有DevicelD信息,包括 DevicelD宽度和内容,由本地和远程双方配置决定。一旦本地节点和远程节点的DevicelD 配置宽度不匹配,那么基于FPGA的SRIO IP核将会按照本地DevicelD宽度的配置情况对接 收帧内容进行协议解析,从而导致有效信息解析失效。

【发明内容】

[0003] (一)要解决的技术问题
[0004] 本发明要解决的技术问题是:如何设计一种基于FPGA的SRI0节点自动匹配相异 DevicelD宽度的电路及匹配方法。
[0005] (二)技术方案
[0006] 为了解决上述技术问题,本发明提供了一种基于FPGA的SRI0节点自动匹配相异 DevicelD宽度的电路,包括基于FPGA的SRIO IP核、DevicelD自动匹配模块和用户端;所述 基于FPGA的SRIO IP核包括BUFFER层和PHY层,所述DevicelD自动匹配模块连接用户端与 BUFi^ER 层;
[0007] 所述基于FPGA的SRIO IP核是实现物理层、传输层和协议层的电路模块,所述物理 层由基于FPGA的SRIO IP核的PHY层实现,实现SRI0协议收发帧的数据并串转换和收发功 能;所述的协议层和传输层的协议解析由DevicelD自动匹配模块实现,实现基于DevicelD 宽度自动匹配的SRIO的协议解析功能;
[0008] 所述DevicelD自动匹配模块包含Initiator接口、Target接口以及SRIO Stream包 格式接口;所述的Initiator接口、Target接口与用户端连接,所述SRIO Stream包格式接口 与BUFFER层连接;
[0009] 所述DevicelD自动匹配模块还包含本地DevicelD宽度判决模块、本地SRI0 Stream包格式封帧模块、远程DevicelD宽度判决模块和远程SRIO Stream包格式解帧模块; [0010] 所述本地Device ID宽度判决模块连接Initiator接口和本地SRIOStream包格式封 帧模块,用于接收Initiator接口的Device ID宽度信息,进行宽度判决,然后将得到的 DevicelD宽度判决信息传递至本地SRIO Stream包格式封帧模块参与本地SRIO Stream包 格式封帧;
[0011 ] 所述本地SRIO Stream包格式封帧模块连接Initiator接口、本地DevicelD宽度判 决模块和SRIO Stream包格式接口,用于将来自于Initiator接口的SRI0协议信息和来自于 本地DevicelD宽度判决模块的DevicelD宽度判决信息进行封帧得到SRIO Stream包格式 帧,通过SRIO Stream包格式接口传递至BUFFER层,并通过PHY层最终通过串行总线发送出 去;
[0012] 所述远程DevicelD宽度判决模块连接BUFFER层和远程SRIO Stream包格式解帧模 块,用于接收BUFFER层传递过来的DevicelD宽度信息,进行判决后得到DevicelD宽度判决 信息,并将DevicelD宽度判决信息传递至远程SRIO Stream包格式解帧模块;
[0013] 所述远程SRIO Stream包格式解帧模块连接SRIO Stream包格式接口、Target接口 和远程DevicelD宽度判决模块,内部含有8位解帧模块、16位解帧模块和2选1选择器,用于 接收BUFFER层传递过来的SRIO Stream包格式帧,并根据远程DevicelD宽度判决模块传递 过来的DevicelD宽度判决信息通过2选1选择器的选择进行8位或16位解帧,并将包含协议 解析信息的解帧结果通过Target接口传递至用户端。
[0014] 本发明还提供了一种基于上述电路实现FPGA的SRI0节点自动匹配相异DevicelD 宽度的方法,包括发送过程和接收过程;
[0015] 所述发送过程包括以下步骤:
[0016] A1、用户端通过Initiator接口将SRI0协议信息传递至本地SRIOStream包格式封 帧模块;
[0017] A2、本地DevicelD宽度判决模块接收来自于Initiator接口的本地DevicelD宽度 信息,并根据本地DevicelD 8位或16位的宽度信息产生需要参与本地SRIO Stream包格式 封帧模块封帧的宽度判决信息传递至本地SRIO Stream包格式封帧模块;
[0018] A3、本地SRIO Stream包格式封帧模块将Initiator接口、SRI0协议信息和本地 DevicelD宽度判决信息进行封帧,得到SRIO Stream包格式帧并通过SRIO Stream包格式接 口传递至BUFFER层;
[0019] A4、BUFFER层将SRIO Stream包格式传递至PHY层并最终通过串行总线发送出去;
[0020] 所述接收过程包括以下步骤:
[0021] B1、串行总线接收到串行数据通过PHY层传递至BUFFER层;
[0022] B2、远程DevicelD宽度判决模块接收BUFFER层传递过来的DevicelD宽度信息,进 行判决后得到DevicelD宽度判决信息,并将DevicelD宽度判决信息传递至远程SRI0 Stream包格式解帧模块的2选1选择器;
[0023] B3、远程SRIO Stream包格式解帧模块接收BUFFER层传递过来的SRIO Stream包格 式帧,分别进行8位和16位解帧,得到8位的SRIO Stream协议信息和16位的SRIO Stream协 议信息,并根据远程DevicelD宽度判决模块传递过来的DevicelD宽度判决信息通过2选1选 择器进行8位的SRIO Stream协议信息和16位的SRIO Stream协议信息的2选1,得到其中一 种SRIO Stream协议信息作为解析结果通过Target接口传递至用户端。
[0024]优选地,步骤B2中判决的方式是根据SRIO Stream包格式帧的有效位得到 DevicelD宽度判决信息。
[0025](三)有益效果
[0026]本发明充分利用SRIO Stream包格式的有效位得到DevicelD宽度判决信息,保留 了原有SRIO Stream包格式的完整性,没有增加额外的帧开销,同时基于FPGA的SRI0节点自 动匹配相异DevicelD宽度的电路采用结构简单的数字电路,实时实现DevicelD宽度判决功 能,保留了原有SRIO模块低延迟、高宽带的包交换特性,相比原有SRIO收发模块具有很好的 兼容性。
【附图说明】
[0027] 图1为本发明实施例的电路结构图。
【具体实施方式】
[0028] 为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的
【具体实施方式】作进一步详细描述。
[0029]如图1所示,本发明提供了一种基于FPGA的SRI0节点自动匹配相异DevicelD宽度 的电路,包括基于FPGA的SRI0 IP核、DeviceID自动匹配模块和用户端;所述基于FPGA的 SRIO IP核包括BUFFER层和PHY层,所述DevicelD自动匹配模块连接用户端与BUFFER层; [0030]所述基于FPGA的SRIO IP核是实现串行RapidIO的物理层、传输层和协议层的电路 模块,所述物理层由基于FPGA的SRIO IP核的PHY层实现,实现SRI0协议收发帧的数据并串 转换和收发功能;所述的协议层和传输层的协议解析由DevicelD自动匹配模块实现,实现 基于DevicelD宽度自动匹配的SRI0的协议解析功能;
[0031 ] 所述DevicelD自动匹配模块包含Initiator接口、Target接口以及SRIO Stream包 格式接口;所述的Initiator接口、Target接口与用户端连接,所述SRIO Stream包格式接口 与BUFFER层连接;
[0032] 所述DevicelD自动匹配模块还包含本地DevicelD宽度判决模块、本地SRI0 Stream包格式封帧模块、远程DevicelD宽度判决模块和远程SRIO Stream包格式解帧模块; [0033] 所述本地DevicelD宽度判决模块连接Initiator接口和本地SRIO Stream包格式 封帧模块,用于接收Initiator接口的DevicelD宽度信息(DevicelD宽度为8位或16位),进 行宽度判决,例如,若宽度为8位则得到值为0的DevicelD宽度判决信息,若为16位则得到值 为1的DevicelD宽度判决信息,然后将得到的DevicelD宽度判决信息传递至本地SRI0 Stream包格式封帧模块参与本地SRIO Stream包格式封帧;
[0034] 所述本地SRIO Stream包格式封帧模块连接Initiator接口、本地DevicelD宽度判 决模块和SRIO Stream包格式接口,用于将来自于Initiator接口的SRI0协议信息和来自于 本地DevicelD宽度判决模块的DevicelD宽度判决信息进行封帧得到SRIO Stream包格式 帧,通过SRIO Stream包格式接口传递至BUFFER层,并通过PHY层最终通过串行总线发送出 去;
[0035] 所述远程DevicelD宽度判决模块连接BUFFER层和远程SRIO Stream包格式解帧模 块,用于接收
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1