本文档由人工智能从英文自动翻译而成。如有疑义,请参考英文原版文档。
1 引言
2 同步流 (Synchronous Stream) 与异步流 (Asynchronous Stream)
2.1 概述
2.2 异步流的动机
2.3 从 FPGA 到主机的流
2.4 从主机到 FPGA 的流
2.5 不确定性 vs. 延迟
3 I/O 编程实践
3.1 概述
3.2 读取数据指南
3.3 写入数据指南
3.4 对异步下游流(Asynchronous Downstream)执行刷新 (Flush)
3.5 select() 与非阻塞 I/O
3.6 监控驱动缓冲区中的数据量
3.7 XillyUSB:监控物理数据链路质量的需求
4 连续高速 I/O
4.1 基础知识
4.2 大型驱动缓冲区
4.3 用户空间中的 RAM 缓冲区
4.4 fifo.c 演示应用程序概述
4.5 fifo.c 修改说明
4.6 RAM FIFO 函数
4.6.1 fifo_init()
4.6.2 fifo_destroy()
4.6.3 fifo_request_drain()
4.6.4 fifo_drained()
4.6.5 fifo_request_write()
4.6.6 fifo_wrote()
4.6.7 fifo_done()
4.6.8 FIFO_BACKOFF 定义变量
5 循环帧缓冲区(Cyclic Frame Buffer)
5.1 引言
5.2 适配 FIFO 示例代码
5.3 丢弃与重复帧
6 特定编程技术
6.1 可寻址流(Seekable Streams)
6.2 双向流同步
6.3 数据包通信
6.4 模拟硬件中断
6.5 超时
6.6 协处理 / 硬件加速
A 内部机制:流的实现方式
A.1 引言
A.2 “经典”DMA vs Xillybus
A.3 FPGA 到主机(上游方向)
A.3.1 概览
A.3.2 阶段 #1:应用逻辑到中间 FIFO
A.3.3 阶段 #2:中间 FIFO 到 DMA 缓冲区
A.3.4 阶段 #3:DMA 缓冲区到用户软件应用程序
A.3.5 部分填充缓冲区的提交条件
A.3.6 示例
A.3.7 实际结论
A.4 主机到 FPGA(下游方向)
A.4.1 概览
A.4.2 阶段 #1:用户软件应用程序到 DMA 缓冲区
A.4.3 阶段 #2:DMA 缓冲区到中间 FIFO
A.4.4 阶段 #3:中间 FIFO 到应用逻辑
A.4.5 一个示例
A.4.6 实际结论