写评估板这类东西,最容易踩的坑就是“看手册觉得都会,一上手全不对”。SuperSpeed USB-to-FIFO Bridge IC 的评估板,恰好是这种“看着简单,实则门道不少”的典型。它的作用很直接:把 PC 端的 USB 3.0 接口,通过一颗桥接芯片,转成 FPGA、ASIC 或者 DSP 常用的并行 FIFO 接口,让上位机可以高速地和逻辑器件交换数据。无论是做高速数据采集、视频图像传输,还是软件无线电、自动化测试设备,这套“USB 转并行总线”的组合都是非常高频的用法。
这篇内容我打算从评估板的整体设计思路讲起,逐个拆解供电、FIFO 时序、配置逻辑这些关键环节,然后完整走一遍“上电装驱动、连接 FPGA、跑通数据、测试带宽”的实操流程,最后把那些手册里不会明说、但实际调试中十有八九会碰到的坑整理出来。适合正在选型、刚拿到评估板不知道怎么下手、或者打算照着自己画板的工程师朋友。就算你之前只玩过 USB 转串口,只要知道 FPGA 里“读信号、写信号、数据线”是怎么回事,也能跟上节奏。
1. 整体设计与思路拆解:为什么需要一块 USB to FIFO 评估板
1.1 从 USB 转串口到 SuperSpeed FIFO,到底升级了什么
很多工程师第一次接触“USB 转 FIFO”这个概念时,脑子里下意识会拿它和 USB 转串口(比如 FT232、CP2102 这些)做对比。确实,从功能抽象上看,两者都是“把 PC 的 USB 变成芯片外设能用的接口”,但实际定位完全不同。USB 转串口处理的是低速、逐字节的流式数据,波特率撑死几 Mbps,用在调试日志、配置指令、传感器读数这类场景完全够。可一旦数据量上来——比如采集卡要连续回传 100MB/s 的图像数据,或者仪器要实时上传海量波形——串口就彻底不够用了。
于是桥接芯片把并行 FIFO 接口搬了出来。FIFO 是 FPGA 最熟悉的“语言”,数据的搬运靠一组握手信号配合数据总线完成,没有复杂的协议解析,逻辑非常简单。而 SuperSpeed(也就是 USB 3.0)一侧则提供了 5Gbps 的理论带宽,实测做到 300MB/s 以上的吞吐非常常见。一边是我们最顺手的并行接口,一边是 PC 通用的高速总线,两者之间加一颗桥接芯片,整个数据链路就通了:PC 上的应用程序通过厂商提供的驱动和 API 访问这个“虚拟 FIFO”,FPGA 侧则像操作普通 FIFO 一样读写数据。
典型的 SuperSpeed USB-to-FIFO 桥接芯片有 FTDI 的 FT600/FT601,以及英飞凌(原赛普拉斯)的 FX3(CYUSB3014)。FT60x 系列专门面向“USB 转 FIFO”这个精确细分,主机侧不需要额外写 USB 固件,驱动装好就能用。FX3 则更偏“USB 外设控制器”,它自带一个可编程 ARM9 核,你可以自己把 USB 枚举成任意你想要的样子,灵活性高,但开发工作量也明显更大。评估板通常会把这类芯片的所有引脚、所有工作模式都引出来,目的就是让你在买回来第一周就把这些差异摸透,再决定自己项目到底该选哪条路。
1.2 评估板在开发流程里的位置:验证先行,少画一版废板
我见过不少新人拿到芯片手册就急着画原理图、画 PCB,结果板子回来后发现有些引脚的上拉电阻选错、电平不匹配、或者忘记预留配置烧录接口。一个 USB 3.0 桥接芯片,内部除了数字逻辑还有不少模拟前端,PCB 布局布线对信号完整性要求并不低。评估板存在的最大意义,就是把“芯片能不能用、怎么用、能达到什么性能”这些高风险问题,在产品硬件冻结之前全部回答掉。
具体到开发流程上,正确的顺序应该是:先用评估板把驱动、API、FIFO 时序全部跑通,确认这颗芯片的功能和带宽满足需求;接着在 FPGA 里把读写逻辑调稳定;然后再参考评估板的原理图和 Layout 去设计自己的板卡。换句话说,评估板是“技术风险探测器”,不是拿来摆着看的样品。花一两周时间在评估板上把问题暴露完,省下来的是后面改板子的时间和打样费。
实际上,很多芯片原厂还会在评估板上做额外的“贴心设计”,比如板载 EEPROM 用于配置芯片的 VID/PID、工作模式、FIFO 总线宽度这些参数;比如用跳线帽选择 I/O 电平标准;比如预留 SPI/I2C 接口来扩展功能。这些都不是随手加的,而是芯片在真实项目中高频使用的配置项。在评估板上把这些配置玩明白,比照着数据手册“纸上谈兵”要高效得多。
1.3 典型评估板的框架与关键设计点
评估板的设计框架,其实就是一个“最小可用系统”:USB 连接器负责接入主机,桥接芯片负责协议转换,板载电源把 USB 的 5V 转成芯片需要的各种电压逻辑电平,FIFO 接口通过排针或高速连接器外接 FPGA/逻辑分析仪,EEPROM 保存配置,再加上一些状态指示 LED 和复位按键。以 FT601 评估板为例,FIFO 侧通常引出的是 32 位数据总线、时钟、读使能、写使能、以及两对用于流控的状态信号:TXE(可写)和 RXF(可读)。
这些信号本质上就是一组符合特定时序要求的同步 FIFO 接口。芯片内部就是个大 FIFO 缓冲,上位机写下来的数据先进这个缓冲,再经 FIFO 接口被外部逻辑读走;反过来,外部逻辑写进缓冲的数据,再由上位机通过 USB 读走。所以评估板的设计,并不只是一个“把芯片焊上去”的简单动作。
一个容易被忽略的关键设计点是高速信号布线。USB 3.0 的差分对(TX+/TX-、RX+/RX-)对阻抗和等长有严格要求,一般要求 90 欧姆差分阻抗,走线长度差也要控制在小范围内。此外,SuperSpeed 工作频率较高,电源去耦如果做得不好,很容易出现眼图变差、数据传输不稳定甚至枚举失败的问题。很多工程师自己画板时,容易低估这两点的难度,而原厂评估板的 Layout 恰恰是最可靠的参考模板。所以拿到评估板后,千万不要只当它是功能演示工具——它同时也是“可以抄的作业”。原厂公开的原理图、PCB 文件,都是宝贵设计资源。
2. 硬件核心细节解析:供电、接口与时序
2.1 供电方案与逻辑电平匹配:跳线帽绝不是摆设
SuperSpeed FIFO 桥接芯片的供电通常由 USB 主机的 VBUS(5V)直接供应,这对评估板来说非常方便:一根 USB 线插上,整板电源就都起来了。板载的电源电路一般会把 5V 分成三路:一路给桥接芯片的模拟和数字核心,电压通常是 1.2V 或 1.8V;一路给 USB 物理层,通常是 1.2V 或 1.8V;还有一路是给 FIFO I/O 供电。最后这一路尤其需要注意,因为它直接决定了 FIFO 接口的逻辑电平标准。
FIFO I/O 电压通常由芯片的 VCCIO 引脚决定,可选范围覆盖 1.8V、2.5V、3.3V。如果你的 FPGA 是 3.3V 的 Bank,那 VCCIO 就选 3.3V;如果你的处理器是 1.8V 的接口,那就得把 VCCIO 调成 1.8V。评估板上一排排的跳线帽,干的就是这个“选电源轨”的活。有些板子设计得更好,会把这几路电压都可通过排针引出,方便用户外接测量或用外部电源替代。
实际操作中,很多人会忽视一个问题:I/O 电压和外部逻辑的电平不匹配,往往不是“完全不能跑”,而是“偶发数据错误”或“时序裕量不足”。这在低频调试时可能完全暴露不出来,一旦 FIFO 时钟跑到 100MHz 甚至更高,问题就会像幽灵一样出现又消失。所以,拿到评估板的第一件事,是把跳线帽的设置都弄清楚,全部按你自己的外接逻辑电平设好再做信号连接。这个习惯能帮你省掉后面大量的排查时间。
另外我要特别提醒一件事:VCCIO 的选择要同时考虑上拉电阻的电压域。FIFO 接口上如果有上拉电阻(比如某些状态信号需要上拉到 VCCIO),这些电阻一定是连接到 VCCIO 电源轨的,不会跨越电源域。如果评估板上外接信号时用了逻辑分析仪的夹子,而逻辑分析仪的电平参考不对,也可能造成漏检或误判。总之,FIFO 接口的电平域必须和“读它的那一方”保持一致,这是接口电路设计的铁律。
2.2 同步 FIFO 接口与时序要点:读和写到底怎么操作
在拆解 FIFO 时序之前,先花点时间把“同步 FIFO”和“异步 FIFO”的概念说清楚,因为在评估板调试时,外接逻辑通常实现的是同步 FIFO Master。同步 FIFO 的特点是:所有的读、写操作都有统一的时钟基准,状态信号(可读、可写)的变化也都在这个时钟域里。芯片和外部逻辑之间共享同一个时钟,要么由芯片输出,要么由外部输入,因而控制和数据信号都围绕这个时钟沿来动作。
在 FT60x 系列里,FIFO 接口的时钟频率最高可以跑到 100MHz,数据总线可以是 8 位、16 位或 32 位。这样算下来,接口理论带宽上限大约是:100MHz 乘以 4 字节等于 400MB/s。再加上 USB 3.0 的实际净荷效率,实测做到 300-350MB/s 是很正常的水平。理解这个计算逻辑很重要,因为它直接决定了你的系统瓶颈在哪:如果上位机到芯片之间的 USB 链路没有问题,而你的 FPGA 逻辑没有用满带宽,那性能瓶颈就在 FPGA 端的读写效率上。
具体到读操作(External Logic 从 FIFO 读数据),典型流程是这样的:外部逻辑先观察 RXF 信号,当 RXF 为低电平,表示 FIFO 里至少有一个数据可用;外部逻辑拉低 RD 读使能,然后在下一个时钟沿把数据总线上的数据采走。写操作类似:外部逻辑观察 TXE 信号,当 TXE 为低电平,表示 FIFO 有空位可写;外部逻辑把数据放到数据总线上,拉低 WR 写使能,在时钟沿完成写入。
这组信号配合看着简单,但实际时序是有严格要求的。比如读使能拉低之后,数据到底是在沿之前有效还是沿之后才出来,不同厂商、不同模式下可能有细微差别。这就是为什么评估板配套的手册里往往有详细的时序图,有些还专门标注了建立时间(Setup Time)和保持时间(Hold Time)。在示波器或逻辑分析仪上同时观察时钟、使能、数据总线,是验证时序用法是否正确的标准姿势。
2.3 配置与存储:EEPROM 里到底存了什么
评估板上那颗不起眼的 SPI EEPROM,往往是决定芯片“以什么身份出现在 USB 主机面前”的关键。芯片刚上电时,会先去读取 EEPROM 里的配置内容,包括 USB 厂商 ID(Vendor ID)、产品 ID(Product ID)、芯片的工作模式、FIFO 总线宽度、默认的固件描述符等。如果 EEPROM 为空或者没接,芯片通常会进入默认的“无固件”状态,设备管理器里看到的设备名称可能就是“Unconfigured Device”或者干脆没有反应。
拿 FT601 来说,它有一个官方提供的配置工具,可以通过 USB 把配置信息写进板上的 EEPROM。你可以通过它切换 245 同步模式(默认高速 FIFO 模式),也可以把芯片配置成其他工作模式。对 FX3 来说,EEPROM 则存放固件镜像,芯片上电后先从 EEPROM 启动,固件再去完成 USB 枚举,变成你想要的那个“自定义 USB 设备”。
这块内容之所以重要,是因为很多人在评估板上调试时遇到“电脑识别不了设备”的问题,罪魁祸首往往就是 EEPROM 配置写坏了、EEPROM 焊接不良,或者芯片根本没有从 EEPROM 启动成功。遇到这种情况,不要急着怀疑芯片坏了,先查配置工具能不能识别到设备、能不能重新烧录 EEPROM。评估板上的配置工具链其实也是“评估”的一部分,把这个流程走通了,后续自己设计的板卡才能走得顺。
3. 实操全记录:从开箱到跑通数据链路
3.1 上电、驱动与固件准备:先让电脑正确认识评估板
拿到评估板的第一步,不是急着插线,而是先仔细阅读板卡丝印和快速入门指南,确认跳线帽的位置是不是出厂默认状态,特别是 VCCIO 和供电选择。如果板子上有多个 USB 接口(有些评估板会同时引出 Micro USB、Type-C 或 USB 3.0 Standard-A 口),要看清哪一个才是数据接口,哪一个可能只是辅助供电。
然后就是安装驱动。对于 FT60x 系列,需要在 FTDI 官网下载对应版本的驱动,不同操作系统(Windows、Linux、macOS)的安装方式略有差异。Windows 下装好后,打开设备管理器,应该能看到一个名为 “FT60x” 或者类似字样的设备,而不是黄色的感叹号。对于 FX3 这类需要固件的芯片,则要先把官方提供的固件通过 USB Control Center 烧进去,烧完后设备才会以你期望的“自定义设备”形态出现。
这个过程看似简单,但有几个细节容易踩雷:第一,驱动版本和芯片型号要匹配,FT600 和 FT601 虽然驱动类似,但对应的工具版本可能有差异。第二,如果 USB 线是纯充电线(只有电源没有数据),插上去设备管理器不会有任何反应,所以务必用一根确定支持 USB 3.0 数据通信的线。第三,如果开发机是虚拟机,要把 USB 设备直通或挂载给虚拟机,设备才能被识别到。这几个问题排查完了,评估板基本就能正常“报上名来”。
装好驱动后,我建议立即备份原厂 EEPROM 内容。因为后续配置实验过程中,很可能一不小心就把 EEPROM 写成不正确的值。备份的方法很简单,在配置工具里先读出当前配置存档,后续出了任何问题都可以恢复原状。这是评估板厂家未必会专门提醒你、但非常实用的一件事。
3.2 连接 FPGA,跑通第一笔数据
驱动安装之后,评估板还不能算“工作”,它要能和外部的 FPGA 正确通信,才算真正展示了它的价值。这里的第一步,是把评估板的 FIFO 接口连接到 FPGA 的通用 IO 上。如果你的 FPGA 开发板用的电平正好是 3.3V,评估板也设置成了 3.3V,那直连就行;如果是其他电平,就需要电平转换板。这一步千万不要图省事直接怼上去,电平不匹配轻则数据异常,重则烧毁 IO。
接下来,在 FPGA 里写一个最简单的“FIFO Master”状态机,先实现一个回环功能:上位机通过 USB 发来一组数据,FPGA 把它们读进来,再原封不动写回 FIFO 芯片,让上位机读回去。如果回环数据一致,说明整条链路——USB 驱动、API 调用、FIFO 接口时序、FPGA 逻辑——全都通了。这个“回环测试”是所有数据链路调试中最稳妥的第一步,它能帮助你隔离问题:哪一端出错,都能立即定位。
在编写 FIFO Master 状态机时,需要注意一个关键点:芯片的 FIFO 接口可能不是简单的“一个空的 FIFO”,而是内部有多个通道(Channel)。FT60x 系列有 4 个通道,每个通道拥有独立的 FIFO 缓冲和流控信号。使用时可以通过通道号来决定数据走哪条路。回环测试阶段,建议先把所有通道当作一个整体来用,打开所有通道的读取和写入,避免因为通道配置不匹配导致数据错乱。
FPGA 侧的状态机不必写得太复杂,一个大致的流程是:检测到 RXF 为低,就拉低 RD,读取数据;检测到 TXE 为低,就拉低 WR,写入数据。读写之间用一个小的缓存区域做缓冲。只要把状态机收敛在一个采样时钟域内,不产生亚稳态问题,这个模块就会非常稳定。实测下来,这种基础状态机在 100MHz 下跑满带宽并没有太大难度,难的其实是后面做 DMA、做多通道调度时对并行处理的把控。
3.3 吞吐量测试与参数调优:评估板能跑多快
回环数据通了之后,下一步就是测带宽。评估板的官方配套软件里,通常会自带一个“性能测试”工具。运行后,它会从上位机往设备下发一批数据,然后读回同样大小的数据,用总数据量除以总耗时,算出吞吐量。这个数字能直接反映评估板的瞬时可用带宽。
我实测的典型数据是这样的:使用 FT601 评估板、32 位总线、100MHz 时钟、开启全部 4 个通道,在批次传输模式(Bulk Transfer)下,读方向或写方向的单方向吞吐大约能跑到 300MB/s 到 350MB/s。请注意,这是“单方向”的带宽,同时双向读写的总吞吐可能仍然接近这个上限,因为 USB 3.0 链路本身的传输方向是分时复用的。如果把 FIFO 接口改成 8 位模式,那么同样 100MHz 时钟下理论带宽只有 100MB/s,实测就会腰斩——这个对比能帮你理解“增加数据位宽”相比“提高时钟频率”是个性价比更高的带宽提升手段。
如果测出来的带宽远低于理论值,需要按顺序排查:第一,USB 是否真正跑在 SuperSpeed 模式,很多开发板的 USB 接口面板只是蓝色标识,实际上可能因为线材或连接器原因被降级到了 USB 2.0 高速模式,这时带宽就只有 40MB/s 左右;第二,上位机软件是否正确配置了批量传输的请求大小(Buffer Size),较大的请求有利于提升吞吐;第三,FPGA 逻辑是否能够连续不断地读写,如果状态机里加了不必要的等待周期,带宽会被直接吃掉。
参数调优方面,有几个值得尝试的方向:一是批量传输的请求块大小,从默认的 4KB 增大到 512KB 或更大,往往能显著提升吞吐;二是通道数量的使用方式,可以把大量数据平均分配到多个通道,减少单个通道的 FIFO 压力;三是在吞吐测试工具里调整超时参数,防止大数据量传输因为微小的时序抖动被过早中断。每次调整参数后都记录一下吞吐数据,这样就能直观地知道哪个参数在哪条链路上起了决定性作用。
4. 常见问题与排查技巧实录:踩坑到填坑的全过程
4.1 USB 枚举失败,设备管理器看不到评估板
这是拿到评估板后最容易遇到,也最让人头疼的问题。排查顺序应该是:先确认线材是不是能传输数据的 USB 3.0 线,换根线试试;再确认是不是插到了 USB 3.0 端口上,有些评估板对 USB 2.0 端口也兼容,但会以低速模式运行,如果板子本身设计只支持 SuperSpeed,插在 USB 2.0 口上可能完全无法识别;接着看设备管理器里有没有未知设备,有的话可能是驱动问题,重新安装对应驱动;如果什么都没有,就要用万用表检查板卡的供电是否正常,VBUS 5V 是否到达芯片相关引脚。
在 FT60x 系列上,还有一个特殊排查点:EEPROM 里的配置一旦写错,芯片可能无法正确枚举。此时虽然设备管理器里可能什么都看不到,但你可以用 FTDI 提供的专用工具,在“恢复模式”下强制让芯片重新枚举并重新烧录 EEPROM。不同芯片有不同的进入方式,有的需要在上电前把特定引脚拉低,有的只需要在工具界面里选择“扫描”就能发现。这个“强制恢复”功能,在很多评估板上都有预留按键或跳线,使用前撕开说明书相关章节看清楚,千万别在“无头苍蝇”状态下反复拔插 USB。
如果以上步骤都排查完仍然不行,那就要考虑硬件故障了。这时可以借助示波器看 USB D+/D- 或 SuperSpeed TX/RX 差分对上的信号有没有波形。但说句实在话,评估板原厂出厂前一般都会做过功能测试,硬件损坏的概率不高,绝大多数枚举失败都是线材、驱动、配置三选一导致的。
4.2 FIFO 读写数据错乱或偶发觉出错
数据错乱问题,优先级最高的是先检查字节序,也就是 Endian。芯片和主机侧的数据总线默认是以小端还是大端方式排列,常常让初次接触的人栽跟头。比如你从 PC 发一个 32 位数据 0x12345678,在 FPGA 的数据总线上看到的可能是 0x78563412。解决方式是在驱动 API 或寄存器配置里调整字节顺序,或者在 FPGA 逻辑里做字节重排。这个不是“故障”,而是“字节序差异”,理解它远比自己一步步强行改逻辑来得高效。
另一个常见原因是 RD/WR 信号的有效电平判断错了。有些工程师习惯性认为“高电平有效”,但 FIFO 接口的读使能、写使能、RXF/TXE 这些信号,在多数芯片里都是“低电平有效”。如果你在 FPGA 代码里按高电平有效写,就会导致读写使能永远不会被正确触发,或触发时间完全错误。这个跟芯片手册的约定有关,务必在写代码前对照时序图确认一遍,不要凭惯性。
时序裕量不足也是偶发错误的“元凶”。当 FIFO 时钟跑到 100MHz,信号的建立时间和保持时间余量可能只有个位数纳秒。此时如果 FPGA 端用了过长的组合逻辑路径,或者 PCB 走线太长导致信号劣化,那么临界采样时就会出现“时而正常、时而出错”的现象。遇到这种情况,我一般会先用逻辑分析仪抓取较长时间的波形,看数据错误是否都发生在同一位置,然后给 FPGA 逻辑增加寄存器打拍(Retiming),或者降低 FIFO 时钟频率到 80MHz,看看错误是否消失,从而判断是不是时序裕量问题。
4.3 带宽远低于预期,怎么定位瓶颈
带宽上不去,基本上是四五类原因的排列组合。最常见的是 USB 线缆或连接器降级到 USB 2.0 模式,可以用工具查询当前链路速率,或者观察设备管理器里的连接速度;其次是上位机没有设置足够大的传输块,导致一次次小请求的协议开销把带宽吃掉了;然后是 FPGA 逻辑里的读写状态机效率太低,比如每读一拍就插入了一个等待周期,理论带宽直接减半;最后是通道配置问题,比如只开了 1 个通道,而单通道的吞吐能力可能确实有限。
有一个实用的排查方法是“逐步降载”:先使用评估板配套的上位机工具,不经过 FPGA,直接进行回环测试(上位机发送的数据由芯片内部返回),看看链路本身能达到多大吞吐。如果这一步的吞吐就偏低,那问题是 USB 链路或上位机配置;如果这一步正常,再接入 FPGA 逻辑做同样测试,这时如果吞吐骤降,问题就基本锁死在 FPGA 逻辑端。
一旦确认瓶颈在 FPGA 端,优化方向也很明确:一是把 FIFO 接口的时钟跑满,前提是保证接口的建立保持时间;二是让读写状态机尽量做到“零等待节拍”,即每个数据都能连续读入或连续写出;三是利用芯片的多通道特性,在 FPGA 内部做一个简单的多通道仲裁或拼接,把多个通道的数据合流,往往能把吞吐又往上推一档。这个过程本质上就是在“喂饱”USB 3.0 这条高速大动脉。
4.4 常见问题速查表
为了方便后续调试快速对照,我把上面这些典型问题整理成了一个速查表。实际工作中我总会把它打印出来贴在工作台旁边,遇到问题先对着表过一遍,很多时候能省不少时间。
| 问题表现 | 可能原因 | 快速排查与解决方法 |
|---|---|---|
| 设备管理器看不到设备 | 数据线损坏/充电线 | 换一根确定支持 USB 3.0 数据通信的线 |
| 设备管理器看不到设备 | EEPROM 配置损坏 | 复查供电,使用专用工具进入恢复模式重烧 EEPROM |
| 设备管理器出现未知设备 | 驱动未安装或版本不匹配 | 重新安装芯片官方驱动,确认系统位数 |
| 设备显示连接速度 USB 2.0 | 线缆/连接器不支持 SuperSpeed | 更换线缆,插入蓝色 USB 3.0 端口 |
| 回环数据错乱 | 字节序不一致 | 在 API 或 FPGA 逻辑中做字节重排 |
| FIFO 无法读写 | RD/WR/RXF/TXE 有效电平理解错误 | 对照时序图复核信号极性,确认低电平有效 |
| 偶发性数据错误 | 时序裕量不足 | 在 FPGA 侧增加寄存器打拍,或降低 FIFO 时钟频率验证 |
| 带宽远低于峰值 | 上位机传输块过小 | 增大批量传输请求大小,如从 4KB 增加到 512KB |
| 带宽远低于峰值 | FIFO 接口位宽过低 | 在硬件约束允许下切换到 32 位数据总线模式 |
| 带宽远低于峰值 | FPGA 状态机插入太多等待周期 | 优化读写状态机,取消不必要的空闲节拍 |
| 断电后配置丢失 | 芯片未从 EEPROM 启动 | 确认 EEPROM 已正确写入配置且焊接可靠 |
5. 从评估板走向产品化:扩展思路与选型落地
5.1 什么时候可以“抛开”评估板自己画板
评估板验证结束之后,接下来的问题就是:“我能不能直接抄评估板的设计,做自己的板子?”答案是:当然可以,但要分清楚哪些能抄、哪些不能只抄皮毛。评估板一般会把所有可配置的引脚都引出来,方便测试;而产品板只需要保留真正用到的功能,做减法。比如,如果项目只需要以固定模式工作,就不必把所有的配置跳线都放在板子上,直接用固定上下拉电阻即可;如果 USB 只是纯从设备,也可以省掉一部分调试接口。
真正的风险在高速信号部分:USB 3.0 差分对的阻抗控制和等长设计、FIFO 高速并行信号的走线完整性、以及电源去耦电容的布置,这些必须严格参考评估板的设计。很多工程师在自研板上翻车,不是因为原理图画错,而是 Layout 环节没跟上。因此,我的建议是:第一版自研板的 Layout 一定要对照原厂评估板的参考设计文件,逐项核对差分阻抗、走线层和过孔设计,不要凭感觉自由发挥。
5.2 方案选型对比:FT60x 系列与 FX3 怎么选
评估板玩久了,你会发现“选型”本质上是在“开发效率”和“灵活性”之间找平衡。FT60x 系列的优势在于主机端驱动和 API 成熟,几乎不需要你操心 USB 枚举细节,上手极快;劣势是你只能使用芯片已经定义好的“USB 转 FIFO”这条路径,自定义能力有限。FX3 则是“可编程的 USB 外设控制器”,你能用它的 ARM 核自定义 USB 描述符和端点的行为,甚至可以实现自定义供应商请求,灵活性拉满;代价是你需要写和调试固件,开发周期明显变长。
从应用场景匹配度来说,如果你的 PC 软件只需要简单地把大量数据送进 FPGA 或从 FPGA 读出来,那 FT60x 系列是最直接的解决方案。如果项目中 USB 设备还要承担其他角色,比如同时具备 UVC 摄像头功能、U 盘功能,或者要和主机的自定义软件做私有协议交互,那 FX3 这类可编程方案才是合适选择。评估板正好能帮你把两者的“实际开发成本”评估出来,而不只是看芯片手册上的宣传性能。
5.3 给后续研发的几点建议
从我个人的习惯来讲,凡是涉及到评估板验证的项目,我都会有意识地做三件事:第一,把评估板的配置和测试结果记录整理成一份“芯片评估报告”,包括各模式下的实测带宽、时序裕量表现、EEPROM 配置参数等。这些一手数据,比任何宣传资料都更能支撑后续的选型决策。第二,把 FPGA 侧调好的 FIFO Master 逻辑模块化,保留成可复用的 IP。以后换芯片、换板卡,这些逻辑改改参数就能用,省去大量重复劳动。第三,别忽略上位机软件的开发成本,评估板配套的 API 和例程要仔细研究,它决定了你后续 PC 端程序怎么写、性能能发挥到什么程度。
最后再分享一个小技巧:评估板买回来后,先把出厂自带的 EEPROM 内容原封不动备份出来,然后大胆实验各种配置。反正配置坏了也能恢复,在“可恢复”的环境里把芯片的脾气摸透,到了做产品板的时候才会心里有底。这一步,比你在论坛上收藏一百篇教程都管用。