一种基于ZYNQ平台软核的SRIO控制方法与流程

文档序号:14571440发布日期:2018-06-01 22:18阅读:665来源:国知局
一种基于ZYNQ平台软核的SRIO控制方法与流程

本发明涉及电路涉及技术领域,特别涉及一种基于ZYNQ平台软 核的SRIO控制方法。



背景技术:

Xilinx公司的ZYNQ平台是一款可扩展处理平台,芯片集成了用 于软件控制的处理器系统部分(PS)和用于硬件IP设计的可编程逻辑 部分(PL),与传统的微处理器平台相比,ZYNQ平台具有强大的并 行处理能力和丰富的外围接口,与可编程数字电路相比,它具有良好 的浮点计算能力和控制处理能力。ZYNQ平台的PL部分拥有丰富IP资 源,用户可以基于其IP进逻辑设计的扩展,Serial RapidIO Gen2是用 于SRIO总线开发的一个逻辑IP核,它可以实现AXI4_Stream接口和 SRIO物理层接口的转换,从而实现高吞吐量的数据传输。

使用ZYNQ平台实现符合RapidIO标准的SRIO控制器需要完成的 工作有RapidIO数据流控制、逻辑层控制和传输层控制。目前的实现 主要有两种方案:一是在ZYNQ的PL部分实现SRIO控制器,完成; 二是在ZYNQ的PS部分实现SRIO控制器,完成RapidIO数据流控制、 逻辑层控制和传输层控制。在方案一中,PS部分仅需要进行简单的寄 存器操作即可以发起数据传输,但PL部分代码层次多且复杂性高, 使得调试难度大,开发周期长;在方案二中,PL部分仅需要完成Serial RapidIO Gen2到PS之间的数据流连接,PS部分完成数据流控制、逻辑 层控制和传输层控制,软件实现和调试容易且开发周期短,但是会大 量占用PS部分处理能力和中断信号,造成PS部分软件运行效率较低。ZYNQ平台的PL部分的逻辑资源十分丰富,并且支持生成可定制的 MicroBlaze(MB)软核处理器,当软核处理器运行在150MHZ时钟下, 可达到125DMIPS的性能,非常适合于网络、数据通信和消费市场等 较为复杂的嵌入式系统设计。



技术实现要素:

本发明的目的在于提供一种基于ZYNQ平台软核的SRIO控制方法, 用于解决上述现有技术的问题。

本发明一种基于ZYNQ平台软核的SRIO控制方法,其中,包括: PS处理系统发起主动写传输,包括:步骤1,准备好主动传输请求的 参数;步骤2,主动请求发现新请求;步骤3,根据请求参数中的地 址和长度进行数据包拆分,开始一个数据包的传输;步骤4,为数据 包生成HELLO格式头部,并通知开始包传输;步骤5,将HELLO格式 头部写入SRIO Gen2IP核,控制MM2S总线时序,配合完成数据传输; 步骤6,开始将数据从DDR存储器传输;步骤7,完成数据包到SRIO 总线的发送;步骤8,通过中断通知当前数据包完成;步骤9,中断 处理子模块接收到中断,通知启动下一个数据包的传输,重新进入步 骤3,直至所有该次主动传输请求中的所有数据包传输完毕;SRIO总 线发起从动写传输的方法,包括:步骤1,收到SRIO总线事务;步 骤2,监测到有新的从动传输请求,通知控制S2MM总线时序,配合 完成数据传输;步骤3,从SRIO Gen2IP核中提取HELLO格式头部, 并发出中断;步骤4,接收到中断后,进行处理从动传输请求;步骤 5,发现新的请求,并读取HELLO格式头部;步骤6,根据HELLO格 式头部解出从动传输请求的参数;步骤7,开始将数据传输至DDR存 储器;步骤8,完成HELLO格式数据包的接收。

本发明的基于ZYNQ平台软核的SRIO控制方法,在ZYNQ平台下,通 过PL资源生成MicroBlaze软核,通过PS、PL和软件核实现SRIO控制器。 本发明通过在ZYNQ平台PL内部实现MicroBlaze(MB)软核处理器, 并将上述方案中数据流控制、逻辑层控制和传输层控制的工作放到软 核中来完成,解决了方案一中调试难度大、开发周期长和方案二中PS 部分软件运行效率较低的难题,非常适用于在ZYNQ平台下实现SRIO 控制器。使用PL可编程逻辑资源生成MB软核处理器,通过软件代码和 逻辑代码的配合,实现SRIO的主动传输和从动传输两种传输方式。

附图说明

图1所示为本控制器的整体模块结构示意图;

图2所示为SRIO传输控制模块示意图;

图3所示为SRIO数据收发模块示意图;

图4所示为主动传输控制模块示意图;

图5所示为从动传输控制模块示意图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实 施例,对本发明的具体实施方式作进一步详细描述。

图1所示为本发明基于ZYNQ平台软核的SRIO控制器的模块示意 图,如图1所示,基于ZYNQ平台软核的SRIO控制器包括:DDR存储器1, 用于存储SRIO传输的数据;PS处理系统2,用于运行应用软件,能够 提效SRIO主动传输请求;PL可编程逻辑模块,提供丰富的可编程逻辑 资源,用于生成MB软核处理器和实现控制逻辑;PS处理系统分别与DDR 存储器1和PL可编程逻辑模块相连。

如图1所示,PL可编程逻辑模块包括:SRIO传输控制模块6,处理 PS处理系统提交的主动传输请求和SRIO数据收发模块8提交的从动传 输请求。SRIO数据收发模块,监视SRIO总线上的从动传输请求和SRIO 传输控制模块6下发的主动传输请求,完成SRIO总线数据传输。AXI 互联1模块,用于将PL可编程逻辑内部与PS处理系统进行总线互联, 其中,AXI互联1模块包括:

AX互联1-1模块3,用于连接SRIO传输控制模块6与PS处理系统2 的HP0端口连接,可以提供高性能的从DDR存储器1到SRIO传输控制模 块6的MM2S数据流;

AX互联1-2模块4,用于连接SRIO传输控制模块6与PS处理系统2 的HP1端口连接,可以提供高性能的从SRIO传输控制模块6到DDR存储 器1的S2MM数据流;

AX互联1-3模块5,用于连接SRIO传输控制模块6与PS处理系统2 的GP0端口连接,通过该模块PS处理系统2应用软件可以向SRIO传输控 制模块6提交主动传输请求、查看传输完成状态;

AX互联1-4模块7,用于连接SRIO传输控制模块6与SRIO数据收发 模块8连接,通过该模块SRIO传输控制模块6可以控制SRIO数据收发模 块8的数据传输。

图2所示为SRIO传输控制模块示意图,图3所示为SRIO数据收发模 块示意图,如图2以及图3所示,一种基于ZYNQ平台软核的SRIO控制方 器,使用PL可编程逻辑的资源生成MicroBlaze(MB)软核处理器,用 于实现存储器和SRIO总线之间的传输控制。

图4所示为主动传输控制模块示意图,如图2以及图4所示,SRIO 传输控制模块6的功能由MB软核处理器运行C语言软件代码实现,包 括:

主动传输控制模块61,处理PS处理系统发起的SRIO事务,包括:

主动请求监视单元601,用于监视PS处理系统写入寄存器的值, 并将正确的主动传输请求(包含事务类型、设备号、地址、长度等) 发送给数据包拆分单元602;

数据包拆分单元602,根据主动传输请求的地址和长度,按照SRIO 标准将数据源拆分成多个子数据包,并监视子数据包完成的状态;

HELLO格式生成单元603,将子数据包封装成HELLO格式包头和 数据体,并通知SRIO数据收发模块8和DMA命令/状态控制模块64 开始数据传输。

图5所示为从动传输控制模块示意图,如图2以及图5所示,从 动传输控制模块63,处理SRIO数据收发模块接8收到的从动传输请 求,包括:从动请求监视单元61,监视并处理SRIO数据收发模块8 的从动请求中断;HELLO格式解析单元632,读取HELLO格式包头解 析出从动传输请求(包含事务类型、设备号、地址、长度等),并通 知SRIO数据收发模块8和DMA命令/状态控制模块64开始数据传输。

如图2所示,DMA控制/状态控制模块63,发起DMA传输并根据 状态管理DMA控制器65。

如图2所示,中断处理模块62,处理DMA控制器65的中断并通 知主动传输模块61、从动传输模块63和DMA控制/状态控制模块64。

如图2所示,DMA控制器模块64,包含MM2S和S2MM两个数据流 通道,DMA命令/状态控制单元通过AXI_LITE接口访问该模块。

如图2所示,AXI互联2模块66,用于连接DMA控制器模块65 和DMA命令/状态控制单元64。

SRIO数据收发模块8由逻辑代码实现,包括:SRIO数据传输逻 辑模块,按照SRIO传输控制模块的请求启动MM2S和S2MM数据传输, 并根据传输状态向SRIO传输控制模块进行中断反馈;SRIO Gen2IP 核,用于完成SRIO总线事务的接收和发送;MM2S数据收发模块,按 照时序要求将SRIO传输控制模块输出的数据流发送给SRIO Gen2IP 核;S2MM数据收发模块,按照时序要求从SRIO Gen2IP核接收数据, 将数据流发送给SRIO传输控制模块。

如图1至图5所示,本实施例一提供PS处理系统2发起主动写传输, 设置于本地PS处理系统和外部SRIO总线之间,具体包括:

步骤1,PS处理系统2准备好主动传输请求的参数(包含事务类型、 设备号、地址、长度等),通过AXI互联1-2模块3写入SRIO传输控制模 块6;

图4所示为主动传输控制模块示意图,如图4所示,步骤2,在SRIO 传输控制模块6中,主动传输控制子模块的主动请求监视单元发现新 请求;

步骤3,SRIO传输控制模块6中,主动传输控制子模块的数据包 拆分单元根据请求参数中的地址和长度进行数据包拆分,开始一个数 据包的传输;

步骤4,SRIO传输控制模块中,主动传输控制子模块的HELLO格 式生成单元为数据包生成HELLO格式头部,通过AXI互联1-4通知 SRIO数据收发模块开始包传输;

步骤5,如图3所示,SRIO数据收发模块中,SRIO数据传输逻 辑子模块将HELLO格式头部写入SRIO Gen2IP核,通知MM2S数据收 发模块控制MM2S总线时序,配合完成数据传输;

步骤6,如图2所示,SRIO传输控制模块中,DMA命令/状态子 模块通过AXI互联2模块通知DMA控制器模块开始将数据从DDR存储 器传输至SRIO数据收发模块;

步骤7,SRIO数据收发模块中,MM2S数据传输子模块和SRIO Gen2 IP核配合完成数据包到SRIO总线的发送;

步骤8,SRIO数据收发模块中,SRIO数据传输逻辑子模块通过 中断通知SRIO传输控制模块当前数据包完成;

步骤9,SRIO传输控制模块中,中断处理子模块接收到中断,通 知主动传输控制子模块的数据包拆分单元启动下一个数据包的传输, 重新进入步骤3,直至所有该次主动传输请求中的所有数据包传输完 毕。

如图1至图5所示,另一实施例提供SRIO总线发起从动写传输 的方法,设置于外部SRIO总线和本地PS处理系统之间,具体包括: SRIO数据收发模块,用于接收SRIO总线事务;AXI互联1-4模块, 用于访问SRIO数据收发模块的寄存器;SRIO传输控制模块,按照从 动传输请求控制SRIO数据收发模块到DDR存储器的发送;AXI互联 1-2模块,用于访问SRIO传输控制模块的寄存器;AXI互联1-3模块 5,用于向DDR存储器写入高速数据流。具体步骤如下:

步骤1,如图1所示,SRIO数据收发模块收到SRIO总线事务;

步骤2,如图3所示,SRIO数据收发模块中,SRIO数据传输逻 辑子模块监测到有新的从动传输请求,通知S2MM数据传输子模块控 制S2MM总线时序,配合完成数据传输;;

步骤3,SRIO数据收发模块中,SRIO数据传输逻辑子模块从SRIO Gen2IP核中提取HELLO格式头部,并通过中断通知SRIO传输控制 模块;

步骤4,如图2所示,SRIO传输控制模块中,中断处理子模块接 收到中断,通知从动传输控制子模块处理从动传输请求;

步骤5,如图5所示,SRIO传输控制模块中,从动传输控制子模 块的从动请求监视单元发现新的请求,并通过AXI互联1-4读取HELLO 格式头部;

步骤6,SRIO传输控制模块中,从动传输控制子模块的HELLO格 式解析单元根据头部解出从动传输请求的参数(包含事务类型、设备 号、地址、长度等);

步骤7,SRIO传输控制模块中,DMA命令/状态子模块通过AXI 互联2模块通知DMA控制器模块开始将数据从SRIO数据收发模块传 输至DDR存储器;

步骤8,SRIO数据收发模块中,S2MM数据传输子模块和SRIO Gen2 IP核配合完成HELLO格式数据包的接收。

本发明提供了一种基于ZYNQ平台实现的SRIO控制方法,充分利 用了ZYNQ平台逻辑资源丰富、可定制、可扩展的优势,用于指导开 发者在ZYNQ平台下进行SRIO控制器的开发。具有的优点包括:架 构设计层次分明,逻辑代码功能简单,调试难度小,开发周期短; 由MB软核处理器实现SRIO传输控制,PS部分处理能力不受影响。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领 域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以 做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1