vivado 有关 SVF 链的操作

按正确顺序创建反映所有器件及其配置存储器的 SVF 链之后 , 即可开始向 SVF 链中的器件添加编程操作。 例如, 您可右键单击链中的赛灵思 a200t 器件 , 然后选择“添加器件编程操作 (Add Program Device Operation) ”对话 框, 如下所示。指定比特流文件 , 以便将其用于对器件进行编程。
单击“ OK ”后 , 就会在“ SVF 操作 (SVF Operations) ”窗口底部列出器件编程操作。
同样 , 您可通过右键单击存储器器件并选择“添加配置存储器编程 (Add Program Configuration Memory) ”以启动 “Add Program Configuration Memory ”对话框来对内存存储器器件进行编程 , 如下所示。指定配置文件 , 以便将其用 于对存储器器件进行编程。您也可以为存储器器件选择其它编程选项, 例如“擦除 (Erase) ”、“空白检查 (Blankcheck)”和“验证 (Verify) ”。
单击“ OK ”后 , 就会在“ SVF Operations ”窗口底部列出配置存储器器件编程操作。
写入 SVF 文件
使用 Vivado IDE
单击位于“ SVF 操作 (SVF Operations) ”窗口底部的“导出 SVF (Export SVF) ”即可将 SVF 链设置及其操作保存至文 件, 如下图所示。
重要提示 ! 通过指定在先前流程运行中使用 Vivado 硬件管理器创建的 SVF 文件 , 即可重新创建现有 SVF 链。
Vivado IDE 会将 SVF 链的规格保存到文件中 , 以便在回读时可重新创建该 SVF 链。
使用命令行
要使用 Vivado Tcl 模式或者 Tcl 控制台来编写 SVF 文件 , 请在 Vivado IDE 中使用 write_hw_svf 命令。 这样会在临时文件中捕获 SVF 链、直接 FPGA 和间接闪存编程操作。调用 write_hw_svf 命令时 , 临时文件将改为 传递给该命令的文件名。调用 write_hw_svf 命令后 , 临时文件将复位 , 并在 SVF 文件序列开头处添加 1 项后续编程操作。
以下代码段显示了用于创建名为 my_xcku9p.svf 的文件的 Tcl 命令 ( 包括对 xcku9p 器件进行直接编程 ):
create_hw_target my_svf_target
open_hw_target
set device0 [create_hw_device -part xcku9p]
set_property PROGRAM.FILE {my_xcku9p.bit} $device0
program_hw_devices $device0
write_hw_svf my_xcku9p.svf
close_hw_target
在此样本代码中 , xcku9p 器件是使用 create_hw_device 命令创建的 , 其返回值设置为名为 device0 的临时变
量。随后 , 将 PROGRAM.FILE 属性设置到 my_xcku9p.bit 文件时 , 此临时值将用于引用对象。下一步 , 将使用
device0 引用来调用 program_hw_device 命令。运行此 program_hw_device 命令时 , 它会通过必要的 SVF 操
作来创建临时 SVF 文件 , 用于对 xcku9p 上的 my_xcku9p.bit 文件执行编程。最后 , write_hw_svf 命令会将此临
时文件移至最终目标 myxcku9p.svf 。此时 , SVF 文件创建流程即告完成 , 并且可关闭目标。
提示 : 关于编写 SVF 文件 , 最后值得注意的是 , 应首先为 JTAG 链创建所有器件 , 然后再执行编程操作。如果
在执行编程命令间交织执行了 create_hw_device 命令 , 那么生成的输出 SVF 文件将包含 2 条不同的序列
链。
• 错误的 SVF 文件创建步骤示例 :
create_hw_target my_svf_target
open_hw_target
set device0 [create_hw_device -part xcku9p]
set_property PROGRAM.FILE {my_xcku9p1.bit} $device0
# this program command will produce SVF instructions
# which account for only device0 in chain
program_hw_devices $device0
set device1 [create_hw_device -part xcku9p]
set_property PROGRAM.FILE {my_xcku9p2.bit} $device1
# this program command will produce SVF instructions
# which account for device0 and device1 in chain
program_hw_devices $device1
write_hw_svf my_bad_xcku9p.svf
close_hw_target
第一条编程命令仅采集包含首个器件的链定义。第二条编程命令在写出 SVF 指令时会包含链中的 2 个器件。因此如果
您尝试在含 2 个器件的链上运行此 SVF 文件 , 则第一项编程操作将失败 , 因为活动链会收到 2 个器件 , 而非此命令期
望的 1 个器件。
要纠正此问题 , 请首先运行 create_hw_device 命令。然后 , 当链完成定义后 , 请按如下所示执行编程操作 :
• 正确的 SVF 文件创建步骤示例
create_hw_target my_svf_target
open_hw_target
# create device chain first
set device0 [create_hw_device -part xcku9p]
set device1 [create_hw_device -part xcku9p]
# program device0
set_property PROGRAM.FILE {my_xcku9p1.bit} $device0
program_hw_devices $device0
# program device1
set_property PROGRAM.FILE {my_xcku9p2.bit} $device1
program_hw_devices $device1
write_hw_svf my_good_xcku9p.svf
close_hw_target
执行 SVF 文件
创建 SVF 文件后 , 您可有选择性地通过 Vivado IDE 来执行 SVF 文件。 Vivado IDE 可以执行通过 SVF 生成功能所生成 的 SVF 文件 , 主要用作为验证测试工具。 execute_hw_svf 命令并非常用的 SVF 执行命令 , 请注意 , 只能使用通过 Vivado IDE 创建的 SVF 文件。
要运行 svf 命令 , 请在已打开并处于活动状态的目标上运行如下命令 :
execute_hw_svf my_file.svf
INFO: [Labtoolstcl 44-548] Creating JTAG TCL script from SVF file
INFO: [Labtoolstcl 44-549] Re-opening target in JTAG mode
INFO: [Labtoolstcl 44-551] Sourcing JTAG TCL script: my_file.tcl
Pass: SVF Execution completed with no errors
INFO: [Labtoolstcl 44-550] Restoring target to original mode
INFO: [Labtoolstcl 44-570] Execute SVF completed successfully
在本例中 , 指定的文件是 my_file.svf 。在执行流程中 , 输入 SVF 文件可通过 HW_JTAG Tcl 操作转换为临时文件。 创建此 Tcl 代码后 , 将使用此文件来执行转换后的 SVF 指令。要查看 JTAG_TCL 操作 , 可使用 -verbose 选项运行 execute_hw_svf 命令。命令完成后 , 将在消息日志末尾显示指令出错 , 执行失败 , 或者显示成功“ Pass ”消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/795322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Logback日志框架(超详细)

logback-classic-1.2.3.jarhttp://链接: https://pan.baidu.com/s/1cA3gVB_6DEA-cSFJN6MDGw 提取码: sn8i 复制这段内容后打开百度网盘手机App,操作更方便哦 logback-core-1.2.3.jarhttp://链接: https://pan.baidu.com/s/19eCsvsO72a9PTqpXvXxrgg 提取码: 5yp…

PHP实现nginxPhp错误日志提取统计工具(路径+错误行+报错信息+次数排序)

粘贴PHP错误日志内容(NGINX 下PHP网站错误日志)。 作用:提取PHP Warning/Notice:路径错误行报错信息按出现次数排序。 以上已满足本人自己LNMP环境的调试需求&#xff0c;其他环境自己评估是否可用。 <?php //整理与分享&#xff1a;yujianyue<15058593138qq.com> $…

HomeBrew 安装与应用

目录 前言一、安装 HomeBrew二、使用 HomeBrew1、使用 brew 查看已安装的软件包2、使用 brew 安装软件包3、使用 brew 升级已安装的软件包4、brew 还有哪些命令呢&#xff1f; 前言 在 macOS&#xff08;或Linux&#xff09;系统里&#xff0c;默认是没有软件包的管理器的&…

STL中各类容器详细介绍

STL介绍 STL&#xff08;Standard Template Library&#xff09;&#xff0c;即标准模板库&#xff0c;是一个具有工业强度的&#xff0c;高效的C程序库。它被容纳于C标准程序库&#xff08;C Standard Library&#xff09;中&#xff0c;是ANSI/ISO C标准中最新的也是极具革命…

前端学习<四>JavaScript基础——06-基本数据类型:String 和 Boolean

今天这篇文章&#xff0c;我们详细讲一下基本数据类型。 String 字符串 语法 字符串型可以是引号中的任意文本&#xff0c;其语法为&#xff1a;双引号 "" 或者单引号 。 来看个示例。下面的这些&#xff0c;都是字符串&#xff1a; var a abcde;var b 千古壹号…

点云从入门到精通技术详解100篇-基于点云与图像纹理的 道路识别

目录 前言 国内外研究现状 基于视觉图像数据的道路识别方法

Photoshop 2024 中文---专业图像处理软件的又一次飞跃

Photoshop 2024是一款功能强大的图像处理软件&#xff0c;广泛应用于创意设计和图像处理领域。它提供了丰富的绘画和编辑工具&#xff0c;包括画笔、铅笔、颜色替换、混合器画笔等&#xff0c;使用户能够轻松进行图片编辑、合成、校色、抠图等操作&#xff0c;实现各种视觉效果…

如何防止SQL注入?能够采取什么措施?

防止SQL注入主要依赖于以下几种方法&#xff1a; 1. 使用参数化查询&#xff08;预编译语句&#xff09; 参数化查询是防止SQL注入的最有效手段之一。通过使用预编译语句&#xff08;例如&#xff0c;在Java中使用PreparedStatement&#xff09;&#xff0c;可以确保用户输入…

云备份day03

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C云备份项目 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 主要内容介绍了第三方库httplib的一些内容&#xff0c;以及实现…

Java 进程状态

一&#xff0c;进程介绍 定义&#xff1a;进程是计算机中运行中的程序的实例。它包含了程序的代码、数据以及程序运行时所需的各种资源&#xff0c;如内存空间、CPU时间等。 特征&#xff1a; 动态性&#xff1a;进程是动态创建、执行和销毁的。并发性&#xff1a;在多道程序环…

VSCode好用插件

由于现在还是使用vue2&#xff0c;所以本文只记录vue2开发中好用的插件。 美化类插件不介绍了&#xff0c;那些貌似对生产力起不到什么大的帮助&#xff0c;纯粹的“唯心主义”罢了&#xff0c;但是如果你有兴趣的话可以查看上一篇博客&#xff1a;VSCode美化 1. vuter 简介&…

【opencv】示例-barcode.cpp 条形码检测和解码

#include <iostream> // 引入标准输入输出流库 #include "opencv2/objdetect.hpp" // 引入OpenCV物体检测库 #include "opencv2/imgproc.hpp" // 引入OpenCV图像处理库 #include "opencv2/highgui.hpp" // 引入OpenCV高层GUI库using names…

Linux系统中打包NTFS文件系统文件夹为ISO格式压缩包

首先要安装mkisofs这个命令行工具 然后命令行&#xff1a; mkisofs -D -J -joliet-long -input-charset utf-8 -o targetdir.iso targetdir/

Mybatis plus 实现IService方式,使用SpringbootTest引入service 测试

说明&#xff1a;mybatis plus 不光可以继承BaseMapper 实现数据的增删改查&#xff0c;还可以通过继承IService方式实现&#xff0c;并可提供批量的增删改等方法 如&#xff1a;saveBatch、removeBatchByIds等&#xff0c;非常方便。 1、 引包 <dependency><groupId…

169.乐理基础-调式板块总结、调式判断

如果到这五线谱还没记住还不认识的话去看102.五线谱-高音谱号与103.五线谱-低音谱号这两个里&#xff0c;这里面有五线谱对应的音名&#xff0c;对比着看 如果不认识调号去看112.五线谱的调号&#xff08;一&#xff09;、113.五线谱的调号&#xff08;二&#xff09;、114.快…

如何使用 Midjourney?2024年最新更新

一&#xff1a;基础篇 1&#xff1a;注册 首先&#xff0c;你需要注册一个 Discord 账号&#xff0c;然后加入 Midjourney 的 Discord 服务器。或者去 Midjourney 的官网点击右下角的 Join the Beta&#xff1a; ​ 2&#xff1a;在 Discord 公共服务器里使用 注册并进入到…

MySQL面试题系列-8

MySQL是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的RDBMS (Relational Database Management System&#xff0c;关系数据…

JVM基础

初识JAM JVM就是JAVA虚拟机&#xff0c;本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行JAVA字节码文件. 下面是java代码执行过程 JVM的功能 1.解释和运行 对字节码文件中的指令实时的解释成机器码 2.内存管理 自动为对象&#xff0c;方法等分配内存自动的垃圾回…

基于顺序表实现通讯管理系统!(有完整源码!)

​​​​​​​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ 文章专栏&#xff1a;C语言实战项目 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01;​​​​​​​ 目录 1、实现思路 ​…

OCm (Radeon Open Compute) 和 CUDA (Compute Unified Device Architecture)

OCm&#xff08;Radeon Open Compute&#xff09;和CUDA&#xff08;Compute Unified Device Architecture&#xff09;是两种旨在利用图形处理单元&#xff08;GPU&#xff09;进行通用计算的技术和框架。 OCm&#xff08;Radeon Open Compute&#xff09;&#xff1a; OCm&…