作者: 碎碎思 来源:OpenFPGA微信公众号
对于FPGA工程师除了日常的调试工作以外,批量生产时候指导生成人员下载我们生成的固化文件也是我们的工作,所以今天讲一讲FPGA单独下载固化文件的几种方式。
批量生产-先下载后焊接
批量生产产品没什么好选择的,都是将文件直接固化到FLASH中,然后在贴片时候再焊接,这样是最简单“暴力”的解决方案,这里就过多赘述了。
小批量生产(10套以内)-手动下载
小批量生产时候,基本不会有外场人员参与,本身程序也不一定是最优的,这个时候那就没得选择,手动下载固化,手动调试吧。
中大型批量生产-借助下载软件下载
这种情况是比较常见的,处于批量生产前的试生产阶段,可以选择先下载后焊接,但是这个阶段如果发现BUG,修改完毕后就要协调生成人员进行下载,今天的核心内容就是这部分内容,下面介绍几种方式(以AMD-XILINX为例):
借助官方离线下载器+Xilinx JTAG下载
各家的EDA工具基本都是N多工具的集合体,其中下载软件基本都有单独的版本,Xilinx FPGA也提供了这样的工具,叫做 Vivado Lab Edition即实验室版本,下载位置在下面界面:https://www.xilinx.com/support/download.html
先选择要下载的版本:
Vivado Archive是2021.1前的版本。
我们这里选择2019.1版本,之后向下翻动页面,选择下图中位置,即实验室版本的Vivado,仅包含下载和调试功能,并且不需要License:
点击图中箭头就可以下载,2019.1版本大约700M左右,2022.2版本大约1.5G,2018.3版本只有500M左右,我也下载了常见的几个版本的,下载方式见文章最后。
当然你也可以只下载Hardware Server,大小又可以减小一半左右。
安装过程和Vivado类似,就不展示了,简单截几张图看看:
安装完成后,桌面会生成一个图标:
双击打开后和Vivado一样,其中的图上的工程不是我们说的Vivado工程,而是这个软件专用的Lab工程。
和我们今天有关的是Open Hardware Manager,点击后界面如下:
这就没啥好介绍的了,剩下的和Vivado操作完全一致了,第一个工具就介绍完毕了。
借助ISE IMPCAT+Xilinx JTAG下载
这个其实比较落后了,就简单说一下,IMPCAT是ISE自带的下载器,可以单独使用下载固化文件,但是没办法调试,可以对7系列FPGA进行下载。
借助第三方软件下载
JTAG 全称“Joint Test Action Group”,既是个标准也是个组织,这是个由几家主要的电子制造商(IBM、AT&T、TI、Philips 等)成立于 1985 年的组织,这个组织成立的目的是发起制订一种 PCB和芯片测试标准。
JTAG 标准于 1990 年被 IEEE 批准为IEEE1149.1 测试访问端口和边界扫描结构标准。
所以不论嵌入式、单片机甚至FPGA都要执行这一标准,不同点在于上位机,上位机会识别JTAG芯片中特定码,然后上位机才让你用JATG对自己许可的芯片进行编程下载。所以你只要知道上位机怎么识别JTAG下载器的,你只需要一个下载器就能玩遍所有芯片。
接下俩就介绍一个开源的上位机-OpenOCD,这是一个可以给单片机、嵌入式和FPGA进行下载调试的上位机(非常牛逼!)。
详细的介绍就不说了,我对这方面只是入门,可以看下面的链接,是用FT2232+OpenOCD下载FPGA的详细介绍文章:
https://blog.csdn.net/u012780083/article/details/125489210
上面的文章当然不是我们的主角,这么复杂的操作估计会有80%的人不会尝试,接下来介绍一个超简单的基于OpenOCD的下载方式。
CH347+CH347FPGATool超小体积下载器
沁恒CH347芯片,USB 2.0高速设备,支持 USB转I2C/SPI/UART/JTAG/GPIO,下面是一个开源硬件:
https://github.com/wuxx/USB-HS-Bridge/blob/master/README_cn.md
但是没开源PCB,我自己制作了一版,开源地址:
https://oshwhub.com/openfpga/ch347-esp32-shuang-jtag
上面的硬件已经送去打板还未验证,同步集成了ESP32,用于无线WIFI下载调试。
上位机才是核心,在下面开源项目中提供了基于OpenOCD的CH347FPGATool上位机:https://github.com/WCHSoftGroup/ch347
下载后文件大小仅120M:
注意:使用前需要下载安装CH347驱动(https://www.wch.cn/downloads/CH341PAR_EXE.html )。
打开后的上位机如下:
支持的FPGA列表如下:
详细的使用手册:https://github.com/WCHSoftGroup/ch347/tree/main/CH347FPGATool
全中文难度不大,有BUG需要多理解。
总结
今天针对不同阶段的产品FPGA代码固化简单说了一下,针对FPGA单独下载<固化文件>重点说明,介绍的几种方式推荐顺序从上到下,优先使用官方解决方案,最后的方式适合开发者玩玩,批量使用还有不稳定性。