RapidIO®:使用 Avalon® Streaming 直通接口自定义实现

author-image

作者

此设计示例展示了采用 RapidIO 中的 Avalon Streaming (Avalon-ST) 直通接口作为平台来实现简单的自定义事务。通过使用此接口,除了逻辑层其他常用的模块函数,用户还可以非常灵活地编写和组织数据包格式。

为了简化此设计示例,已禁用 I/O 主从等其他逻辑层模块。此设计展示了 2.5-Gbaud 1x 串行 RapidIO 链接,在 GUI 上启用了 Avalon-ST 直通接口。

设计架构概览如下图所示:

过程流程

  1. 端口已初始化(RapidIO 链路建立)
  2. RapidIO 初始化
  3. 发送写入文件包(与 NWrite 事务类似)
    • 系统控制器 A 命令数据包生成器将数据包发送至 RapidIO A
    • 系统控制器 B 将数据包通过链路发送至 RapidIO B,并存储在 RAM 中
    • 写入数据包可以针对载荷大小和数据包数量进行调整
  4. 发送门铃消息
    • 系统控制器 A 命令数据包生成器将门铃消息发送至 RapidIO A
    • 门铃消息通过链路发送至 RapidIO B。系统控制器 B 中的门铃处理器会接收并处理这些消息
  5. 门铃消息可传递指令,并由门铃处理器来解读这些指令。有两个示例指令:逆向数据包和恢复数据
    • 针对逆向数据包,门铃处理器会读取来自 RAM 的数据并将其逆向,然后储存回 RAM(地址可不同)
    • 针对恢复数据,门铃处理器会读取来自 RAM 的数据,并将其发送回 RapidIO A
    • 这两条指令显示 RapidIO A 能够初始化 RapidIO B 要执行的操作项。您可以利用它来为您自己的实现创建专用指令数据包

此底层设计实现也可以作为一种示例来完成以下自定义操作:

  1. 添加或者修改数据包参数或格式(如地址-载荷-地址-载荷)或数据流
  2. 在传输层的一个端口而不是以轮询方式来处理不同特征的发送序列
  3. 支持 RapidIO MegaCore 函数通常没有的自定义函数

不过,处理上述自定义操作时,用户需要手动填充数据包头的物理层和传输层字段。Avalon-ST 直通接口也需要数据包格式解码和数据包流量控制等其他步骤,以便顺利完成操作。

下载此设计示例中使用的 .zip 文件:avST_passthr_interface.zip

注:此设计示例已在模拟中进行测试。