计算机系统应用教程网站

网站首页 > 技术文章 正文

TMS320C6678开发板 ZYNQ PS + PL异构多核案例开发手册(5)

btikc 2024-11-24 12:11:06 技术文章 27 ℃ 0 评论

本文主要介绍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等接口。

IP核配置

GMII to RGMII IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg160-gmii-to-rgmii.pdf》,具体说明如下。

GMII to RGMII IP核为Zynq-7000 SoC中的以太网物理设备和千兆以太网控制器之间提供了RGMII接口的转换,该IP核可在三种不同的速度模式(10/100/1000Mb/s)之间动态切换。

可通过MDIO设置IP核的控制寄存器,复位IP核和切换网口的链路速度。

将GMII to RGMII IP核PHY地址设置为8,并勾选Instantiate IDELAYCTRL in design。

备注:此处的IP核PHY地址不能与硬件PHY地址相同,否则会导致访问出错。

在约束文件中设置RGMII RX接口的IDELAY tap的值。

设备树配置说明

动态设备树源文件为案例"sw\linux_system\src\"目录下的dts文件。

指定GEM1的工作时钟,该工作时钟由FCLK2提供。

配置GEM1设备节点属性。

axi_10g_ethernet_dma案例

案例功能

案例功能:评估板通过SFP+光口进行数据外部回环,以测试基于SFP+光口的10G网络通信的速率与误码率。通信数据基于MAC协议进行收发。

操作说明

将评估板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端裸机测试

加载PS端裸机程序axi_10g_ethernet_dma_a9.elf、PL端程序后,即可看到PS端串口调试终端打印SFP+光口外部回环的数据传输测试信息。本案例的GTX带宽配置为10Gbps,即理论速度为1250MB/s。

图 257

可从上图得到如下信息:

  1. SFP+光口外部回环的数据传输速率为1035MB/s。
  2. SFP+光口外部回环的数据传输误码率为0。

基于PL端MicroBlaze测试

将本案例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

可从上图得到如下信息:

  1. SFP+光口外部回环的数据传输速率为1035MB/s。
  2. SFP+光口外部回环的数据传输误码率为0。

关键代码(PS端裸机/PL端MicroBlaze)

  1. 配置10G Ethernet IP核为巨帧模式,使能RX和TX接口。

图 262

  1. 初始化并校准Timer。

图 263

  1. 初始化DMA设备。

图 264

  1. 使用轮询模式,关闭DMA中断。

图 265

  1. 构建每次传输所要发送的数据包。每一个MAC数据包的第12个Byte和第13个Byte的值表示MAC数据包的长度值。

图 266

  1. 分别往DMA设备写入源地址、目的地址与数据量,并启动DMA传输。

图 267

  1. 启动DMA传输后,使用Timer进行计时,等待DMA传输完成后计算数据传输速率。

图 268

  1. 每次传输完成后校验所传输的数据。先校验接收到MAC数据包的第12个Byte和第13个Byte的值是否正确,然后按照创建数据包的格式填充对应的值,以便对用户数据进行校验。

图 269

图 270

  1. 计算数据传输平均速率与误码率。

图 271

  1. PS端裸机程序:通过PS端I2C配置CDCM6208的Y4通道输出156.25Mhz时钟,作为SFP+接口GTX的参考时钟。

图 272

图 273

Vivado工程说明

点击BLOCK DESIGN窗口下的"Address Editor"选项,查看IP核地址,地址分配如下图所示。

图 274

IP核配置

10G Ethernet Subsystem IP核

本案例使用10G Ethernet Subsystem IP核实现MAC、PCS/PMA功能。

10G Ethernet Subsystem IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg157-axi-10g-ethernet.pdf》,具体配置说明如下。

图 275 功能框图

图 276 使用场景

  1. 根据手册,按如下格式可通过AXI4-Stream接口收发数据包。

图 277

图 278

  1. AXI4-Stream接口位宽选择64bit。

图 279

  1. AXI4-Lite总线时钟配置为100MHz。

图 280

  1. 选择Include Shared Logic in core模块。

图 281

  1. 勾选"Additional transceiver control and status ports",设置TX Pre-Cursor、TX Post-Cursor和TX Diff Swing选项值以提高信号质量。其中TX Pre-Cursor设置为0x04(00100),TX Post-Cursor设置为0x0F(001111),TX Diff Swing设置为0x6(0110)。

图 282

图 283

图 284

图 285

图 286

AXI DMA IP核

本案例使用AXI DMA IP核将数据在BRAM与SFP+光口之间进行搬运。

AXI DMA(AXI Direct Memory Access) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg021_axi_dma.pdf》,具体配置说明如下。

  1. 取消默认勾选的Enable Scatter Gather Engine选项,配置DMA工作模式为直接寄存器模式(Direct Register Mode)。
  2. Width of Buffer Length Register设置为23,则DMA单次传输最大寻址范围为2^(Width of Buffer Length Register),DMA单次传输最大数据量为2^(Width of Buffer Length Register)*8=8MByte。
  3. 读/写通道的Memory Map Data Width、Stream Data Width均设置为64,Max Burst Size均设置为256。

图 287

m_axi_mm2s_aclk和m_axi_s2mm_aclk的时钟接到10G Ethernet Subsystem IP核的coreclk_out,即156.25MHz。

AXI BRAM Controller IP核

本案例使用AXI BRAM Controller IP核创建BRAM控制器。

AXI BRAM Controller IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg078-axi-bram-ctrl.pdf》,具体配置说明如下。

  1. FCLK_CLK1输出200MHz时钟作为BRAM的工作时钟。

图 288

图 289

  1. 在BLOCK DESIGN界面的"Address Editor"选项中配置BRAM大小为1MByte。

图 290

  1. 配置数据位宽为256,BRAM接口数量为1。

图 291

Block Memory Generator IP核

本案例使用Block Memory Generator IP核创建BRAM资源。

Block Memory Generator IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg058-blk-mem-gen.pdf》,具体配置如下。

图 292

udp_10g_dma案例

案例功能

案例功能:评估板通过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端裸机测试

加载PS端裸机程序udp_10g_dma_a9.elf、PL端程序后,即可看到PS端串口调试终端打印SFP+光口外部回环的数据传输测试信息。本案例的GTX带宽配置为10Gbps,即理论速度为1250MB/s。

图 295

可从上图得到如下信息:

  1. SFP+光口外部回环的数据传输速率为1208MB/s。
  2. SFP+光口外部回环的数据传输误码率为0。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表