前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于UDP/IP协议的光口通信

基于UDP/IP协议的光口通信

作者头像
碎碎思
发布2020-06-30 14:38:42
2.1K0
发布2020-06-30 14:38:42
举报
文章被收录于专栏:OpenFPGAOpenFPGA

1.1.1基于UDP/IP协议的光口通信

基于之前在《8.5.3 基于UDP/IP协议的电口通信》中所介绍的 UDP IP 协议栈, 将其与Xilinx提供的 IP 核 1G/2.5G Ethernet PCS/PMA or SGMII 连接, 实现电脑与板子之间的 SFP 电口通信。整体实现框架如下图所示。

图8‑78 基于UDP/IP协议的光口通信框图

SFP 屏蔽笼中可以插入 SFP 光模块或 SFP 电模块。其中 SFP 光模块用于连接光纤,SFP 电模块用于连接网线。从调试的角度来说,SFP 电模块比 SFP 光模块方便调试,直接通过 1 根千兆网线与电脑网口连接即可,通过抓包软件和数据分析软件可以很方便进行 SFP接口数据分析。而 SFP 光模块的优点在于可以借助光纤实现进距离传输,这是双绞线所无法实现的。

这篇文章和之前文章唯一的区别就是增加了1G/2.5G Ethernet PCS/PMA or SGMII IP,所以重点介绍这个IP的设置。

8.5.5.3 1G/2.5G Ethernet PCS/PMA or SGMII IP设置

UDP/IP协议前面已经介绍了,这里就不再赘述,下面详细介绍《1G/2.5G Ethernet PCS/PMA or SGMII》这个IP的设置。

使用 1000BASE-X 模式,需要将速度设为 1G,如下图。

图8‑84 IP设置第一、二页

选择 1000BASE-X 模式,如下图。

图8‑85 IP设置第三页

使用 FPGA 的 GTP 收发器作为 SFP 的接口,输入 IP 核内部的 MMCM 的时钟源选择为 GTP 收发器输出的时钟 TXOUTCLK,该 MMCM 将产生所需要的用户接口时钟。MDIO 接口可用可不用,这里不使能MDIO 接口,使能自协商。如下图。

图8‑86 IP设置第四页

接下来一页主要进行多网口设置,具体如下:

图8‑87 IP设置第五页

Include Shared Logic in Core和Include Shared Logic in Example Design的区别如下:

1、Include Shared Logic in Core

图8‑88 Include Shared Logic in Core原理框图

当设计中只包含 1 个此 IP 核时,应当将可共享的逻辑辑资源和硬件模块包含在 IP 核内部,这样会减少所生成的模块数量,简化设计。

2、Include Shared Logic in Example Design

图8‑89 Include Shared Logic in Example Design原理框图

当设计中需要同时使用若干个此 IP 核,并且所使用的 GTP 均位于同一个 GTP BANK 中。此时,只需其中 1 个 IP 核内部的共享资源( MMCM、 GTP PLL、 GTP 参考时钟等)便可以满足所有 IP 核的需求,即选择将共享资源包含在 IP 核内部。其余 IP 核将这些共享资源从其内部剔除即可,即选择将共享资源包含在 example 中。

下面针对实际使用过程进行更多介绍:

(一)时钟网络

当需要使用多个 IP 时,并且所使用的 GTP 位于同一个 GTP BANK 中时,不同 IP 核之间的时钟网络可以进行共享,如下图所示。多个 IP 核可共享同 1 个 GTP BANK 的参考时钟,以及同一个 MMCM 输出的时钟信号。

图8‑90 共享时钟网络

(二)共享端口

多个 IP 核之间的共享信号连接方式如下图所示。

图8‑91 共享端口

上图中, 左侧的 IP 核选择了将共享资源包含在 IP 核内部,右侧的 IP 核则选择了将共享资源从 IP 核内部去除,移至 example desgin 中。在多网口使用中, pcs_pma_0 对应上图左侧的 IP核, pcs_pma_1 和 pcs_pma_2 对应上图右侧的 IP 核。设置如下:

pcs_pma_0 的设置如下图所示:

pcs_pma_1 和 pcs_pma_2 的设置如下图所示:

8.5.5.4 1G/2.5G Ethernet PCS/PMA or SGMII IP详解-用户接口

用户接口

GMII 接口

GMII 接口的同步时钟为 IP 核的输出时钟 userclk2。

图8‑94 GMII 接口

GMII 接口发送时序如下图所示。

图8‑95 GMII 接口发送时序

GMII 接口接收时序如下图所示。

图8‑96 GMII 接口接收时序

接下来就是约束了,整个约束文件重点是需要对 GTP BANK 输入的差分参考时钟进行约束,需要约束其对应的引脚位置以及时钟频率。如下所示:

1.set_property PACKAGE_PIN F10 [get_ports gtrefclk1_p] 2.set_property PACKAGE_PIN E10 [get_ports gtrefclk1_n] 3.create_clock -period 6.000 -name gtrefclk -add [get_ports gtrefclk1_p]

还有就是GTP BANK位置约束,需要锁定 IP 核所使用的 GTP 对应于芯片的具体位置。在使用的是 XC7A100T 芯片, 3 个 SFP 模块分别与 X0Y4, X0Y5, X0Y6的 GTP 连接,在 XDC 中的约束如下:

1.set_property LOC GTPE2_CHANNEL_X0Y4 [get_cells 2.*/pcs_pma_0/*/*/transceiver_inst/gtwizard_inst/*/gtwizard_i/gt0_GTWIZARD_i/gtpe2_i] 3.set_property LOC GTPE2_CHANNEL_X0Y5 [get_cells 4.*/pcs_pma_1/*/transceiver_inst/gtwizard_inst/*/gtwizard_i/gt0_GTWIZARD_i/gtpe2_i] 5.set_property LOC GTPE2_CHANNEL_X0Y6 [get_cells 6.*/pcs_pma_2/*/transceiver_inst/gtwizard_inst/*/gtwizard_i/gt0_GTWIZARD_i/gtpe2_i]

由于使用了 GTP 原语锁定了 GTP 在芯片中的物理位置,每个 GTP 与相应的 RX、 TX 引脚是一一对应的,因此, GTP 的 RX、 TX 引脚可不作约束。

8.5.5.5 例程测试

本例程测试方式与上一节完全相同,只不过连接与上一节不同,可以使用SFP电口模块与PC机RJ45网口相连接,或者使用SFP光口与PC机光口相连接,或者使用光口转电口模块与PC机RJ45网口相连接,以上方法都可以进行测试。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenFPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档