【JokerのKCU105】SGMII。

软件环境:vivado 2019.1 硬件平台:KCU105


我之前一直以为,SGMII只能走GT BANK使用SFP口,直到很偶然的情况下,我发现了居然在普通的BANK走LVDS也行,不信邪的我一直想要试一试,恰巧我的一个好哥们儿(无中生友…)手上就有一块KCU105,接下来就记录下整个调试过程。

在建立工程时候直接选择Board,然后搜索KCU105就行。

新建block design,因为是基于KCU105的模板工程,所以IP的设定有更简单的操作,在最上方选择board,将DDR4 SDRAM和UART依次拖到右侧block design中。

再加入microblaze核,添加好后,选择上方的run block automation进行参数设置。

 接下来选择run connection automation进行连线,注意不要勾选microblaze下方相关接口。


电口 SGMII

接下来在左侧board选项卡中,将onboard PHY拖入右侧block design中,点击上方run block automation后,选择axi stream接口与DMA连接(官方推荐是接FIFO,但我是个传统的人,我就偏要接DMA)。

把生成好的axi_ethernet双击打开看了一眼,配置页确实有LVDS接口的选项,那难怪sgmii能走LVDS接口呢,属实是我自己没见过世面了。

之后继续点击上方run connection automation,勾选两个axi总线。

 继续点击上方run connection automation,勾选DMA的3个接口和axi ethernet的axis_clk接口,注意,axis_clk时钟源选择ddr4出的100M的。

 设置好后,这里有一个小问题如下图,sg_clk单独接到300M了,这里右键disconnect pin,将其与下方mm2s_aclk和s2mm_aclk接到一起。

再添加AXI_TIMER模块,一样run connection automation。

最后,将concat改为4口,将axi_ethernet、axi_dma、axi_timer中断与concat连接好后,整个block design为下方样子。 

 生成bitstream,导入sdk,建立lwip这个没什么特殊的,就不细说了,可以看到sgmii_lvds确实是没什么问题。


SFP SGMII

接下来说下我一直以为的SFP接口的SGMII怎么搞,这里先把刚才工程的axi_ethernet以及与此相连的接口删掉,然后在左侧board选项卡中,把PHY using SFP0拖到右侧block design中,选择sfp0 using mgt_si570_clk,GT时钟源由可编程时钟si570供。

 这时候需要注意一下,双击打开axi_ethernet核,在physical interface选项卡中,将gt的参考时钟调整为125M,默认的是156.25M。

 接下来点击最上方的run block automation,将axi_ethernet连接到axi_dma,由于刚才我只删了axi_ethernet,并没有动过axi_dma,所以这里不用再次添加,直接连就行了。

继续再点击run connection automation,勾选s_axi自动连接。

双击DDR4核,在advanced clocking页中,添加个50M时钟输出,并将这个50M的时钟,连接axi_ethernet的ref_clk。 

 添加constant核,输出1就行,连接到axi_ethernet的signal_detect。

最后,将axi_ethernet的interrupt接到concat上后,整个block design为下方样子。

 接下来依旧是生成bitstream,导出到SDK,在板卡上电前,需要首先看下J6的这个SFP Enable的跳线帽插了没,插上SFP0才能用。

板子上电前把串口打开,一共能识别两个串口出来,选择增强串口用于参数板卡参数设定,波特率115200。

 上电后,打印如下所示。

 选择1,设置可编程时钟

选择7,看一下当前Si570可编程时钟输出频率,可以看到,默认的是156.25M

 选择1,修改可编程时钟Si570输出频率

可以看到,可设定范围为10-810MHz,这里设置为125MHz

 此时选7回读,看到125MHz,确定设置生效了

接下来可以将SDK程序进行加载了,可以将串口换到普通串口,波特率9600,能看到lwip加载时候的打印,加载起来后,可以看到ping也是没问题的,开个网口助手,192.168.1.10端口7,收发数据正常。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值