大家在一些二手网站上经常能看到一些没有配套资料(原理图等)的板子,而这些板子相对来说比较便宜,如果量大则可以用来做开发板,那么首先需要解决的就是”逆向“出原理图用来后续例程的开发。
目前能辅助类似工作的有两个软件:XJTAG 和 TopJTAG(我了解的),其中 TopJTAG 有和谐版所以就以其举例使用说明。
原理
JTAG 产生的最初目的是用于芯片测试,即 Boundary-scan 技术,常见规范有 IEEE1149.1、IEEE1149.6 和 IEEE1532 等,通过与规范兼容的设备,即可访问芯片的内部节点或 I/O。我们就利用 JTAG 这一特性,使用 TopJTAG 推断出相关的引脚。
安装
通过网盘分享的文件:TopJTAG Probe.zip 链接: https://pan.baidu.com/s/1WZE9...
解压后,打开下图两个 exe:
按照下面步骤生成注册码:
注册成功:
使用
整个软件极其简洁,和常规的 EDA 软件布局类似。
先使用对应芯片厂家的 EDA 软件扫描到芯片:
在 TopJTAG 上新建工程:
选择对应的仿真器,Probe 支持很多主流仿真器,如下图:
按照自己使用的 JTAG 类型进行连接,我们本次使用 FT4232 做的 Xilinx JTAG:
自动扫描目标板的 JTAG 链,显示链上的设备 ID 和生产商。扫描到芯片后就可以继续了:
接下来就是最重要的一步了,查找 BSDL 文件(该文件根据 IEEE 规范定义了设备信息。):
BSDL 文件可以从芯片生产商那里获得,比如 Altera MAX II 的 BSDL 页面为:
https://www.altera.com/suppor...
ST 的 STM32 系列 BSDL 下载地址为:
https://www.st.com/internet/c...
Xilinx 的 Versal, Zynq UltraScale+、 Zynq 7000 SoCs、UltraScale+, UltraScale, 7 series FPGAs 的 BSDL 下载地址:
https://www.xilinx.com/suppor...
选择 BSDL 文件验证完毕后就可以继续后面的操作了:
窗口中就会显示相应的芯片信息了:
在左侧有引脚定义一栏点击右键,将 I/O 添加到波形窗口中。
同时由于我们要做的是外部硬件电路的检测,需要点击工具栏的 Instruction 按钮,选择 EXTEST 模式。这里的 SAMPLE 模式可监测芯片状态而不干扰其正常运行,INTEST 模式测试芯片内部逻辑,而对于 JTAG 链上一些可以忽略的设备可选择 BYPASS。
在波形窗口中对引脚输出电平置 0、置 1 或反转。
点击运行就可以查看效果了,同样的在运行中也可以改变引脚状态。
效果就是如下图,通过 TopJTAG 和 JTAG 点亮几个 LED:
总结
目前,我估计很多人还没搞清楚怎么做”逆向“,其实很简单,对相关的引脚进行置高置低或者输入一个频率低一点的方波(有人测试过 Probe 的时间分辨率也就是毫秒级的)对引脚进行监测就可以看到相关哪个引脚发生变化,就能确定是芯片的哪个引脚。
I/O 可以手动设置名称,如果有约束文件,可以导入进来自动获取 I/O 名称。
这只是 TopJTAG 一个不怎么”光彩“的应用,其实其对软、硬件排故等其他方面还有很多应用,剩下的的就等大家慢慢去摸索了。
最后就是目前的版本不是最新的,谁有最新的版本可以在评论区分享一下~
END
作者:碎碎思
原文:OpenFPGA
相关文章推荐
- 基于 FPGA 的 FIR 数字滤波器设计
- 基于 FPGA 的图像边缘检测系统设计(sobel算法)
- DDR4 升级 DDR5 SoC 设计须知 1:DDR5 刷新间隔对性能的影响
- DeepSeek 推荐的开源项目
- 跨时钟域背景下的亚稳态和 MTBF 是什么
更多 FPGA 干货请关注FPGA的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。