本文档由人工智能从英文自动翻译而成。如有疑义,请参考英文原版文档。
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)上执行刷 新
3.5 使用 Microsoft 原生 API
3.6 监控驱动程序缓冲区中的数据量
3.7 XillyUSB:监控物理数据链路质量的需求
4 高速率连续 I/O
4.1 基础知识
4.2 大型驱动缓冲区
4.3 用户空间中的 RAM 缓冲区
4.4 为什么不直接使用 Windows 管道?
4.5 fifo.c 演示应用概述
4.6 fifo.c 修改说明
4.7 RAM FIFO 函数
4.7.1 fifo_init()
4.7.2 fifo_destroy()
4.7.3 fifo_request_drain()
4.7.4 fifo_drained()
4.7.5 fifo_request_write()
4.7.6 fifo_wrote()
4.7.7 fifo_done()
4.7.8 FIFO_BACKOFF 宏定义变量
5 循环帧缓冲区(Cyclic Frame Buffers)
5.1 引言
5.2 适配 FIFO 示例代码
5.3 丢弃与重复帧
6 特定编程技术
6.1 可寻址流(Seekable Streams)
6.2 双向流同步
6.3 数据包通信(Packet Communication)
6.4 模拟硬件中断(Emulating Hardware Interrupts)
6.5 协处理 / 硬件加速
7 休眠(Hibernation)
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 实际结论