1. FPGA下载方式
FPGA 的 "下载" 本质上是把配置比特流(Bitstream)写入 FPGA 内部配置 SRAM 或外部非易失存储器的过程。下面按三个维度系统梳理。
1.1 按数据流向与时钟控制权分类
| 类型 | 时钟来源 | 数据来源 | 典型场景 |
|---|---|---|---|
| 主动模式 (Active) | FPGA 自身产生 CCLK | FPGA 主动从外部 Flash 读取 | 产品量产、上电自启动 |
| 被动模式 (Passive) | 外部主机提供时钟 | 外部主机(PC/MCU)主动发送 | 开发调试、工厂烧录 |
| JTAG 模式 | TCK 由调试器提供 | 调试器通过 JTAG 链写入 | 开发调试、在线升级 |
1.2 主流配置接口详解
1.2.1 JTAG 配置(最通用、开发必备)
- 接口信号:TCK、TMS、TDI、TDO、TRST(可选)
- 特点:
- 所有 FPGA 厂商均支持,是行业标准
- 可直接配置 FPGA 内部 SRAM(易失性,断电丢失)
- 可间接烧录外部 Flash(通过 FPGA 做桥接)
- 支持链上多器件级联(JTAG Chain)
- 同时用于在线逻辑分析(ChipScope / SignalTap)
- 工具:Xilinx Platform Cable / Vivado Hardware Manager、Intel USB-Blaster、Lattice HW-USBN-2
1.2.2 主动串行配置 (AS — Active Serial)
- 典型厂商:Intel/Altera(Cyclone/Arria 系列)
- 原理:FPGA 上电后作为 SPI Master,从外部串行 Flash(如 EPCS/EPCQ 系列)读取比特流
- 接口:DATA0、DCLK、nCSO、ASDO(本质是 SPI)
- 特点:上电自动加载,无需外部主机;适合量产
1.2.3 被动串行配置 (PS — Passive Serial)
- 原理:外部主机(CPLD/MCU/ 下载器)提供 DCLK 和配置数据,FPGA 被动接收
- 特点:常用于多 FPGA 系统中由一个主控器件统一配置;也可通过下载线实现
1.2.4 主动并行配置 (AP / BPI)
- 典型厂商:Xilinx 7 系列及以上(BPI = Byte Peripheral Interface)
- 原理:FPGA 作为并行 Flash Master,从并行 NOR Flash(x8/x16)读取配置
- 特点:速度比串行快,适合大容量比特流、启动时间敏感的场景
1.2.5 被动并行配置 (PP / SelectMAP)
- 典型厂商:Xilinx(SelectMAP 接口)
- 原理:外部主机通过并行总线(x8/x16/x32)向 FPGA 发送配置数据
- 特点:配置速度快,适合由 CPU/MCU 快速重载 FPGA 逻辑(部分可重构场景)
1.2.6 SPI 配置(Xilinx 主流)
- 典型厂商:Xilinx 7 系列 / UltraScale(Quad-SPI / Dual-SPI)
- 原理:FPGA 上电后作为 SPI Master,从 Quad SPI Flash 读取比特流
- 特点:引脚少、成本低、速度尚可(x1/x2/x4 线宽可选),是 Xilinx 量产最常用方式
1.2.7 以太网远程配置
- 原理:通过 FPGA 内部以太网 MAC + 软核(MicroBlaze/Nios II)或外部 MCU,经网络接收比特流后写入 Flash 或直接配置
- 典型协议:TFTP、HTTP、自定义协议
- 特点:适合已部署设备的远程升级(OTA),无需现场接下载器
1.2.8 PCIe 配置
- 原理:上位机通过 PCIe 总线向 FPGA 发送配置数据,FPGA 从 PCIe 链路加载
- 特点:适合 PCIe 加速卡场景,可由主机驱动在系统启动阶段完成 FPGA 配置
1.3 按存储介质 / 持久性分类
| 存储位置 | 持久性 | 说明 |
|---|---|---|
| FPGA 内部配置 SRAM | 易失(断电丢失) | 所有 FPGA 每次上电都必须重新配置;JTAG/PS/PP 直接写这里 |
| 外部串行 Flash(SPI/EPCS) | 非易失 | AS/SPI 模式上电自动加载;也可先用 JTAG 烧录 Flash |
| 外部并行 Flash(BPI/NOR) | 非易失 | AP/BPI 模式,容量大、速度快 |
| 外部主机存储(PC/MCU/SD 卡) | 取决于主机 | 被动模式下由主机每次上电发送 |
注意:除了基于 SRAM 的 FPGA(Xilinx、Intel 主流),还有基于 Flash 的 FPGA(如 Microsemi/IGLOO、Lattice MachXO 系列),配置数据直接存储在片内 Flash,上电即运行、无需外部配置芯片,安全性更高。
1.4 开发阶段 vs 量产阶段的选择建议
| 阶段 | 推荐方式 | 理由 |
|---|---|---|
| 开发调试 | JTAG | 速度快、可在线调试、支持 SignalTap/ChipScope、可反复下载 |
| 小批量验证 | JTAG 烧录外部 Flash | 用 JTAG 把比特流烧进 SPI/BPI Flash,断电后可自启动 |
| 量产 | 主动模式 (AS/SPI/BPI) | 上电自动加载,无需下载器和主机;Flash 可独立批量预烧录 |
| 已部署维护 | 以太网 / PCIe 远程升级 | 无需拆机,降低维护成本 |
1.5 各厂商常用方式速查
| 厂商 | 开发调试 | 量产自启动 | 专用 Flash |
|---|---|---|---|
| Xilinx (AMD) | JTAG (Platform Cable) | Quad-SPI / BPI | 通用 SPI Flash(如 MT25Q) |
| Intel (Altera) | JTAG (USB-Blaster) | AS (EPCS/EPCQ) | EPCS/EPCQ 系列 |
| Lattice | JTAG (HW-USBN-2) | SPI Flash / 片内 Flash (MachXO) | 通用 SPI Flash |
| Microsemi (Microchip) | JTAG (FlashPro) | 片内 Flash(无需外部) | — |
开发用JTAG最方便,量产用SPI/AS 主动串行最常见,大容量 / 快启动选BPI 并行,已部署设备选网络远程升级
2. FPGA常用电平标准
FPGA 的 I/O 电平标准决定了引脚电气特性(电压阈值、驱动强度、速率上限)。
- 按信号形式分为单端、差分两大类
- 按速率又可分为低速逻辑与高速 SerDes 两大类
2.1 单端电平标准(Single-Ended)
| 标准 | 供电电压 Vcco | 输出高 VOH | 输入高 VIH | 输入低 VIL | 典型应用 |
|---|---|---|---|---|---|
| LVCMOS33 | 3.3V | ≥2.4V | ≥2.0V | ≤0.8V | 通用逻辑、外设 |
| LVCMOS25 | 2.5V | ≥2.0V | ≥1.7V | ≤0.7V | 通用逻辑、DDR2 控制器 |
| LVCMOS18 | 1.8V | ≥1.35V | ≥1.17V | ≤0.63V | 低压逻辑、SDRAM |
| LVCMOS15 | 1.5V | ≥1.1V | ≥0.975V | ≤0.525V | 低压接口 |
| LVCMOS12 | 1.2V | — | ≥0.84V | ≤0.36V | 超低压逻辑 |
| LVTTL | 3.3V | ≥2.4V | ≥2.0V | ≤0.8V | 传统逻辑、总线接口 |
| HSTL(I~IV) | 1.5V / 1.8V | 摆幅 0.4~0.9V | 差分参考 | 差分参考 | 存储器接口(DDR)、网络设备 |
| SSTL(135/15/18/2/3) | 1.35~3.3V | — | 参考 VREF | 参考 VREF | DDR/DDR2/DDR3/DDR4 内存 |
| PCI / PCI-X | 3.3V / 2.5V | — | — | — | PCI 总线接口 |
HSTL / SSTL 的区别:两者都用于高速存储器接口,用外部参考电压 VREF替代固定阈值,因此抗噪性更好、速率更高。
HSTL 常见于 SRAM/DDR,SSTL 专门面向 SDRAM(SSTL15→DDR3,SSTL12→DDR4)。
2.2 差分电平标准(Differential)
| 标准 | 输出摆幅 | 共模电压 | 典型速率 | 典型应用 |
|---|---|---|---|---|
| LVDS | 350mV (250~450mV) | 1.2V | 最高~3.125 Gbps | 最常用,ADC/DAC 接口、背板、视频 |
| Mini-LVDS | 200~600mV | 1.2V | 高 | 液晶面板(TFT-LCD 驱动) |
| Bus LVDS (BLVDS) | 250~550mV | 1.2V | 高 | 多点背板总线(双向) |
| RSDS | 200mV | 1.2V | 中 | LCD 面板数据接口 |
| LVPECL | 800mV | 2.0V (需偏置) | 高达 GHz | 高速时钟分发、光模块 |
| HCSL | 700~900mV | 0~0.35V | 高达 GHz | PCIe 参考时钟、USB3/SATA 时钟 |
| TMDS | 差分电流驱动 | — | 3.4 Gbps / 通道 | HDMI / DVI 视频 |
| MIPI D-PHY | 200mV | 200mV | 最高 2.5 Gbps | 手机摄像头 / 显示、传感器 |
| Sub-LVDS | 100~300mV | 0.9~1.2V | 高 | 图像传感器(CMOS 摄像头) |
2.3 高速 SerDes 电平(收发器引脚)
这部分不走普通 I/O bank,而是走 FPGA 专用收发器硬核:
| 标准 | 说明 | 应用 |
|---|---|---|
| CML | 电流模式逻辑,AC 耦合,摆幅~800mV | PCIe、SATA、10G Ethernet、光模块 |
| PCML | 伪电流模式逻辑 | 10/40/100G 背板、SerDes |
| VML | 电压模式逻辑(新收发器) | 高速背板 |
收发器引脚需外部端接 + AC 耦合电容,不能直接接 DC 电平,且通常不兼容普通 I/O 标准,必须走专用引脚
2.4 关键知识点
2.4.1 I/O Bank 与 VCCO 的绑定
- FPGA 引脚按Bank分组,每个 Bank 的VCCO 引脚电压决定该 Bank 支持的输出标准
- 同一个 Bank 内的所有引脚必须使用相同的输出标准(同一 VCCO)
- 但输入可支持一定范围内的混合标准(受 VREF、VCCO 约束)
- 差分标准通常使用VCCAUX / VCCINT或专用引脚,部分器件有独立的 VCCIO 要求
2.4.2 电平不匹配的转换方法
当 3.3V 外设接到 1.8V FPGA Bank 时:
| 方案 | 说明 |
|---|---|
| 电平转换芯片 | 双向 / 单向转换器(如 TXS0108、SN74LVC) |
| 电阻分压 | 仅单向、速率受限,适合慢速信号 |
| 串阻钳位 | 串联电阻 + 二极管钳位,临时方案 |
| 换 Bank | 将信号分配到 VCCO 匹配的 Bank(最优) |
| OC/OD 上拉 | 开漏输出 + 上拉到目标电压 |
2.4.3 端接电阻(Termination)
- 高速差分信号要求100Ω 跨接在差分对两端(与特性阻抗匹配)
- 单端高速信号需考虑源端 / 末端串联匹配(33/50Ω)
- 现代 FPGA 提供片内可编程端接(Digitally Controlled Impedance, DCI),省去外部电阻
2.4.4 速率与电平的关系
| 速率范围 | 推荐标准 |
|---|---|
| < 100 MHz | LVCMOS / LVTTL(单端简单) |
| 100 MHz ~ 1 Gbps | LVDS / HSTL / SSTL |
| > 1 Gbps | 差分标准(LVDS 极限)或 SerDes(CML) |
2.5 选型速查
| 应用场景 | 推荐电平标准 |
|---|---|
| GPIO / 按键 / LED / 慢速外设 | LVCMOS33 / LVCMOS25 |
| DDR3 / DDR4 内存 | SSTL15 / SSTL12(专用引脚) |
| ADC / DAC 数据接口 | LVDS 或 HSTL |
| HDMI 视频 | TMDS(专用引脚) |
| PCIe 时钟 | HCSL / LVDS |
| 高速串行(光口 / PCIe) | CML(SerDes) |
| 面板显示(LCD) | Mini-LVDS / RSDS |
低速通用逻辑用LVCMOS/LVTTL(按 VCCO 分 1.2~3.3V),高速并行用HSTL/SSTL(内存类),高速串行用LVDS,超高速收发放CML。选型时必须先确认对应I/O Bank 的 VCCO和该引脚是否支持目标标准。
3. ECL 电平标准详解
ECL =Emitter-Coupled Logic(发射极耦合逻辑),是最早实现GHz 级速度的成熟逻辑电平标准,也是后来 LVDS、CML、LVPECL 等高速电平的 "老祖宗"。
3.1 基本概念
- 本质:基于双极性晶体管(BJT)差分放大器结构实现的逻辑家族
- 核心结构:两个(或多个)晶体管组成差分对,共享一个尾电流源,靠电流在两边 "切换" 而非晶体管 "饱和 / 截止" 来实现逻辑
- 代表系列:ECL 10K(标准)、ECL 100K(高速改进版)、MECL(Motorola ECL)
- 历史地位:IBM 大型机、早期超算、高速计数器的核心逻辑;至今 LVPECL 仍在高速时钟领域活跃
3.2 为什么它速度极快(原理)
| 常规逻辑(TTL/CMOS) | ECL |
|---|---|
| 晶体管工作在饱和 / 截止区切换 | 晶体管始终工作在线性(放大)区 |
| 饱和区有存储时间,拖慢翻转 | 永不进入饱和,无存储时间延迟 |
| 翻转时电流突变,产生开关噪声 | 尾电流恒定,电流只是换路,噪声更小 |
| 输出摆幅大(0~3.3V),充放电慢 | 摆幅极小(~0.8V),充放电极快 |
| 输出阻抗高 | 输出为射极跟随器,低输出阻抗,驱动强 |
ECL 靠 "电流从差分对的一边流到另一边" 来翻转,晶体管始终工作在放大区,避免了 BJT 饱和存储时间的致命延迟,因此能达到 GHz 级翻转速度。
3.3 电压参数(标准 ECL 100K 系列,负电源)
| 参数 | 典型值 | 说明 |
|---|---|---|
| 电源电压 VEE | -4.5V(100K)/ -5.2V(10K) | 历史上用负电源供电 |
| 逻辑高电平 VOH | -0.8V(约 VCC-0.8) | 输出射极跟随器 |
| 逻辑低电平 VOL | -1.7V(约 VCC-1.7) | |
| 输出摆幅 | ~0.9V | 比 LVDS (0.35V) 大、比 TTL 小很多 |
| 输入阈值 VIH / VIL | -1.13V / -1.48V | |
| 参考电压 VBB | ~-1.3V | 差分对基极偏置参考 |
| 噪声容限 | ~350mV | 摆幅大,噪声容限优于 LVDS |
3.4 ECL → PECL → LVPECL(正电源变体)
传统 ECL 用负电源(-5.2V/-4.5V),与现代数字系统(+3.3V 单电源)不兼容,于是衍生出正电源版本:
| 标准 | 电源 | 高电平 | 低电平 | 摆幅 | 共模 | 应用 |
|---|---|---|---|---|---|---|
| ECL | -5.2V/-4.5V | -0.8V | -1.7V | 0.9V | 约 -1.2V | 历史高速逻辑 |
| PECL | +5V | 4.2V | 3.3V | 0.9V | 3.75V | 早期光通信 |
| LVPECL | +3.3V | 2.4V | 1.6V | 0.8V | ~2.0V | 高速时钟分发、SerDes 参考时钟(最常用) |
| LVDS | 3.3V | — | — | 0.35V | 1.2V | 数据并行传输(低功耗替代) |
LVPECL 是当前 ECL 家族中唯一仍大量使用的成员,主要用于:高速 ADC/DAC 时钟、SerDes/PHY 的参考时钟、精密时钟分配器(如 LMK 系列)。
- 优点:摆幅大、边沿陡、抖动低、驱动强
- 缺点:功耗高、必须外部端接
3.5 端接要求(ECL/LVPECL 必须端接)
ECL 输出为开射极(射极跟随器)结构,必须提供直流电流回路,否则无法正常工作:
典型端接方案(LVPECL,3.3V 供电): 输出端 ──┬── 50Ω ── VCC-2V (约1.3V,戴维南等效) └── 直连接收端 ── 100Ω 跨接差分对 常用戴维南等效: 82Ω 到 VCC 与 130Ω 到 GND 并联等效 50Ω 到 1.3V不端接的后果:输出无法建立正确电平、边沿畸变、增加抖动、可能损坏器件。
3.6 ECL vs CML vs LVDS
| 维度 | ECL / LVPECL | CML | LVDS |
|---|---|---|---|
| 输出级 | 射极跟随器 | 电流开关(漏极开路) | 电流源驱动 |
| 摆幅 | 0.8V | 0.4~0.8V | 0.35V |
| 端接 | 必须 | 必须 + AC 耦合 | 100Ω 跨接(可片内) |
| 功耗 | 高 | 中 | 低 |
| 速率 | GHz | 10Gbps+(SerDes 内部) | 最高约 3.125Gbps |
| 应用 | 时钟分发 | 高速串行收发 | 并行数据、时钟 |
3.7 电平转换问题
ECL 电压域为负 / 特殊电平,不能直接接 TTL/CMOS,需专用转换:
| 转换 | 常用器件 |
|---|---|
| ECL ↔ TTL | MC10ELT20、MC100ELT20、SY10ELT 系列 |
| PECL ↔ LVCMOS | MC10EP17、LVDS-PECL 转换器 |
| ECL ↔ LVDS | DS90LV 系列、MC100LVELT |
3.8 优缺点总结
优点
- 速度极快(GHz 级),是速度上限最高的逻辑家族之一
- 互补差分输出,天然抗共模干扰
- 恒流工作,功耗与频率无关(高频时反而 "划算")
- 低输出阻抗,可驱动长走线 / 高容性负载
- 抖动低、边沿对称,适合精密时钟
缺点
- 功耗大(恒流,空闲也耗电)→ 发热大
- 必须外部端接,电路复杂
- 电平域特殊,与 TTL/CMOS 不兼容,需转换芯片
- 传统 ECL 需负电源(现已被 LVPECL 3.3V 取代)
- 成本高