首页 > 编程语言 >vivado 硬件器件编程

vivado 硬件器件编程

时间:2024-03-30 14:35:01浏览次数:20  
标签:编程 器件 hw server 硬件 vivado JTAG

硬件器件编程 当编程文件与硬件器件相关联后 , 即可在“硬件 (Hardware) ”窗口中右键单击器件并选择“器件编程 (Program Device)”菜单项来执行硬件器件编程。您也可以使用 program_hw_device Tcl 命令。例如 , 要对 JTAG 链中的首个 器件执行编程, 请使用以下 Tcl 命令 : program_hw_devices [lindex [get_hw_devices] 0] 当进度对话框指示编程进度达 100% 完成时 , 您可通过在“硬件器件属性 (Hardware Device Properties) ”窗口中检验 状态是否为“完成 (DONE) ”来检查硬件器件编程是否成功。 您还可使用 get_property Tcl 命令来检查 DONE 状态。例如 , 要检查 JTAG 链中的首个器件 ( 即 Kintex ® -7 器件 ) 的 DONE 状态 , 请使用以下 Tcl 命令 : get_property REGISTER.IR.BIT5_DONE [lindex [get_hw_devices] 0] 在 Versal 器件上使用的命令与此处命令略有不同 , 因为 DONE 状态寄存器不同。索引值为 1 需理解为 get_hw_devices 返回的首个器件 , 并且在单器件用例中 , 将表示为 arm_dap 。 get_property REGISTER.JTAG_STATUS.BIT[34]_DONE [lindex [get_hw_devices] 1] 如果您使用其它方法执行硬件器件编程 ( 例如 , 使用闪存器件或外部器件编程器 ), 那么也可以通过右键单击“刷新器 件 (Refresh Device) ”菜单项或者通过运行 refresh_hw_device Tcl 命令来刷新硬件器件的状态。这样可以刷新器件 的各种属性, 包括但不限于 DONE 状态。 重要提示 对于非 Versal 架构 , 如果您的设计包含调试核 , 请确保 JTAG 时钟比 Debug Hub 时钟慢 2.5x 倍。 重要提示 用户扫描链 (User SCAN Chain) : 对于非 Versal 架构 , 默认情况下 , Vivado 编程器会尝试检测设计中 指定的用户扫描链上的调试核。它通过向器件发出 JTAG_CHAIN 1 命令来执行检测。如果您已编程的器件所含 的设计没有任何调试核或者所含调试核的用户扫描链为 2 、 3 或 4 , 那么您将看到 1 条警告。 重要提示 用户扫描链 : 每个 Versal 器件的 Control, Interfaces, and Processing System (CIPS) BSCAN 端口都对 应于 1 条不同的用户扫描链。默认情况下 , Vivado 编程器在扫描 MicroBlaze Debug Module (MDM) 核时 , 仅扫 描用户扫描链 2 和 4 。如果 MicroBlaze Debug Module 连接到 CIPS 上的 BSCAN_0 或 BSCAN_2 端口 , 则需更 新用户掩码以包含这些扫描链, 如下所示。 要判定用户扫描链设置 , 对于非 Versal 架构 , 请打开已实现的设计并使用 : get_property C_USER_SCAN_CHAIN [get_debug_cores dbg_hub] 您可在 Vivado 硬件管理器中更改用户扫描链。请注意 , BSCAN_SWITCH_USER_MASK 是位掩码值。请参阅下图。 或者, 您可在执行 hw_server 启动时 , 指定用户扫描链作为选项。 hw_server -e "set bscan-switch-user-mask <user-bit-mask>" 提示 对于早于 Vivado 2016.3 的设计 , 赛灵思建议手动启动 hw_server 并包含 -e"set xsdb-userbscan <C_USER_SCAN_CHAIN scan_chain_number>", 以检测位于用户扫描链的 2 或 4 上的 Debug Hub。 比特流分配错误消息 Vivado 硬件管理器在以下情况下会显示“ incorrect bitstream assignment ”消息 : • 对镜像进行编程时 , 尝试使用为其它 FPGA 或 ACAP 生成的比特流或可编程器件镜像来进行编程。 例如 , 尝试使用 XCVU190 比特流对 XCKU115 进行编程时 , 会显示以下错误消息。 解决方案是为要编程的 FPGA 或 ACAP 指定正确的比特流。 尝试使用针对其它硅片版本生成的镜像对器件进行编程 • 对器件进行编程时 , 不支持使用针对其它硅片版本生成的比特流进行编程 , 此操作可能无法正常执行 , 并且可能导致器件损坏。 ○ 例如 , XCKU115 器件可提供 -es1 和后续 -es2 硅片版本 , 以及量产硅片版本。针对 Vivado IDE 工程选择 FPGA 或 ACAP 时 , 会在器件选择器中显示这些 -es1 或 -es2 硅片版本后缀。量产版本则无后缀。 ○ 对器件进行编程时 , 请勿尝试使用针对其它硅片版本创建的比特流或器件镜像来进行编程。例如 , 请勿尝试将 针对 -es1 硅片创建的比特流编程为 -es2 硅片 , 也不得将针对 -es2 硅片创建的比特流编程为 -es1 硅片。上述任 一操作都可能导致出现下图所示错误消息。 尝试对连接到 FPGA 器件的配置存储器进行编程 为了对连接到 FPGA 器件的配置存储器进行编程 , Vivado 硬件管理器首先将闪存控制器比特流下载至 FPGA 器件。随 后, 硬件管理器通过 FPGA 器件的 JTAG 端口发送闪存命令和数据以供控制器进行处理 , 此控制器随后将经过处理的闪 存命令/ 数据发送至配置存储器接口。 硬件管理器所下载的控制器比特流是专为 FPGA 器件的最新硅片而生成的。例如 , 对于 XCKU115-es2 硅片 , 生成的配 置存储器控制器比特流可适用于 XCKU115 的 2016.3 和更高版本。 对连接到此 FPGA 的配置存储器进行编程时 , 如果用户开发板上具有 XCKU115-es1 器件 , 那么将显示如下错误消息 : Attempting to Program an FPGA Device with a Bitstream Generated for a Different Silicon Revision of the FPGA 。这 是因为硬件管理器正在尝试将 -es2 闪存控制器比特流下载到 -es1 器件中。 关闭硬件目标 您可在“ Hardware ”窗口中右键单击硬件目标并从弹出菜单中选择“ Close Target ”来关闭硬件目标。您还可使用 Tcl 命令关闭硬件目标。例如, 要关闭 localhost 服务器上的 xilinx_platformusb/USB21 目标 , 请使用以下 Tcl 命令 : close_hw_target {localhost/xilinx_tcf/Digilent/210203339395A} 重要提示 如果开发板已掉电或者电缆已断开连接 , 那么 Vivado IDE 会关闭硬件管理器中的硬件目标。同时还 会取消 Vivado 主线程中的任意 Vivado 操作。如果开发板已重新上电或者电缆已重新连接 , 那么 Vivado IDE 将 尝试重新打开硬件管理器中的硬件目标。 关闭到硬件服务器的连接 您可在“ Hardware ”窗口中右键单击硬件服务器并从弹出菜单中选择“ Close Server ”来关闭硬件服务器。您还可使用 Tcl 命令关闭硬件服务器。例如 , 要关闭到 localhost 服务器的连接 , 请使用以下 Tcl 命令 : disconnect_hw_server localhost 重要提示 如果 Vivado 硬件管理器 (Hardware Manager) 已连接至 hw_server 并且 hw_server 已停止 , 那么 , Hardware Manager 会自动检测到此状况 , 并断开与服务器的连接。 以更低的 JTAG 时钟频率重新连接到目标器件 JTAG 链的速度受链中最慢的器件所限。因此 , 要降低 JTAG 时钟频率 , 请连接到所设 JTAG 时钟频率低于默认 JTAG 时钟频率的目标器件。 您应尝试以默认 JTAG 时钟频率 ( 针对 Digilent 线缆连接为 15 MHz , 针对 USB 线连接为 6 MHz ) 打开连接。如果无 法以上述速度建立连接, 赛灵思建议您进一步降低默认 JTAG 时钟频率 , 如下所示。 要更改 JTAG 时钟频率 , 请使用 Vivado ® Design Suite 中的“打开新硬件目标 (Open New Hardware Target) ” Wizard , 如下图所示。 或者 , 您可以按顺序使用下列 Tcl 命令 : open_hw_manager connect_hw_server -url machinename:3121 current_hw_target [get_hw_targets */xilinx_tcf/Digilent/210203327962A] set_property PARAM.FREQUENCY 250000 [get_hw_targets */xilinx_tcf/Digilent/ 210203327962A] open_hw_target 连接到 JTAG 链中包含超过 32 个器件的服务器 在 Vivado 中 , 可连接的服务器的 JTAG 链中可包含超过 32 个器件。您需要在启动 hw_server 时提供 max-jtagdevices 选项 , 才能启用在单一扫描链中检测更多器件的功能。此设置的默认值为 32 。请注意 , 增大该数值会导致器 件发现流程变慢, 从而导致电缆接入速度变慢。 在 hw_server 启动时指定 max-jtag-devices 选项的方式如下 : hw_server -e "set max-jtag-devices 64" 用法 该选项用于启动 hw_server , 并且能够启用大于 64 位的 ir 长度。此设置的默认值为 64 。对于 JTAG 链中 ir 长度范围更 大的器件, 则可增大该值。请注意 , 增大该数值会导致器件发现流程变慢 , 从而导致电缆接入速度变慢。因此 , 仅限 ir 长度较长和器件数量较多的系统才能增大该值。 在 hw_server 启动时指定该选项的方式如下 : hw_server -e "set max-ir-length 93" 初始化 (Init) 选项 您还可使用 --init=script.txt 选项 , 通过文件来加载此设置。要使用 init 选项 , 请创建初始化脚本 , 如以下示 例所示。在此脚本中, 指定 set max-jtag-device 参数。 # Sample script.txt set max-ir-length 93 启动 hw_server , 如以下示例所示 : hw_server --init=script.txt

标签:编程,器件,hw,server,硬件,vivado,JTAG
From: https://blog.csdn.net/cckkppll/article/details/137172518

相关文章

  • 在 Vivado 中执行远程调试
    在Vivado中执行远程调试远程调试需求可能在各种情况下出现。在产品原型设计阶段可能需要远程调试以便您在无法实地访问实验室的情况下对实验室中的设计进行调试,或者供您在组织内部共享资源。执行现场调试以诊断问题或者延长产品生命周期时也可能需要远程调试。......
  • 语法回顾-《Verilog编程艺术》之赋值操作
    目录Verilog赋值操作连续赋值过程赋值参考《Verilog 编程艺术》魏家明著Verilog赋值操作1.连续赋值(Continuousassignment),用于对线网Nets的赋值2.过程赋值(Proceduralassignment),用于对变量variables的赋值3.过程连续赋值:assign/deassign和fork/realease赋值由两......
  • 语法回顾-《Verilog编程艺术》之表达式
    目录表达式操作符操作符优先级整数算数操作符比较操作符逻辑操作符位运算操作符归约操作符移位操作符条件操作符连接操作符操作数向量的抽取数组的访问字符串表达式位长符号表达式赋值和截断与x/z比较参考《Verilog 编程艺术》魏家明著表达式表达式是......
  • windows下socket客户端编程示例
    #include<iostream>#include<winsock2.h>#include<ws2tcpip.h>#include<windows.h>#pragmacomment(lib,"Ws2_32.lib")intsocket_client_demo(char*addr,intport){ charrecvbuf[1024]={0}; intretVal=-1;#......
  • java Web洗衣店管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc
    一、源码特点   JSP洗衣店管理系统是一套完善的web设计系统,对理解JSPjava编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。javaWeb洗衣店管理系统二、功能介绍(......
  • java Web 疫苗预约管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc
    一、源码特点   JSP疫苗预约管理系统是一套完善的web设计系统,对理解JSPjava编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。javaWeb疫苗预约管理系统二、功能介......
  • Linux内核驱动编程的一道陷阱题(转载)
    本篇转载于:https://blog.csdn.net/yhb1047818384/article/details/84073838 原文如下:------看过一道linux内核驱动编程的题目,我觉得有点价值。题目很简单,凭记忆整理了下,代码如下:#include<linux/init.h>#include<linux/module.h>#include<linux/delay.h>#include<l......
  • keil下划线改为光标细致方法(也适用没有硬件键盘情况)
    keil下划线改回光标(没有硬件键盘方法)作者:closer按“insert”切换光标。笔记本的insert可能被占用,调用电脑的软键盘。方法如下:shift+Ctrl+k打开搜狗的软键盘,点击左下脚的ins,即可切换回光标。换回光标。第一步:win+R打开运行对话框。第二步:输入osk,确定,即可以打开......
  • C#多线程编程详细教学
     在C#中,多线程编程是一种非常重要的技术,它允许程序同时执行多个任务,从而提高了应用程序的响应性和整体性能。本文将详细介绍C#中的多线程编程,包括基本概念、线程创建、线程同步以及相关的代码示例。一、基本概念线程是操作系统进行运算调度的最小单位,它被包含在进程之中,是......
  • 【人工智能入门必看的最全Python编程实战(6)】
    ---------------------------------------------------------------------1.AIGC未来发展前景未完持续…1.1人工智能相关科研重要性拥有一篇人工智能科研论文及专利软著竞赛是保研考研留学深造以及找工作的关键门票!!!拥有一篇人工智能科研论文及专利软著竞赛是保研考研......