目录
SVF介绍
SVF(Serial Vector Format,串行向量格式)本质上是一种文本格式文件,专门用于描述基于IEEE 1149.1 JTAG(通常所称的联合测试行动组)的边界扫描测试流程。
它的核心作用在于:将通过JTAG接口对芯片执行的配置、测试、调试等所有操作,以清晰可读的文本形式完整记录。
以FPGA开发为例,常用的程序下载、固件固化等操作,均可通过SVF文件进行标准化呈现。而这种清晰可读的文本特性,也为CH347 USB转JTAG芯片的稳定应用奠定了良好基础。
芯片介绍
CH347是一款高速USB总线转接芯片,通过USB总线提供异步串口、I2C同步串行接口、SPI同步串行接口和JTAG接口等。JTAG接口最高支持60MHz 。
在之前博客中有详细介绍:
CH347-高速USB转串口、JTAG/SWD、SPI、I2C芯片介绍
CH347使用笔记:CH347作为FPGA下载器的几种方式
开源项目实现FPGA下载
Github上出现了一个利用CH347芯片,向目标FPGA烧录SVF文件的项目:
该项目利用Python完成,通过解析SVF文件,去操作CH347 JTAG接口。
因此理论上,可以根据该项目搭配SVF文件对任意FPGA实现下载与固化功能。
使用方式
使用方法非常简单:
-
首先确认CH347驱动正常安装
-
拉取项目
bash
git clone https://github.com/AIOT-CAT/CH347_SVF_DNTool_py.git
cd CH347_SVF_DNTool_py
- 解压
CH347_SVF_DNTOOL.zip文件, - 具体使用方式:
bash
ch347_SVF.exe -h
Usage: ch347_SVF.exe [index] <svf_file>
- 具体使用方式很简单:
sudo ch347_SVF.exe [index] <svf_file>
其中index为CH347插入PC中的顺序,如当前只有一个CH347,index为0;
svf_file为想要处理的SVF文件具体位置。
附录
SVF的生成方式(程序的下载)
我们可以借助Vivado很方便的将我们已有的BIT或BIN文件转为SVF文件,具体方式如下:
- Vivado主页打开硬件管理。
- Tools中打开SVF创建界面
 - 添加FPGA型号

- 添加要下载的bit或bin文件

- 点击Export SVF,导出SVF文件。
此时生成的是将程序的写入SRAM的SVF文件。
SVF的生成方式(程序的固化)
-
根据实际情况,为自己的FPGA添加FLASH器件。

-
指定需要固化的程序,并添加flash具体操作,如全擦,是否校验等。


-
再点击Export SVF按钮,即可导出带有固化操作的SVF文件。
此时生成的是将程序固化至FLASH的SVF文件。