
FPGA逻辑分析仪——逻辑派FPGA-G1开发板
简介
全网首款软硬件全开源FPGA逻辑分析仪。16通道200MHz采样,2Gb深度存储,硬件级多模式触发,阈值可调,PulseView百种协议解码。从HDL到上位机全面开放,填补开源高性能逻辑分析仪的空白。
简介:全网首款软硬件全开源FPGA逻辑分析仪。16通道200MHz采样,2Gb深度存储,硬件级多模式触发,阈值可调,PulseView百种协议解码。从HDL到上位机全面开放,填补开源高性能逻辑分析仪的空白。开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
⚡ FoLogic — FPGA 逻辑分析仪
> 高速采集 · 精准触发 · 协议解码 · 开源共享
📑 目录
🎬 演示视频
📋 项目简介
在开源逻辑分析仪领域,长期以来主流方案多为基于 MCU 的低采样率、少通道设备,功能相对基础。随着 USB 3.0 高速接口的普及,虽然后续出现了多通道、高采样率的 MCU 方案,在一定程度上解决了通道数与采样率的需求,但在多通道硬件触发、自定义触发位置等高级触发功能上仍存在明显短板。真正能够兼顾高采样率与高级硬件触发能力的方案,仍然依赖 FPGA + USB PHY 架构。然而迄今为止,全网尚未出现一套完整的、软硬件全开源的 FPGA 逻辑分析仪方案。
| 架构类型 | 采样率 | 通道数 | 硬件触发能力 | 软硬件开源情况 |
|---|---|---|---|---|
| 🛠️ 传统 MCU 方案 | 低频(≤24 MHz) | 少通道(≤8 ch) | ⚠️ 基础边沿触发,无多通道组合触发及触发位置调节 | ✅ 多为开源 |
| ⚡ USB 3.0 MCU 方案 | 中高频(≤200 MHz) | 多通道(≥16 ch) | ⚠️ 基础边沿/电平触发,缺失多通道组合触发及触发位置调节能力 | ✅ 多为开源 |
| 🚀 FPGA + USB PHY(其他方案) | 高频(≥200 MHz) | 多通道(≥16 ch) | ✅ 支持高级硬件触发 | ⚠️ 未完全开源(代码/硬件开源程度不一) |
| 🏆 FPGA + USB PHY(本方案) | 高频(200 MHz) | 多通道(16 ch) | ✅ 边沿/电平/掩码多模式,触发位置可调 | ✅ 软硬件全开源 |
FoLogic 正是在这一背景下诞生的。
FoLogic 是一款基于 FPGA 的 16通道 200MHz 高性能逻辑分析仪,采用 底板(CY7C68013A)+ 核心板(逻辑派 FPGA-G1,集成 GW2A-18 + DDR3) 双板架构,板载 DDR3 最大 2Gb 存储深度。实现对数字信号的高速采集、精确触发、实时分析与协议解码。面向电子工程师、科研人员及硬件爱好者,助力高效解决复杂的数字电路调试问题。
本项目参与 嘉立创星火计划 2026,全部设计文件(原理图、PCB、固件、上位机配置)均已开源。
🧭 版本选择
FoLogic 提供 V1 经济版 与 V2 增强版 两个版本,两者共用相同的核心架构(16ch / 200MHz / DDR3),主要差异集中在采集前端的输入保护与阈值调节能力。
> ⭐ 本文档以 V2 增强版为主线进行介绍,V1 经济版作为低成本备选方案,其完整内容见文末 📁 V1 经济版存档 子章节。
📊 功能对比
| 能力 | V1 经济版 | V2 增强版(推荐) |
|---|---|---|
| 采样通道 / 采样率 | 16ch / 200MHz | 16ch / 200MHz |
| 存储深度 | 最大 2Gb(DDR3) | 最大 2Gb(DDR3) |
| 采集前端 | 100Ω 限流 + ESD + 双向钳位二极管保护 | 33Ω 串联 + ESD(H5VU25U) + 5V 供电 TLV3502 比较器(带迟滞回差)+ SN74LVC16245A 电平转换至 3.3V |
| 阈值电压 | 固定(不可调) | DAC5311 输出 0~5V,上位机滑块可调 |
| 低压波形(1.8V / 2.5V) | ❌ 不支持 | ✅ 支持 |
| 适用场景 | 入门学习、预算有限 | 严谨调试、追求可靠 |
> 📌 两版均非为负压测量设计,请勿输入负压信号。正常 0~5V 范围内两版皆可安全使用;若意外持续输入负压,V1 可能烧坏 FPGA VCCIO,V2 则仅可能损坏前端比较器等器件(不伤及 FPGA,更换成本低)。
💰 BOM 成本对比(采集前端)
| 项目 | V1 经济版 | V2 增强版 |
|---|---|---|
| 双通道肖特基二极管 | 0.1×16 = 1.6 元 | — |
| 比较器 TLV3502 | — | 1.5×8 = 12 元 |
| DAC DAC5311 | — | 4×1 = 4 元 |
| 电平转换 SN74LVC16245A | — | 1×1 = 1 元 |
| SPI 控制线电平转换 SN74LV1T34DCKR(3.3V→5V) | — | 0.5×3 = 1.5 元 |
| 阻容 / ESD(两版共用) | 10 元 | 10 元 |
| 采集前端合计 | 约 11.6 元 | 约 28.5 元 |
| V2 相对 V1 成本增加 | — | 约 16.9 元 |
> 📌 成本口径说明:上表价格为淘宝店铺零散购买价(多为散新/拆机件),仅供参考。其中差异最大的是 TLV3502——淘宝散新约 1.5 元/片,而 立创商城全新正品约 13 元/片(TI,SOT-23-8,型号 TLV3502AIDCNR,十颗以内散买价)。若全部器件改用全新正品,V2 仅 TLV3502(8 片)一项成本就会由约 12 元升至约 104 元,实际成本请以最终选型为准。
> 💡 如何选择? 两者均非为负压测量设计,负压信号都无法正常采集。区别在于损坏层面:V1 在持续负压输入下钳位会失效、可能烧坏 FPGA VCCIO;V2 通过比较器+电平转换隔离负压,烧不到 FPGA,但持续负压仍可能损坏前端比较器等器件(代价较低)。V1 在常规 0~5V 信号下完全可用、成本更低,适合入门复刻,但阈值不可调、无法测 1.8V/2.5V 低压波形。若信号无持续负压且无需低压测量,V1 足够;若需更可靠保护或支持低压波形,推荐 V2 增强版。
📷 产品展示
↑ FoLogic 整机图
💎 产品特色
🎯 适用场景
| 场景 | 说明 |
|---|---|
| 🔧 嵌入式系统调试 | 分析 MCU/SoC 引脚时序、外设通信 |
| 📡 通信协议分析 | 基于 PulseView 解码 100+ 种协议(I²C、SPI、UART、CAN、JTAG 等),支持自定义协议 |
| ⏱️ 时序测量 | 精确测量信号上升/下降时间、脉冲宽度 |
| 🧩 FPGA 调试 | 辅助 FPGA 内部信号观测与验证 |
| 🎓 教学实验 | 数字电路课程配套实验平台 |
📷 叠层展示
↑ 底板(CY7C68013A)+ 逻辑派 FPGA-G1 核心板叠层
> 💡 组装方式:本方案采用底板与核心板直接焊接的方式,大幅降低整机厚度,避免如"板砖"般臃肿。若需可拆卸设计,也可通过板对板连接器连接,但需重新设计并加高底壳。
🚀 双模缓存架构
支持 Buffer 与 Stream 两种模式,可在上位机软件中自由切换:
Buffer 模式(深度存储)
| 采样率 | 最大通道数 | 适用场景 |
|---|---|---|
| 200 MHz | 16 ch | 高速并行信号分析,如 DDR 时序、并行总线 |
- 数据先缓存至板载 DDR3,采集完成后通过 USB 批量回传
- 触发位置可前后灵活配置(预触发/后触发深度可调)
Stream 模式(连续流式)
| 采样率 | 最大通道数 | 适用场景 |
|---|---|---|
| 100 MHz | 2 ch | 高速串行信号长时监测 |
| 50 MHz | 5 ch | 中速多通道信号分析 |
| 20 MHz | 8 ch | 中速多通道连续监控 |
| 10 MHz | 16 ch | 全通道低速长时间记录 |
- 边采样边上传,实现长时间连续采集
- 上位机实时显示波形,适合观测偶发异常信号
- 采样率与通道数可动态平衡
> 💡 设计思路:两种模式互补 —— Buffer 模式捕获高频细节,Stream 模式记录长时间行为。通过上位机一键切换,无需重新配置 FPGA。
⚡ 200MHz 高速采样
Buffer 模式下最高支持 200MHz / 16通道 并行采样(受此款FPGA工艺制程的影响,200MHz主频会有严重的时序违例,所以采用100MHz 主频 + IDDR 双沿采样的方式),轻松捕获高速数字信号细节。
🔌 USB 2.0 High-Speed 高速传输
采用 Cypress CY7C68013A (FX2LP) USB 2.0 控制器 + GPIF 并行总线,确保 PC 与 FPGA 之间数据高速可靠传输。
🧩 开源核心板,学习利器
采用全开源 逻辑派 FPGA-G1 作为核心板,底板仅包含 USB 控制器和输入保护电路,结构精简,适合学习与复刻。全开源的硬件架构适合学习PCB绘制将两板绘制到一起,可玩性极高。
> 🛒 购买逻辑派 FPGA-G1 核心板:🔗 购买链接 🎫 领券链接 原价 178 元,现在领券立减 40 元,到手仅 138 元
🛡️ 采集前端与输入保护(V2 增强版)
V2 增强版采用 比较器整形 + 电平转换 + ESD 的多重防护架构,彻底杜绝负压/高压损伤 FPGA 的风险(注:持续负压仍可能损坏前端比较器等器件,但代价远低于 FPGA,且不会烧到 FPGA):
- TLV3502 比较器整形:将输入波形整形为边沿陡峭的数字方波,并通过反馈迟滞电阻引入回差,消除比较阈值附近的抖动误触发
- 0~5V 阈值可调:比较器阈值电压 Vref 由 DAC5311 输出提供,DAC 通过 FPGA 实现 0~5V 可配置;上位机同步提供 0~5V 可调的电压阈值滑块
- 双重防护:比较器采用 5V 供电,前端串接 33Ω 电阻 与 ESD(H5VU25U) 以预防高电压误触;比较器后接 SN74LVC16245A 电平转换器,将波形安全转换为 3.3V 后接入 FPGA
- 更宽的波形兼容:实测通过调节阈值,可支持 1.8V / 2.5V / 3.3V / 5V 波形的测量
> 💡 为什么放弃纯钳位方案? 原钳位方案在持续的负压输入下会失效,负压直接接入 FPGA,导致整个 Bank 的电压 VCCIO 被烧坏。V2 通过比较器和电平转换器的双重隔离,杜绝负压烧坏 FPGA 的风险(持续负压仍可能损坏前端比较器,但代价低且不伤及 FPGA)。V1 经济版仍采用原钳位方案,详见文末 📁 V1 经济版存档。
🎯 智能触发系统
由 FPGA 硬件实时匹配触发条件,零延迟响应,支持以下触发模式:
- 边沿触发 — 上升沿 / 下降沿 / 双边沿,捕获脉冲起始与中断信号
- 电平触发 — 高电平 / 低电平,检测总线空闲或复位状态
- 掩码触发 — 多通道组合逻辑条件(掩码 + 值 + 边沿),适用于复杂协议或状态机调试
触发位置灵活可调:预触发深度可配置为总缓存深度的 0% ~ 90%,兼顾触发前后的波形观察,轻松捕获偶发异常。
📜 海量协议解码
基于 PulseView 上位机,支持 100+ 种协议解码器(I²C、SPI、UART、CAN、1-Wire、JTAG 等),并可通过 Python 自定义私有协议解码。
📈 实测性能
对于采样电路而言,要还原不失真的波形,采样频率需达到被测信号频率的 4 倍以上。基于这一原则,200 MHz 采样率应能稳定采集 50 MHz 以内的信号波形。
为验证实际性能,使用另一块 FPGA 的 PLL 输出了以下频率的测试波形:50 MHz、25 MHz、12.5 MHz、6.25 MHz。其中 50 MHz 波形产生了一个 90° 相位差 用于对比,以检验多通道之间的相位一致性。
↑ 各频率测试波形实测结果
📊 技术参数
| 参数项 | 规格 |
|---|---|
| 采样通道 | 16 通道 |
| 最大采样率(Buffer) | 200 MHz(16通道,IDDR 双沿采样) |
| 最大采样率(Stream) | 100 MHz(2ch)/ 50 MHz(5ch)/ 20 MHz(8ch)/ 10 MHz(16ch) |
| 存储深度 | 最大 2 Gb(板载 DDR3 SDRAM) |
| 主控 FPGA | 高云 GW2A-18(逻辑派 FPGA-G1 核心板) |
| USB 控制器 | Cypress CY7C68013A(FX2LP) |
| 通信接口 | USB 2.0 High-Speed(480 Mbps) |
| 输入电压范围 | 0 ~ 5V(V2 可通过 DAC5311 调节阈值,兼容 1.8V / 2.5V / 3.3V / 5V 逻辑电平) |
| 输入保护(V2) | TLV3502 比较器整形 + 迟滞回差 + 33Ω 串联 + H5VU25U ESD + SN74LVC16245A 电平转换 |
| 输入保护(V1) | ESD 防护 + 限流电阻 + 双向钳位二极管保护(详见文末 V1 存档) |
| 输入阻抗 | ≥ 100 kΩ |
| 触发模式 | 上升沿/下降沿/双边沿、高电平/低电平、掩码触发(掩码+值+边沿) |
| 协议解析 | 基于 PulseView,支持 100+ 种协议解码器,可 Python 自定义 |
| PC 软件 | PulseView(带 FoLogic 驱动支持) |
| 供电方式 | USB 总线供电 |
| PCB 层数 | 4 层 |
| 外壳 | 专用 3D 打印外壳 |
🏗️ 系统架构
三层软硬件架构
系统采用 PC上位机 + FX2 USB控制器 + FPGA 三层架构,层级间职责分明:
| 层级 | 核心芯片 | 主要功能 |
|---|---|---|
| PC上位机层 | 通用 PC | 设备管理、波形显示、协议解码 |
| FX2 控制器层 | Cypress CY7C68013A | USB 协议桥接、GPIF 总线控制 |
| FPGA 逻辑层 | 高云 GW2A-18 | 16ch 高速采样、触发匹配、DDR3 缓存 |
↑ PC / FX2 / FPGA 三层架构框图
数据处理流程
- 信号输入 → 16 通道被测信号经探头进入采集接口
- 输入保护/整形 → 33Ω 限流 + ESD(H5VU25U)+ TLV3502 比较器整形(0~5V 阈值可调)
- 电平转换 → SN74LVC16245A 将 5V 比较器输出转换为 3.3V 接入 FPGA
- FPGA 采样 → 100MHz 主频 + IDDR 双沿采样,等效 200MHz
- 触发判断 → 硬件触发识别引擎实时匹配触发条件(边沿/电平/掩码)
- 数据缓存 → Buffer 模式存入板载 DDR3 / Stream 模式实时打包上传
- USB 传输 → 通过 FX2 GPIF 接口将数据发送至 PC
- 上位机显示 → PulseView 进行波形渲染与协议解码
🔩 硬件设计
底板 PCB 设计极为精简,焊接简单,非常适合复刻。板上仅包含逻辑派 FPGA-G1 接口电路、CY7C68013A 驱动电路、5V→3.3V DC-DC 电路、16 通道采样接口及相应的采集前端电路。
> 📌 本文以 V2 增强版底板为主线,其采集前端采用 TLV3502 比较器 + DAC5311 可调阈值 + SN74LVC16245A 电平转换 架构。V1 经济版的纯钳位方案见文末 📁 V1 经济版存档。
🔧 V2 采集前端架构(增强版)
每路输入信号经以下链路处理后再进入 FPGA:
被测信号 ── 33Ω 串联电阻 ── ESD(H5VU25U) ── TLV3502 比较器 ── SN74LVC16245A 电平转换 ── FPGA I/O
│
Vref(DAC5311 输出 0~5V 可调)
↑ 16 通道比较器采集前端电路原理图
- 比较器整形:TLV3502 将模拟波形整形为边沿陡峭的数字方波,反馈迟滞电阻引入回差,消除阈值附近抖动误触发
- 阈值可调:DAC5311 由 FPGA 控制输出 0~5V 阈值 Vref,配合上位机滑块实现不同逻辑电平(1.8V / 2.5V / 3.3V / 5V)的精确测量
- 安全隔离:比较器 5V 供电 + 前端 ESD 防护,后接 SN74LVC16245A 转换为 3.3V,彻底杜绝负压/高压进入 FPGA 的风险(持续负压仍可能损坏前端比较器,但不会伤及 FPGA)
⚡ 供电方案(V2)
通过 Type-C 接口进行供电和数据交互。逻辑派核心板的 5V 电源通过板对板接口由底板提供,底板的 3.3V 统一由底板上的 AMS1117 稳压输出。
> 💡 V2 不再保留"从核心板 LDO 取 3.3V"的供电方案,以避免对开发板电源造成污染,起到更好的隔离与保护作用。
📸 PCB 实物图(V2)
↑ V2 增强版底板 PCB 布局实物
🔌 接口定义
信号输入接口
↑ 底板 16 通道输入接口原理图布局
| 接口 | 类型 | 说明 |
|---|---|---|
| CH0 ~ CH15 | 数字输入 | 16 通道数字信号输入,V2 支持 1.8V/2.5V/3.3V/5V(阈值可调) |
| GND | 接地 | 公共接地端,建议所有通道共地 |
| USB | USB 2.0 | 数据通信与供电(Type-C) |
通信接口
| 接口 | 协议 | 速率 | 说明 |
|---|---|---|---|
| USB 2.0 (CY7C68013A) | USB High-Speed | 480 Mbps | 主通信链路,GPIF 总线连接 FPGA |
电平兼容性(V2)
V2 通过上位机调节 DAC 阈值,可兼容多种逻辑电平。参考阈值约为被测电平的一半(Vref ≈ Vih/2),测量时据此设置:
↑ 上位机电压阈值滑块设置界面
| 输入电平 | 参考阈值(约电平一半) | 兼容性 |
|---|---|---|
| 1.8V 逻辑 | 约 0.9V | ✅ 兼容 |
| 2.5V 逻辑 | 约 1.25V | ✅ 兼容 |
| 3.3V 逻辑 | 约 1.65V | ✅ 兼容 |
| 5V 逻辑 | 约 2.5V | ✅ 兼容 |
> 💡 阈值设置建议:以被测逻辑电平的一半作为比较阈值(如 3.3V 逻辑设约 1.65V),即可获得最佳采样判据;实际可根据噪声情况微调。
固件烧录
首次使用前需先烧录 FPGA 逻辑和 FX2 固件。
烧录 FPGA 固件
从 GitHub Release(V1 / V2 通用固件 full_pro_v2_with_dac)或附件中下载 logic_v2.rar,解压后:
- 打开 Gowin IDE,加载工程目录下的
logic.gprj - 点击 Tools → Programmer,软件会自动选择对应的
.fs文件(如未自动选择,请手动添加impl\pnr\目录下的logic_gwin_pro.fs) - 连接设备,点击 Program/Configure 下载至逻辑派 FPGA-G1 核心板
> ⚠️ 注意:烧录时需选择 外部存储设备(SPI FLASH),若下载到内部 SRAM,掉电后程序会丢失。
↑ FPGA 下载器与逻辑派 FPGA-G1 核心板连接方式
↑ Gowin Programmer 烧录 FPGA 逻辑
下载 FX2 固件
从 GitHub Release 或附件中下载 FoLogic-fw-keil-master.rar,解压后 Output 目录下找到 FoLogic.iic。使用附件中的 CyConsole.rar,解压得到 CyConsole.exe。
首先插上底板,在设备管理器中确认是否识别到 FX2 设备。若未识别到,需安装附件中 cy7c68013驱动.rar 的驱动程序。
↑ 设备管理器识别到 FX2 设备
设备管理器识别到 FX2 后,打开 CyConsole.exe:
- 点击 Download 或通过菜单 FX2LP → Download
- 加载
Output目录下的FoLogic.iic文件 - 等待下载完成,状态栏显示成功即烧录完毕
↑ CyConsole 烧录 FX2 固件
🔌 采集线制作
FoLogic 共 16 个采集通道,每通道需要两根线(1 根信号线 + 1 根地线),因此共需制作 32 根短线(焊接杜邦母端子供探针使用)以及对应的对接长线(与四通道接口小板焊接)。本节以一根短线为例说明完整制作流程,按步骤复刻即可完成全部采集线制作。
> 💡 建议:信号线与地线统一用不同颜色的热缩管区分(本文示例为信号线黄色、地线黑色,可自行调整)。
🔧 所需物品清单
| 物品 | 规格 | 数量 | 用途 |
|---|---|---|---|
| RG178 黑色同轴线缆 | 长约 3 米 | 1 根/截 | 短线与长线共用线材 |
| 杜邦母端子 | 标准 2.54mm | 32 个 | 短线焊接端,与探针连接 |
| 热缩管(细) | 4:1 收缩比,约 φ1.5~2 | 若干 | 短线外皮绝缘 / 对接点绝缘 |
| 热缩管(粗) | 4:1 收缩比,约 φ8 | 16 根 | 对接接口处加固 |
| 热缩管(加粗) | 4:1 收缩比,约 φ25~30 | 4 根 | 四通道接口小板整体包裹 |
| 热熔胶 / 结构胶 | — | 若干 | 焊点与接口处加固 |
| 四通道接口小板 | PCB 见工程 | 4 块 | 焊接端,每块承载 4 通道 |
| 剥线钳 | — | 1 把 | 剥线用 |
| 钳子 | — | 1 把 | 杜邦端子压接/夹紧 |
> 📌 数量说明:以 16 通道完整配套为准;可根据实际通道数等比缩减。
> 🧩 线材说明:短线(约 3cm/根)与对接长线(≤10cm/根)均使用 RG178 黑色同轴线。32 根短线约 1 米 + 16 根长线约 1.6 米,含预留损耗,购买约 3 米足够。
> 🧩 热缩管选购建议:建议购买 4:1 收缩比的热缩管并多备几种型号。大致尺寸参考(收缩前):细管约 φ1.5~2(包裹线缆/对接点)、粗管约 φ8(对接接口加固)、加粗管约 φ25~30(包裹 2.54×4 接口小板与弯针)。
↑ 四通道接口小板
> 📌 工程说明:接口小板的工程位于主工程下的 pin_board 目录。
🛠️ 制作步骤
步骤 1 · 剪取约 3cm 线缆,双头剥掉外皮(一头稍短,一头稍长)
步骤 2 · 剪掉裸露屏蔽层,剥线钳分别在两头剥出金属导线
步骤 3 · 取一个杜邦母端子焊接在较长的一端,并用钳子夹紧
步骤 4 · 不要和残留屏蔽层挨太近,可抹薄薄一层结构胶加固(一定要薄)
步骤 5 · 套上热缩管,每通道 2 根(地线黑色、信号线黄色,颜色可自调)
步骤 6 · 剪取对接长线(≤10cm),一端剥外皮保留屏蔽网与地线焊接,信号线对接信号线(提前套细热缩管)
步骤 7 · 粗热缩管套上接口处,先用热熔胶/结构胶填充加强,再热熔缩紧
步骤 8 · 对接长线另一端焊接到四通道接口小板(PCB 见工程),一根采集线制作完成
步骤 9 · 按上述步骤完成全部 16 根采集线,整组效果如图所示
📦 外壳设计
极简风格,3D 打印制作。外壳采用底壳加上壳的分体结构,壁厚 2.0mm,壳体之间通过侧面的四颗 M2 螺丝连接,PCB 通过四颗 M3 螺丝固定在底壳。外壳预留有热熔螺母孔位,规格如下:
| 项目 | 规格 | 打孔尺寸 | 推荐螺丝 |
|---|---|---|---|
| M3 螺母(固定 PCB) | 孔径 3mm × 长度 3mm × 外径 4mm | 3.7mm × 4mm | M3 × 5mm / M3 × 6mm 平头螺丝 |
| M2 螺母(连接上下壳) | 孔径 2mm × 长度 3mm × 外径 3mm | 2.7mm × 4mm | M2 × 5mm / M2 × 6mm 沉头螺丝 |
🖼️ 外壳渲染图
*↑ 3D 打印外壳渲染图*
🖼️ 外壳实物
↑ 外壳实物
> STL 文件请在附件中下载。
🎯 触发系统
支持的触发模式
| 触发模式 | 说明 | 应用场景 |
|---|---|---|
| 🔼 上升沿触发 | 信号从低到高跳变时触发 | 捕获脉冲起始、中断信号 |
| 🔽 下降沿触发 | 信号从高到低跳变时触发 | 捕获复位、使能信号 |
| 🔄 双沿触发 | 上升沿或下降沿均可触发 | 毛刺检测、边沿变化监测 |
| ⏸️ 高电平触发 | 信号为高电平时触发 | 检测总线空闲状态 |
| 🔽 低电平触发 | 信号为低电平时触发 | 检测复位或请求信号 |
| 📐 掩码触发 | 多通道组合逻辑条件(掩码+值+边沿)触发 | 复杂协议或状态机调试 |
触发位置控制
↑ PulseView 触发配置界面
采集窗口
├─── 预触发深度 ───┤●├─── 后触发深度 ───┤
│
触发事件位置
- 预触发深度:可配置为总缓存深度的 0% ~ 90%
- 后触发深度:自动根据预触发深度调整
💻 配套软件
FoLogic 兼容 PulseView 软件生态,在原版 PulseView 基础上添加了 FoLogic 硬件驱动支持,可与其它 PulseView 系列逻辑分析仪共用同一套软件。
提供两种安装包供选择:
| 版本 | 说明 |
|---|---|
| 完整版 PulseView | 包含所有已有驱动,兼容 FoLogic 及其它 PulseView 系列逻辑分析仪 |
| FoLogic 专用版 PulseView | 仅保留 FoLogic 驱动,大幅缩短启动时扫描其他设备驱动的时间 |
> 📌 下载说明:可在 GitHub Release(最新版 fologic_v2)直接下载,或使用本附件中的安装包。由于附件大小限制为 50M,附件中的安装包分为 part1 / part2 两个分卷,请全部下载后放入同一目录,解压 part1 即可得到完整安装包。
> 💡 为什么没有自研上位机? 目前市面上的二次开发上位机软件,绝大多数都是基于 sigrok 的 PulseView 修改而来。核心考量在于 PulseView 生态已成熟稳定,对于非商用领域的开源项目而言,与其重复造轮子做一套自有 UI,不如将精力聚焦于硬件性能和驱动优化,为用户提供最可靠的底层工具。当前方案尚未涉及多级触发匹配、数字压缩使能等高级配置需求,PulseView 已能完全满足现有功能。因此选择以添加硬件驱动的方式接入 PulseView 生态——如果您手头有其他 sigrok 支持的逻辑分析仪,还能共用同一套软件,一举两得。
PulseView 特性
- ✅ 跨平台支持(Windows / Linux / macOS)
- ✅ 100+ 种协议解码器,覆盖有线/无线/工业/存储等各大类
- ✅ 支持 Python 自定义解码器,可解析任意私有协议
- ✅ 灵活的触发设置
- ✅ 波形导出(CSV、VCD、二进制等格式)
- ✅ 多窗口对比分析
- ✅ 搜索与标记功能
软件使用指引
- 下载 PulseView 安装包(完整版或专用版均可)
> 📌 关于附件拆分:由于附件大小限制为 50M,上位机安装包在本附件中分为 part1 和 part2 两个分卷。请将两个分卷全部下载,并放入同一目录后,使用解压软件打开 part1 即可正常解压出完整安装包。
> 💡 关于驱动:WinUSB 驱动绑定的是 USB 端口号,更换 USB 口后需重新用 Zadig 安装驱动。这是 WinUSB 驱动机制的固有限制,非本设备问题。
↑ Zadig驱动安装界面
↑ PulseView 设备选择界面
📡 协议解码
协议解码能力
FoLogic 采用 PulseView 上位机,协议解码能力基于 Sigrok 协议解码器(Protocol Decoders, PD)库,涵盖 100+ 种协议 且持续增长。
🔌 即开即用的协议库(部分列举)
| 类别 | 协议 |
|---|---|
| 🔗 有线总线 | I²C、SPI、UART、CAN、LIN、1-Wire、RS-232、RS-485、JTAG、SWD、MDIO |
| 📡 无线/射频 | IR (NEC/SONY/RC-5)、Manchester、DMX512、WS281x |
| 🎵 音频/视频 | I²S、AC'97、DPI (Display Pixel Interface) |
| 💾 存储/存储器 | SD卡 (SPI/SD mode)、NAND Flash、EEPROM (24xx/93xx) |
| 🔋 电源/电池 | SMBus、PMBus、HDQ、DS243x (电池管理) |
| 🏭 工业/传感器 | MODBUS、DALI、DHTxx (温湿度)、MAX7219、DS18B20 |
↑ PulseView 解码 I²C/UART 信号波形示意
> 以上仅为冰山一角,完整协议列表请参见 sigrok 官方协议解码器列表。
🛠️ 自定义解码器
PulseView 支持使用 Python 编写自定义协议解码器,您可以根据需要:
- 解析私有/非标协议
- 定义自定义的数据帧格式
- 添加条件触发标记
- 扩展协议解码栈
❓ 常见问题
1. 为什么逻辑派 FPGA-G1 下载程序失败?
下载器需切换至 FPGA 下载模式,详情参考基于高云 Gowin 环境验证 | 立创开发板技术文档中心第四小节。作者实测中偶尔出现正常下载突然失败的情况,此时可先勾选 使用 ftd2xx 驱动 选项后点击下载,之后再取消勾选,通常即可恢复正常。
2. 为什么插上底板后固件下载器不识别 FX2 设备?
请观察设备管理器在插入底板后是否有变化:
- 无变化:检查焊接,或 CY7C68013 芯片可能存在故障(原装芯片价格较高,淘宝 10 元左右的散新片质量不一)。
- 有变化:设备通常出现在 通用串行总线控制器 下拉菜单下,设备名为
Cypress FX2LP No EEPROM Device。若未正确识别,请安装附件中的 Cypress 驱动程序。
3. 为什么 PulseView 无法识别我的逻辑分析仪?
首次使用时,需打开 PulseView 安装目录下的 Zadig 工具,将 FoLogic 的驱动替换为 WinUSB。具体操作请参考演示视频部分。
4. 为什么更换 USB 端口后又无法识别了?
WinUSB 驱动绑定的是 USB 端口号,更换 USB 口后需重新用 Zadig 安装驱动。这是 WinUSB 驱动机制的固有限制,非本设备问题。
5. 为什么 PulseView 点击开始采样后软件卡死了?
这通常是由于焊接问题导致 FPGA 与 CY7C68013 通信异常,进而影响上位机。上位机下发指令后,FPGA 需启动采样并回传数据;若因焊接问题导致 FPGA 未收到预期指令,则不会启动采样、不会回传数据,从而造成上位机卡死。建议检查焊接,重点排查 FX2 与 FPGA 交互的信号线是否存在对地短路或对电源短路。
6. 为什么设置了 50% 预触发深度,实际返回的位置却不是 50%?
如果在触发匹配发生时,已采样的数据量尚未达到总采样深度的 50%,则返回的位置为从开始采集到触发匹配时的实际位置。简而言之,触发发生前没有足够的预存数据,此时以实际采集量为准。
7. 支持的最大输入电压是多少?超过会怎样?
额定输入 0~5V。V2 增强版通过比较器 + 电平转换隔离,前端 ESD 可承受短时过压;但长期输入超过 5V 仍可能损坏前端比较器等器件,建议使用时确保被测信号在安全范围内。V1 经济版为钳位方案,超过 5V 可能损坏钳位二极管或 FPGA I/O。
8. 为什么有时候标注的触发位置会比实际波形靠前一个采样点?
受此款 FPGA 工艺制程限制,工作在 200 MHz 主频下会出现严重的时序违例,因此采用 100 MHz 主频 + IDDR 双沿采样的工作模式(以面积换速度)。这种模式下每个时钟周期处理 32 bit 数据,可能导致第二个 16 bit 才匹配到触发条件,体现为提前一个采样周期。属于正常现象,对实际应用没有影响。
9. 为什么测得的占空比和实际设置的有偏差?
这是逻辑分析仪以离散采样点还原连续信号带来的固有量化误差,任何逻辑分析仪都存在,属正常现象。
边沿位置精度受限于一个采样周期(1 LSB),因此实测占空比与设定值可能相差 ±1 个采样点。例如在 200MHz 采样率下,每个采样点约为 5ns,一个 50% 占空比的高频波形,有时会表现为高电平与低电平各多/少 1 个采样点,占空比偏移至约 45%/55% 的观感。这是采样量化的正常结果,并非设备故障。
10. 为什么测得的频率和真实频率有偏差?
同样源于采样量化。以 200MHz 采样率测量一个真实周期并非采样周期整数倍的高频信号为例(例如某信号真实周期约 66.67ns),由于一个采样点约 5ns,测得的信号周期只能是 5ns 的整数倍,因此结果只能表现为相邻的整数倍采样点(如 65ns 或 70ns),对应的频率就会在相邻两个值之间跳变,而非真实的信号频率。这是 ±1 个采样点量化的固有结果,任何逻辑分析仪皆然。
如需更精确的频率测量,建议增大采样率与被测频率的比值,或使用专门的频率计/示波器。
🔭 未来展望
受限于 USB 2.0 传输速率与 Gowin FPGA 主频,当前架构下 200MHz / 16 通道已接近极限。在此基础之上,仍存在一定的优化空间——数据压缩技术可支持更大的等效采样深度,多级触发匹配可实现更复杂的触发逻辑。后续将视情况考虑支持相应功能。
此外,这套硬件架构的可玩性远不止于逻辑分析。底板 + FPGA 核心板的组合提供了大容量缓存与上位机交互能力,可改造用于摄像头采集、数字信号处理等多种 FPGA + 大缓存 + 上位机架构的应用场景。
对于逻辑分析仪的持续深耕,USB 3.0 + 更高性能 FPGA 的架构已在规划中,拟支持 32 通道 + 800 MHz 采样率,并搭载硬件数据压缩与 16 级多级触发。
欢迎大家提出各种建议和想法,您的支持就是我的动力。敬请期待……
🔗 相关资源
📂 FoLogic 系列仓库
| 仓库 | 说明 | Release 下载 | 许可 |
|---|---|---|---|
| logic_gowin_pro | FPGA HDL 源码(Gowin GW2A-18),含采样控制/触发/DDR3 控制器等模块(含 DAC5311 驱动;固件 V1/V2 通用,V1 上阈值调节功能无效) | full_pro_v2_with_dac | GPL-3.0 |
| FoLogic-fw-keil | FX2LP (CY7C68013A) 固件源码(Keil C51),USB 协议与 GPIF 控制 | 仓库源码 | GPL-3.0 |
| pulseview | 上位机软件,波形显示与协议解码(含 FoLogic 驱动) | fologic_v2 | GPL-3.0 |
📚 参考项目
| 项目 | 说明 |
|---|---|
| DSLogic-hdl | DreamSourceLab 开源逻辑分析仪 FPGA HDL 参考设计 |
| DSLogic-fw-keil | DreamSourceLab FX2 固件参考项目,FoLogic 固件衍生自该项目 |
| sigrok/PulseView | 上游开源逻辑分析仪软件生态 |
📁 V1 经济版存档
本节为 V1 经济版 的存档说明。V1 与 V2 共用相同的核心架构(16ch / 200MHz / DDR3),差异集中在采集前端。V1 采用原始的双向钳位二极管保护方案,成本更低,适合低成本入门复刻。
> ⚠️ 风险提示:V1 的钳位方案在常规 0~5V 信号下工作正常,但持续的负压输入下钳位会失效,负压会直接接入 FPGA,可能导致整个 Bank 的电压 VCCIO 被烧坏。需要说明的是,V2 增强版同样无法测量负压信号(两版均非为负压设计),区别在于 V2 通过比较器+电平转换隔离负压,烧不到 FPGA,但持续负压仍可能损坏前端比较器等器件(代价较低、更换成本小)。若被测信号无持续负压、且无需测量 1.8V/2.5V 低压波形,V1 足够;否则请使用 V2 增强版。
🧩 固件版本说明
| 组件 | 固件 |
|---|---|
| FPGA 固件(logic_gowin_pro) | full_pro_v2_with_dac |
| 上位机(pulseview) | fologic_v2 |
> 📌 V1 与 V2 共用同一套 FPGA 固件。V1 硬件缺少阈值调节电路,因此阈值调节功能在 V1 上无效,其余功能均可正常使用。
>
> 🔧 版本选择建议:
> - FPGA 固件:强烈建议 V1 / V2 均使用 V2 固件,其修复了 FPGA Stream 模式的采集 bug;多余的 DAC 控制逻辑在 V1 硬件上不会产生任何影响。若 V1 用户坚持使用旧版,可参照 V2 固件自行更改。
> - 上位机:建议 V1 / V2 硬件均可使用 V2 上位机——V1 硬件上仅多出一个不起作用的阈值滑动块,其余功能正常且波形测量已优化(数据量大也不卡)。若 V1 用户嫌该滑动块碍眼,也可改用 V1 上位机,但其未优化波形测量,采集数据较多时测量会明显卡顿,且无阈值滑动条。总体推荐优先使用 V2 上位机。
采集前端(V1)
V1 采用双向钳位二极管保护电路,每个输入通道配备独立的钳位保护:
↑ 16 通道 BAT54S 钳位保护电路原理图
信号输入 ──── 限流电阻 ──┬── 至 FPGA I/O
│
├── D1 ─── VCC (上钳位至 3.3V)
│
└── D2 ─── GND (下钳位至 GND)
- 上钳位:肖特基二极管将电压钳位至 VCC + Vf(约 3.8V)
- 下钳位:肖特基二极管将电压钳位至 GND - Vf(约 -0.7V)
- 限流电阻:100Ω 串联限流,抑制浪涌电流
- 输入电压范围:0 ~ 5V(兼容 3.3V / 5V 逻辑电平)
⭐ 如果这个项目对你有帮助,欢迎 Star ⭐
Made with ❤️ by TheFool · FoLogic-逻辑派FPGA逻辑分析仪 · 嘉立创星火计划 2026
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

















