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.mzph.cn/news/795322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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> $…

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 千古壹号…

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

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

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 公共服务器里使用 注册并进入到…

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&…

CentOS 7 下离线安装RabbitMQ教程

CentOS 7 下安装RabbitMQ教程一、做准备&#xff08;VMWare 虚拟机上的 CentOS 7 镜像 上安装的&#xff09; &#xff08;1&#xff09;准备RabbitMQ的安装包&#xff08;rabbitmq-server-3.8.5-1.el7.noarch&#xff09;下载地址mq https://github.com/rabbitmq/rabbitmq-se…

os.listdir()bug总结

今天测试出一个神奇的bug&#xff0c;算是教训吧&#xff0c;找了两天不知道问题在哪&#xff0c;最后才发现问题出现在这 原始文件夹显示 os.listdir()结果乱序 import os base_path "./file/"files os.listdir(base_path)print(files)问题原因 解决办法(排序)

NB-IOT 介绍 1

1 名称介绍 NB-----Narrow Band IOT -----Internet of things NB-IOT---窄带物联网 2 物联网技术发展 以太网&#xff1a;网线 RS232一种串行通信标准&#xff0c;通常采用正负电压来表示逻辑值&#xff0c;如正电压表示逻辑1&#xff0c;负电压表示逻辑0。 RS485一种串行通…

(学习日记)2024.04.06:UCOSIII第三十四节:互斥量函数接口讲解

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

【二分查找】Leetcode 二分查找

题目解析 二分查找在数组有序可以使用&#xff0c;也可以在数组无序的时候使用&#xff08;只要数组中的一些规律适用于二分即可&#xff09; 704. 二分查找 算法讲解 当left > right的时候&#xff0c;我们循环结束&#xff0c;但是当left和right缩成一个点的时候&#x…

大数据分析与内存计算——Spark安装以及Hadoop操作——注意事项

一、Spark安装 1.相关链接 Spark安装和编程实践&#xff08;Spark3.4.0&#xff09;_厦大数据库实验室博客 (xmu.edu.cn) 2.安装Spark&#xff08;Local模式&#xff09; 按照文章中的步骤安装即可 遇到问题&#xff1a;xshell以及xftp不能使用 解决办法&#xff1a; 在…