Code Monkey home page Code Monkey logo

fpga-ftdi245fifo's Introduction

test docs

FTDI 245fifo controller

FT232HFT2232HFT600 等芯片的 sync-245-fifo 模式 控制器,实现 FPGA 与 Host-PC 的高速通信

本库于 2021.8 重大更新,包括:

  • 将收发的切换策略更改为更高效的优先级轮换式调度;
  • 消除了输出毛刺、实现了零边界数据丢失;
  • 简化了代码,降低了嵌套层次。

简介

sync-245-fifoFTDI 公司 USB 系列芯片的最高速传输模式。该库将 245fifo 控制器 封装成 Verilog模块 ,留出精简流式收发接口 ,方便 Verilog 开发者调用。

另外,本库提供配套的 FPGA 示例工程、驱动安装教程、Python 软件库安装教程,并提供几个 Python 程序用于测试。

下图是该模块的结构框图。

模块结构

特点

  • 精简接口:发送接口类似 AXI-stream slave , 接收接口类似 AXI-stream master
  • 收发调度:FTDI 芯片与 FPGA 之间的接口是半双工的,该模块调度收发分时复用,实现 收发接口互相独立
  • 跨时钟域:FTDI 芯片有自己的时钟。该模块用异步 FIFO 实现时钟域转换,使得收发接口可使用 自定义时钟
  • 位宽变换:FTDI 芯片数据位宽是固定的,但本模块实现了位宽变换。收发接口的 位宽可自定义
  • 移植性:纯 SystemVerilog 编写,易于移植和仿真。

性能测试结果

以下是用本库测出来的 USB 上行(FPGA发,Host-PC收)的带宽。

芯片型号 FT232H / FT2232H* FT600 FT601
USB模式 USB2.0 HS USB3.0 SS USB3.0 SS
理论带宽 <60MBps <200MBps <400MBps
实测带宽 42MBps 120MBps 可用,未测

* FT232HFT2232H 高度相似, FT2232H 的 channel A 可配置成与 FT232H 完全相同的 sync-245-fifo 接口 。因此本库的FT232H示例也适用于FT2232H

QuickStart

强烈建议首先阅读模块使用说明。了解该模块如何部署于 FPGA 中,来开发你自己的 USB 通信业务。

然后你可以运行我提供的使用案例,对于 FT232H,进行步骤:

对于 FT600,进行步骤:

如果你好奇于本模块的设计细节,或者想了解 FTDI USB 芯片的操作时序,可以运行 RTL 仿真,见:仿真指导

参考资料

fpga-ftdi245fifo's People

Contributors

wangxuan95 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.