基于Xilinx的RapidIO核的SRIO的自定义AXI总线设计

Rapid IO协议由于无主机,且各设备之间可以并行交换信息,所以广泛应用于对交换速率要求高,且交互复杂的应用中。

基于Xilinx的RapidIO核的SRIO的自定义AXI总线设计

Xilinx现在有支持Serial RapidIO Gen2的核,可以应用在此场景中,但Xilinx 的 Rapid IO 核对外接口仅有 AXI 流接口 ,且对各类数据流的处理需要外部单独设计,不能方便的对消息、门铃、数据进行读写传输。本文介绍了将RapidIO核出来的接口转换到AXI总线上的设计。

SRIO转AXI的设计

1. SRIO 协议层框架设计

基于Xilinx的RapidIO核的SRIO的自定义AXI总线设计

本地设备(Local Device)生成的请求(Requests)通过ireq通道发送,远程设备(Remote Device)产生的响应包通过iresp通道接收来完成整个事务的交互过程。

 远程设备(Remote Device)生成的请求(Requests)通过treq通道接收,本地设备(Local Device)产生的响应包通过tresp通道发送来完成整个事务的交互过程。

 

在顶层模块中,变量名与通道的对应关系如下:

  s_axis_ireq* 对应于ireq通道

  m_axis_iresp* 对应于iresp通道

  m_axis_treq* 对应于treq通道

  s_axis_tresp* 对应于tresp通道

 

2.

m_axis_treq 端口介绍 :

该端口会收到CPU 发送的读写数据包,以及门铃和消息数据包

写数据包分为 NWRITE 和 SWRITE 两种,其中SWRITE 数据包中不包含数据包的长度信息。

门铃和消息接口:

基于Xilinx的RapidIO核的SRIO的自定义AXI总线设计

 

3. S_axis_tresp

 该端口为响应端口,主要负责形成SRIO的数据包的响应数据包。该模块能自动回应读写,门铃消息等数据包的响应包。

主要接口读数据用户接口:

基于Xilinx的RapidIO核的SRIO的自定义AXI总线设计

4、

m_axis_ireq

 该端口为FPAG 主动请求端口,主要负责形成SRIO的数据包的响应数据包。该模块能自动生产读写,门铃消息等数据包的请求 数据包包。

基于Xilinx的RapidIO核的SRIO的自定义AXI总线设计

 

5. demo 仿真示意图

基于Xilinx的RapidIO核的SRIO的自定义AXI总线设计

上一篇:数据可视化基础专题(二十六):numpy80题(五)NumPy进阶修炼第三期|41-60


下一篇:np.stack() 堆叠一维数组时用法