关于AXI_NET (PL NET)的设计,基于AMD XILINX XU4EV芯片(1)

1 篇文章 0 订阅
1 篇文章 0 订阅

前言

 我们在做SOC开发时总是少不了AXI建立的网络,毕竟PU的网口有限,但是此IP又非常复杂,我们先从应用开始学习,让它不那么难懂。
 开发环境:
 vivado 2020.1
 vitis 2020.1
 开发板硬件:
 黑金AXU4EV-P开发板,也可以用正点原子的ZU2CG的MPSOC的开发板,只是一个硬件而已。

建立工程:

我们先建立一个工程(此部分不针对入门者):
整体工程如下:
在这里插入图片描述

1.1 配置中断和 AXI HP0 FPD

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看BLOCK DESIGN我们可以知道此部分和AXI DMA数据强相关。
在这里插入图片描述
中断有四路进来

1.2. 添加 AXI 1G/2.5G Ethernet Subsystem 模块

在这里插入图片描述

1.3. 配置速度为 1Gbps,PHY 接口为 RGMII

在这里插入图片描述

1.4. 时钟调整至300MHz, 点击 OK

原因如下:
在这里插入图片描述

在这里插入图片描述
全部参数性能要至最大,为了iperf 性能。
在这里插入图片描述

1.5.关于refclk

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.6自动生成

在这里插入图片描述

1.7 绑定引脚,并生成 bitstream,导出硬件信息,主要是约束了。

RGMII的例子:

set_property PACKAGE_PIN A6 [get_ports {mdio_mdc }]
set_property PACKAGE_PIN C8 [get_ports {mdio_mdio_io }]
set_property PACKAGE_PIN D5 [get_ports {phy_reset_n }]
set_property PACKAGE_PIN E5 [get_ports {rgmii_rxc }]
set_property PACKAGE_PIN B8 [get_ports {rgmii_rx_ctl }]
set_property PACKAGE_PIN A5 [get_ports {rgmii_rd[0] }]
set_property PACKAGE_PIN B5 [get_ports {rgmii_rd[1] }]
set_property PACKAGE_PIN F8 [get_ports {rgmii_rd[2] }]
set_property PACKAGE_PIN C9 [get_ports {rgmii_rd[3] }]
set_property PACKAGE_PIN A7 [get_ports {rgmii_txc }]
set_property PACKAGE_PIN B9 [get_ports {rgmii_tx_ctl }]
set_property PACKAGE_PIN E9 [get_ports {rgmii_td[0] }]
set_property PACKAGE_PIN D9 [get_ports {rgmii_td[1] }]
set_property PACKAGE_PIN A9 [get_ports {rgmii_td[2] }]
set_property PACKAGE_PIN A8 [get_ports {rgmii_td[3] }]

set_property IOSTANDARD LVCMOS18 [get_ports {mdio_mdc }]
set_property IOSTANDARD LVCMOS18 [get_ports {mdio_mdio_io }]
set_property IOSTANDARD LVCMOS18 [get_ports {phy_reset_n }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_rxc }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_rx_ctl }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_rd[0] }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_rd[1] }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_rd[2] }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_rd[3] }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_txc }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_tx_ctl }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_td[0] }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_td[1] }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_td[2] }]
set_property IOSTANDARD LVCMOS18 [get_ports {rgmii_td[3] }]

set_property UNAVAILABLE_DURING_CALIBRATION TRUE [get_ports mdio_mdio_io]

#idelay
set_property DELAY_VALUE 500 [get_cells design_1_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_i/rgmii_interface/delay_rgmii_rx_ctl]
set_property DELAY_VALUE 500 [get_cells {design_1_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_i/rgmii_interface/rxdata_bus[0].delay_rgmii_rxd}]
set_property DELAY_VALUE 500 [get_cells {design_1_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_i/rgmii_interface/rxdata_bus[1].delay_rgmii_rxd}]
set_property DELAY_VALUE 500 [get_cells {design_1_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_i/rgmii_interface/rxdata_bus[2].delay_rgmii_rxd}]
set_property DELAY_VALUE 500 [get_cells {design_1_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_i/rgmii_interface/rxdata_bus[3].delay_rgmii_rxd}]

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

set_property IOSTANDARD DIFF_SSTL12 [get_ports sys_clk_clk_p]
set_property PACKAGE_PIN AE5 [get_ports sys_clk_clk_p]
set_property PACKAGE_PIN AF5 [get_ports sys_clk_clk_n]
set_property IOSTANDARD DIFF_SSTL12 [get_ports sys_clk_clk_n]
create_clock -period 5.000 -name sys_clk_clk_p -waveform {0.000 2.500} [get_ports sys_clk_clk_p]

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值