此设计示例展示了采用 RapidIO 中的 Avalon Streaming (Avalon-ST) 直通接口作为平台来实现简单的自定义事务。通过使用此接口,除了逻辑层其他常用的模块函数,用户还可以非常灵活地编写和组织数据包格式。
为了简化此设计示例,已禁用 I/O 主从等其他逻辑层模块。此设计展示了 2.5-Gbaud 1x 串行 RapidIO 链接,在 GUI 上启用了 Avalon-ST 直通接口。
设计架构概览如下图所示:
过程流程
- 端口已初始化(RapidIO 链路建立)
- RapidIO 初始化
- 发送写入文件包(与 NWrite 事务类似)
- 系统控制器 A 命令数据包生成器将数据包发送至 RapidIO A
- 系统控制器 B 将数据包通过链路发送至 RapidIO B,并存储在 RAM 中
- 写入数据包可以针对载荷大小和数据包数量进行调整
- 发送门铃消息
- 系统控制器 A 命令数据包生成器将门铃消息发送至 RapidIO A
- 门铃消息通过链路发送至 RapidIO B。系统控制器 B 中的门铃处理器会接收并处理这些消息
- 门铃消息可传递指令,并由门铃处理器来解读这些指令。有两个示例指令:逆向数据包和恢复数据
- 针对逆向数据包,门铃处理器会读取来自 RAM 的数据并将其逆向,然后储存回 RAM(地址可不同)
- 针对恢复数据,门铃处理器会读取来自 RAM 的数据,并将其发送回 RapidIO A
- 这两条指令显示 RapidIO A 能够初始化 RapidIO B 要执行的操作项。您可以利用它来为您自己的实现创建专用指令数据包
此底层设计实现也可以作为一种示例来完成以下自定义操作:
- 添加或者修改数据包参数或格式(如地址-载荷-地址-载荷)或数据流
- 在传输层的一个端口而不是以轮询方式来处理不同特征的发送序列
- 支持 RapidIO MegaCore 函数通常没有的自定义函数
不过,处理上述自定义操作时,用户需要手动填充数据包头的物理层和传输层字段。Avalon-ST 直通接口也需要数据包格式解码和数据包流量控制等其他步骤,以便顺利完成操作。
下载此设计示例中使用的 .zip 文件:avST_passthr_interface.zip
注:此设计示例已在模拟中进行测试。