串行矢量格式
(SVF)
文件编程
注释
:
串行矢量格式
(SVF)
编程在
Versal
™
器件上不受支持。
对
FPGA
和配置存储器器件进行编程的另一种方法是通过使用串行矢量格式
(SVF)
文件来执行编程。通过
Vivado
® Design Suite 和
Vivado Lab Edition
生成的
SVF
文件包含对这些器件执行编程所需的低级别
JTAG
指令和数据。生成此 文件后,
即可通过独立于
Vivado IDE
的边界扫描测试工具来使用。
创建
SVF
文件的一般步骤如下所述
:
1.
创建
SVF
脱机目标。
2.
打开创建的
SVF
目标。
3.
向目标添加器件以定义
SVF JTAG
扫描链。
4.
对
FPGA
或配置存储器器件进行编程。
5.
编写
SVF
。
6.
关闭
SVF
目标。
7.
(
可选
)
执行
SVF
。
在步骤
4
中
,
编程操作将按顺序被记录并存储在高速缓存文件中。随后
,
此缓存文件将写出至步骤
5
中的目标。此文 件创建完成后,
即可通过边界扫描工具来使用
,
或者通过
Vivado Design Suite
或
Vivado Lab Edition
工具来执行。
重要提示
!
XSVF
文件格式在
Vivado IDE
中不受支持。
创建
SVF
目标
SVF
目标类似于有效的赛灵思平台电缆
USB
或
Digilent JTAG
线缆硬件目标。属性和
Tcl
命令全部相同
,
主要差异在于 SVF 目标并非实时有效的电缆。这表示对此目标执行的任何操作直至执行
SVF
后才会对硬件产生影响。请注意
,
您无 需将电缆连接至系统以创建 SVF
。
使用
Vivado IDE
要在
Vivado
硬件管理器中创建
SVF
目标
,
请通过启动
Vivado
或
Vivado Lab Edition
来打开
Vivado
硬件管理器。您可 通过依次选中“Tools
” → “
Create SVF Target
”来创建
SVF
目标。这样会在本地主机上自动打开服务器
,
还会打开 “创建 SVF
目标
(Create SVF Target)
”对话框
,
如下图中的对话框所示。 在任意可用服务器上,
您均可创建脱机
SVF
目标
,
如下所示。
![](https://i-blog.csdnimg.cn/blog_migrate/5485f19dc8dbb7896fddb061a50ddcc6.png)
这样会打开“
Create SVF Target
”对话框
,
如下所示。
![](https://i-blog.csdnimg.cn/blog_migrate/8da69d842ea6037725f3ea038927c3f7.png)
提示
:
您可通过启用“
Copy from target
”选项来复制现有
SVF
链。或者
,
您也可以指定在先前运行的流程中使 用 Vivado
硬件管理器所创建的
SVF
文件。
Vivado IDE
会保存
SVF
链的规格
,
以便在回读时可重新创建该
SVF 链。 在 Vivado
硬件管理器的“硬件
(Hardware)
”窗口中您的服务器下
,
您刚创建的
SVF
目标会在显示“打开
(Open)
”。
![](https://i-blog.csdnimg.cn/blog_migrate/84c0091ef8086c95e2d6dc215c447d8a.png)
要删除现有
SVF
目标
,
请在“
Hardware
”窗口中右键单击该
SVF
目标
,
然后选择“
Delete
”。
![](https://i-blog.csdnimg.cn/blog_migrate/ef0dd190dfb9f9021ea98cdb82bc61d7.png)
重要提示
!
删除目标后
,
还会删除针对此目标创建的所有器件。此外
,
如果删除的目标先前处于打开状态
,
则会 被关闭。
您也可以在
Vivado IDE
中使用
Vivado Tcl
模式或
Tcl
控制台来创建
SVF
目标。
以下是初始启动
Vivado
或
Vivado Lab Edition
后创建
SVF
目标所需的步骤
:
使用命令行
以下是初始启动
Vivado
或
Vivado Lab Edition
后创建
SVF
目标所需的步骤
:
open_hw_manager
connect_hw_server
create_hw_target my_svf_target
if {[string length [get_hw_targets -quiet -filter
{IS_OPENED == TRUE}]] > 0} \
{close_hw_target [get_hw_targets * -filter {IS_OPENED == TRUE}
] }; \
open_hw_target [get_hw_targets *my_svf_target]
current_hw_target
如已连接到服务器
,
则可省略前
2
条命令。执行
create_hw_target
命令可定义
my_svf_target
。请注意
,
同一 会话中不得存在 2
个同名目标。最后
,
关闭所有打开的目标并打开
svf
目标后
,
就会运行
create_hw_target
命令。这样 最终命令会显示已创建的 my_svf_target
的完整硬件目标处理名称。 针对目标执行的所有标准操作(
例如
,
get_hw_targets
和
open_hw_target
commands
)
均受支持。您可使用 IS_SVF 硬件目标属性来区分活动目标和
SVF
目标。例如
,
以下命令行样本可从名为“
my_svf_target
”的目标读 取 IS_SVF
属性。
get_property IS_SVF [get_hw_targets -regexp .*my_svf_target]
此外
,
发出以下命令即可显示此会话中创建的所有
SVF
hw_targets
:
get_hw_targets -filter {IS_SVF}
要删除已创建的目标
,
请使用
delete_hw_target
命令。例如
,
发出以下命令即可删除
my_svf_target
:
delete_hw_target [get_hw_targets -regexp .*my_svf_target]
重要提示
!
删除目标后
,
还会删除针对此目标创建的所有器件。此外
,
如果删除的目标先前处于打开状态
,
则会被关闭。