本文主要介绍ZYNQ PS + PL异构多核案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx SDK 2017.4。其中测试板卡为TMS320C6678开发板,文章内容包含多个特色案例,如axi_gpio_led_demo案例、axi_timer_pwm_demo案例、axi_uart_demo案例、emio_gpio_led_demo案例、mig_dma案例等,由于篇幅过长,文章分为上下6个小节展示,欢迎大家按照顺序进行文章内容查看。
本次测试板卡为TMS320C6678开发板,它是一款基于TI KeyStone架构C6000系列TMS320C6678八核C66x定点/浮点DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC处理器设计的高端异构多核评估板,TMS320C6678开发板每核心主频可高达1.25GHz,XC7Z045/XC7Z100集成PS端双核ARM Cortex-A9 + PL端Kintex-7架构28nm可编程逻辑资源,引出双路CameraLink、双路SFP+光口、四路千兆网口、双路SATA、双路PCIe、四路USB、双路CAN、双路CAMERA、HDMI IN/OUT、LVDS、LCD、RS485、RS232、Micro SD、HPC FMC等接口。
GMII to RGMII IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg160-gmii-to-rgmii.pdf》,具体说明如下。
GMII to RGMII IP核为Zynq-7000 SoC中的以太网物理设备和千兆以太网控制器之间提供了RGMII接口的转换,该IP核可在三种不同的速度模式(10/100/1000Mb/s)之间动态切换。
图 249
可通过MDIO设置IP核的控制寄存器,复位IP核和切换网口的链路速度。
图 250
将GMII to RGMII IP核PHY地址设置为8,并勾选Instantiate IDELAYCTRL in design。
备注:此处的IP核PHY地址不能与硬件PHY地址相同,否则会导致访问出错。
图 251
在约束文件中设置RGMII RX接口的IDELAY tap的值。
图 252
动态设备树源文件为案例"sw\linux_system\src\"目录下的dts文件。
指定GEM1的工作时钟,该工作时钟由FCLK2提供。
图 253
配置GEM1设备节点属性。
图 254
案例功能:评估板通过SFP+光口进行数据外部回环,以测试基于SFP+光口的10G网络通信的速率与误码率。通信数据基于MAC协议进行收发。
图 255 程序功能框图
将评估板ZYNQ端拨码开关设置为00(1~2),此档位为JTAG模式,并使用Micro USB线连接PC机和评估板PS端调试串口CON9(USB TO UART),使用RS232交叉串口母母线、USB转RS232公头串口线,将评估板PL端调试串口CON19(RS232)连接到PC机的USB接口。将一个SFP+多模双纤光模块接入SFP1+光口,并使用一根光纤线缆将光模块的RX与TX相连接,形成外部回环。SFP1+光口使用GTX Quad 110的MGTXRX_3、MGTXTX_3引脚。
图 256
加载PS端裸机程序axi_10g_ethernet_dma_a9.elf、PL端程序后,即可看到PS端串口调试终端打印SFP+光口外部回环的数据传输测试信息。本案例的GTX带宽配置为10Gbps,即理论速度为1250MB/s。
图 257
可从上图得到如下信息:
将本案例PL端Vivado工程axi_10g_ethernet_dma_xxx.bin可执行文件复制到评估板文件系统"/lib/firmware/"目录下,再将"baremetal_demo\bin\"目录下的PL端MicroBlaze应用程序axi_10g_ethernet_dma_microblaze.bin和PS端应用程序tl_devmem_rw,以及CDCM6208时钟配置程序clkgen_cdcm6208、时钟配置文件CDCM6208_Settings.ini复制到评估板文件系统任意相同路径下。
执行如下命令,加载MicroBlaze应用程序至PS端DDR的0x18000000地址。
Target# ./tl_devmem_rw -w -a 0x18000000 -s 100000 -o byte -f axi_10g_ethernet_dma_microblaze.bin
图 258
执行如下命令运行CDCD6208配置程序,配置CDCD6208的Y4通道输出156.25MHz时钟,即配置SFP1+接口对应GTX通道的参考时钟为156.25MHz。
Target# ./clkgen_cdcm6208 -w 0 0x54 ./CDCM6208_Settings.ini
图 259
执行如下命令,加载PL端Vivado工程可执行文件。
Target# echo axi_10g_ethernet_dma_xc7z045.bin > /sys/class/fpga_manager/fpga0/firmware
图 260
执行上述命令后,即可看到PL端串口调试终端打印SFP+光口外部回环的数据传输测试信息。本案例的GTX带宽配置为10Gbps,即理论速度为1250MB/s。
图 261
可从上图得到如下信息:
图 262
图 263
图 264
图 265
图 266
图 267
图 268
图 269
图 270
图 271
图 272
图 273
点击BLOCK DESIGN窗口下的"Address Editor"选项,查看IP核地址,地址分配如下图所示。
图 274
本案例使用10G Ethernet Subsystem IP核实现MAC、PCS/PMA功能。
10G Ethernet Subsystem IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg157-axi-10g-ethernet.pdf》,具体配置说明如下。
图 275 功能框图
图 276 使用场景
图 277
图 278
图 279
图 280
图 281
图 282
图 283
图 284
图 285
图 286
本案例使用AXI DMA IP核将数据在BRAM与SFP+光口之间进行搬运。
AXI DMA(AXI Direct Memory Access) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg021_axi_dma.pdf》,具体配置说明如下。
图 287
m_axi_mm2s_aclk和m_axi_s2mm_aclk的时钟接到10G Ethernet Subsystem IP核的coreclk_out,即156.25MHz。
本案例使用AXI BRAM Controller IP核创建BRAM控制器。
AXI BRAM Controller IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg078-axi-bram-ctrl.pdf》,具体配置说明如下。
图 288
图 289
图 290
图 291
本案例使用Block Memory Generator IP核创建BRAM资源。
Block Memory Generator IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg058-blk-mem-gen.pdf》,具体配置如下。
图 292
案例功能:评估板通过SFP+光口进行数据外部回环,以测试基于SFP+光口的10G UDP网络通信的速率与误码率。
图 293 程序功能框图
将评估板ZYNQ端拨码开关设置为00(1~2),此档位为JTAG模式,并使用Micro USB线连接PC机和评估板PS端调试串口CON9(USB TO UART),使用RS232交叉串口母母线、USB转RS232公头串口线,将评估板PL端调试串口CON19(RS232)连接到PC机的USB接口。将一个SFP+多模双纤光模块接入SFP1+光口,并使用一根光纤线缆将光模块的RX与TX相连接,形成外部回环。SFP1+光口使用GTX Quad 110的MGTXRX_3、MGTXTX_3引脚。
图 294
加载PS端裸机程序udp_10g_dma_a9.elf、PL端程序后,即可看到PS端串口调试终端打印SFP+光口外部回环的数据传输测试信息。本案例的GTX带宽配置为10Gbps,即理论速度为1250MB/s。
图 295
可从上图得到如下信息:
留言与评论(共有 0 条评论) “” |