创龙营销组 发表于 2021-3-15 16:19:21

想了解DSP+ZYNQ核间通讯?看完这篇就够了



上篇推文为大家介绍了创龙科技(Tronlong)最新推出的DSP + ZYNQ评估板TL6678ZH-EVM,由核心板和底板构成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100两款不同架构的处理器。
http://www.tronlong.com/Uploads/202103/604f160a0def2.png
点击图片了解详情

那么这款DSP + ZYNQ核心板,是如何实现核间通讯呢?

http://www.tronlong.com/Uploads/202103/604f119b6002d.png

核心板简介
SOM-TL6678ZH是一款基于TIKeyStone架构C6000系列TMS320C6678八核C66x定点/浮点DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC处理器设计的高端异构多核工业级核心板。
TMS320C6678每核心主频可高达1.25GHz,XC7Z045/XC7Z100集成PS端双核ARM Cortex-A9 + PL端Kintex-7架构28nm可编程逻辑资源。核心板内部DSP与ZYNQ通过SRIO通信总线连接,并通过工业级高速B2B连接器引出千兆网口、PCIe、HyperLink、EMIF16、USB、CAN、UART、GTX等通信接口。

http://www.tronlong.com/Uploads/202103/604f11c92b108.pnghttp://www.tronlong.com/Uploads/202103/604f11c9a70a6.png


本文主要介绍DSP + ZYNQ基于SRIO的通信案例。
案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点击下方链接或扫码二维码获取。
http://site.tronlong.com/pfdownload
http://www.tronlong.com/Uploads/202103/604f11f1c2463.png


1 SRIO简介
SRIO(Serial Rapid I/O)是高速串行RapidIO通信接口,常用于DSP与DSP、DSP与FPGA之间的数据高速传输。SRIO引脚占用数量少,支持多点传输,速率可配置为1.25Gbps、2.5Gbps、3.125Gbps和5Gbps。
SRIO包含三层结构协议,即物理层、传输层、逻辑层。
(1) 逻辑层:定义包的类型、大小、物理地址、传输协议等必要配置信息。(2) 传输层:定义包交换、路由和寻址规则,以确保信息在系统内正确传输。(3) 物理层:包含设备级接口信息,如电气特性、错误管理数据和基本流量控制数据等信息。
RapidIO体系结构如下:

http://www.tronlong.com/Uploads/202103/604f121038b4e.pnghttp://www.tronlong.com/Uploads/202103/604f121093d38.png



2 SRIO通信案例


2.1 案例功能

评估板DSP端和ZYNQ PL端进行SRIO通信测试,并统计读写速率。评估板DSP端作为Initiator,评估板ZYNQ PL端作为Target。SRIO默认配置为x4模式,每个通道速率5Gbps,并分别使用NWRITE + NREAD和SWRITE + NREAD模式进行测试。ZYNQ PL端使用一个36Kbit的BRAM作为设备存储空间,将DSP端发送的过来数据储存至BRAM。

2.2 案例测试
先加载运行ZYNQ PL端程序,再运行DSP端程序,CCS Console窗口将打印测试结果。NWRITE + NREAD模式:NWRITE= 12.50GbpsNREAD= 7.74GbpsSWRITE + NREAD模式:SWRITE= 12.49Gbps   NREAD= 7.74Gbps
备注:由于写测试仅统计发送数据至SRIO FIFO的时间,读测试统计发送读请求并等待Target发送数据完成的时间,因此写速率将比读速率高。

http://www.tronlong.com/Uploads/202103/604f123f8c631.png



2.3 关键代码2.3.1 DSP工程
(1) 程序配置说明。
http://www.tronlong.com/Uploads/202103/604f12567e381.png


(2) 使能SRIO PSC,初始化SRIO子系统,SRIO通信测试。
http://www.tronlong.com/Uploads/202103/604f1274bbe4d.png
http://www.tronlong.com/Uploads/202103/604f128d77a94.png
http://www.tronlong.com/Uploads/202103/604f12a211108.png


(3) 以NWRITE + NREAD和SWRITE + NREAD模式进行SRIO通信测试,单次读写大小为transfer_size,单位为Byte。w_format_type写格式类型在main函数中调用srio_test()传入。

http://www.tronlong.com/Uploads/202103/604f13e188130.png


(4) SRIO写测试流程。

http://www.tronlong.com/Uploads/202103/604f143bcbd13.pnghttp://www.tronlong.com/Uploads/202103/604f143beade0.pnghttp://www.tronlong.com/Uploads/202103/604f143c12b89.png


(5) SRIO读测试流程。

http://www.tronlong.com/Uploads/202103/604f147a5dbb2.pnghttp://www.tronlong.com/Uploads/202103/604f147a78d30.pnghttp://www.tronlong.com/Uploads/202103/604f147a9c6b0.png



2.3.2 ZYNQ工程
(1) 端口定义。
http://www.tronlong.com/Uploads/202103/604f14b8d65ac.png

(2) 使用STARTUPE2原语提供的EOS作为系统复位信号,CFGMCLK(65MHz)作为系统时钟。

http://www.tronlong.com/Uploads/202103/604f14d00d8a0.png

(3) 例化Serial RapidIO Gen2 IP核。

http://www.tronlong.com/Uploads/202103/604f14e559cc8.png

http://www.tronlong.com/Uploads/202103/604f1556372aa.png
http://www.tronlong.com/Uploads/202103/604f156908a31.png

其中Serial RapidIO Gen2 IP核输出的log_clk为125MHz。

http://www.tronlong.com/Uploads/202103/604f157a80959.png

(4) 调用srio_response_gen模块,其接口与Serial RapidIO Gen2 IP核连接。
http://www.tronlong.com/Uploads/202103/604f15944c1dc.png

http://www.tronlong.com/Uploads/202103/604f15b14718a.pnghttp://www.tronlong.com/Uploads/202103/604f15b185135.png
SRIO详细开发说明请参考产品光盘“6-开发参考资料\TI官方参考文档\”目录下的《Serial Rapid IO (SRIO) User Guide.pdf》文档。
备注:关于本案例涉及的IP核、模块的配置详细说明,可下载产品资料进行查看。

3 技术交流群
C6678交流群:79635273、332643352ZYNQ交流群:193393878、645235672

4 热门产品推荐
http://www.tronlong.com/Uploads/202103/604f15d074713.pnghttp://www.tronlong.com/Uploads/202103/604f15d0a9cf5.png



页: [1]
查看完整版本: 想了解DSP+ZYNQ核间通讯?看完这篇就够了