当 FPGA 遇上 Python:Glasgow 如何玩转数字接口(开源硬件 & 软件)

在嵌入式开发、接口调试、硬件逆向或数字存档工作中,经常会遇到各种异构、老旧或自定义数字接口协议。为了让工程师更轻松地接入、探测、控制和抓取这些接口的数据,Glasgow Embedded 社区推出了一个开源工具------Glasgow Interface Explorer。

什么是 Glasgow Interface Explorer?

Glasgow Interface Explorer 是一个面向工程师的通用数字接口探索工具,旨在帮助你:

  • 与各种数字设备通信

  • 探测、分析和驱动不同协议

  • 在调试或逆向工程时快速提取或发送数据

它包括硬件板卡 + 软件框架组合,可以连接到目标设备的多种数字总线,不需要额外有源/无源前端电路,并配有一定的保护措施以应对错误操作**。

面向用户群体

这个项目面向:

  • 嵌入式开发人员

  • 逆向工程与协议分析工程师

  • 电子爱好者、硬件研究者

  • 需要与各种数字设备进行通信与验证的开发者

几乎任何需要操控数字接口的工程师都能从它得到实用工具支持。

硬件核心能力

Glasgow 的关键特性基于可重构逻辑(CY7C68013+FPGA),使它可以:

  • 支持多种数字接口,而不是只限于少量标准协议

  • 按需调整 FPGA 内逻辑来适应手头的任务

  • 即使是非标准、定制或者老旧的接口,也能保持高性能与高可靠性

  • 这种灵活性是通过 FPGA 的可编程能力实现的,而不是固定硬件,因此比传统串口/逻辑分析仪更通用。

可以用 Glasgow 做什么?

Glasgow 提供多个已经封装好的"applet"(小程序),可以直接从命令行调用,或者作为更复杂系统的一部分复用。以下是部分典型用途:

  • 将 GPIO 当作通用输入/输出驱动

  • 通过 UART 通信,并自动测量与调整波特率

  • 发送/分析 SPI、QSPI、I²C 通信(最高约 100 MHz)

  • 读写常见 I²C EEPROM 与 SPI Flash 存储器

  • 通过SFDP确定内存参数

  • 读取和写入 ONFI 兼容的闪存,通过 ONFI 参数页确定内存参数

  • 通过SPI接口对AVR微控制器进行编程和验证

  • 自动确定 JTAG 引脚排列,通过JTAG 接口探测符合IEEE 1149.1标准的设备

  • 下载 JTAG SVF 文件

  • 通过 JTAG调试 ARM7TDMI 处理器

  • 通过 JTAG调试 ARC 处理器

  • 通过 EJTAG调试 MIPS 处理器

  • 通过 JTAG 对XC9500和XC9500XL CPLD进行编程和验证

  • 通过XVC调试FPGA(Vivado)

  • 通过SWD探测Arm Cortex处理器

  • 通过probe-rs调试 Arm Cortex 处理器

  • 使用 nRF24L01(+) 无线电进行通信

  • 对 nRF24LE1 和 nRF24LU1(+) 微控制器进行编程

  • 通过博世 BMP280/BME280传感器测量温度、压力和湿度

  • 通过Sensirion SCD30传感器测量CO₂浓度,通过SEN5x传感器测量NOx浓度

  • 利用HC-SR04传感器通过超声波回波测量距离

  • 使用 Bosch/BME280 传感器读取环境数据(温度、压力、湿度)

  • 实时模拟/播放老式芯片声音(如 Yamaha OPLx/OPM)

  • 从老式软盘驱动器读取原始调制数据

...and 更多常见或冷门的数字接口交互场景。

⚙️ 所有这些功能都只需要:

📌 一块 Glasgow 板 + 📌 一些连接线 + 📌 视被测设备而定的电源。 格拉斯哥嵌入式

使用方式和工作流程

与传统工具不同:

  • Glasgow 的软件全部使用 Python 3 编写

  • FPGA 逻辑使用 Python 驱动的领域特定语言 Amaranth 编写

  • 主机端逻辑也基于 Python(包括 asyncio)

  • 软件自动为 FPGA 按需构建比特流

  • 使用 USB 进行数据交互,并在未来可能支持以太网

这种设计让 FPGA 的接口逻辑可以按请求动态生成,构建小程序比传统 FPGA 工具链要快得多。

可用链接

https://glasgow-embedded.org/
https://github.com/GlasgowEmbedded/glasgow/tree/main

总结

✔ 极其灵活的数字接口工具

✔ 基于可重构 FPGA,可即时应对不同协议

✔ 可通过 Python 与命令行无缝控制

✔ 适用范围从硬件验证、嵌入式调试到存储读取

✔ 官方文档与源码完全开源,可扩展性强

Glasgow 是一个值得关注的一体化接口探索平台,无论是想探索Amaranth语言的应用还是各种接口的应用,最主要是软、硬件联合开发的能力。

最后,这个项目还没完结,整体扩展性很高,但是目前实现的功能和tigard(主页:https://github.com/tigard-tools/tigard)差不多,而且tigard硬件成本更低\~
基于FTDI FT2232H的Tigard及特点

相关推荐
Terasic友晶科技2 小时前
【教程】Agilex 5 SoC 的两种启动模式的开发演示(一)(FPGA Configuration First)
fpga开发·agilex 5 soc
ALINX技术博客2 小时前
【黑金云课堂】FPGA技术教程Vitis开发:SD卡WAV文件读取音频播放实验
fpga开发·音视频
仲南音2 天前
Xilinx FPGA——时钟IP核MMCM、PLL
fpga开发
I'm a winner3 天前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper20203 天前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy3 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia3 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20203 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子4 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安4 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi