vivado 使用 JTAG-to-AXI Master 调试核进行硬件系统通信

news2024/11/24 14:54:52
使用 JTAG-to-AXI Master 调试核进行硬件系统通信
JTAG-to-AXI Master 调试核为可自定义核 可在运行时生成 AXI 传输事务并驱动 FPGA 内部的 AXI 信号。该核支持所
有存储器映射型 AXI 接口和 AXI4-Lite 接口 并且可支持位宽为 32 64 的数据接口。
您添加到自己的设计中的 JTAG-to-AXI Master (JTAG-AXI) 核会显示在“硬件 (Hardware) ”窗口中的目标器件下。如果
未显示这些 JTAG-AXI 请右键单击器件并选择“ Refresh Hardware ”。这样将重新扫描 FPGA 器件并刷新
Hardware ”窗口。
注释 如果编程和 / 或刷新 FPGA 器件后仍未显示 ILA 请检查并确保已使用正确的 .bit 文件完成器件编程 并确
认已实现的设计包含 ILA 核。
单击并选中此 JTAG-AXI 下图中名为 hw_axi_1 的核 ), 以在“ AXI 核属性 (AXI Core Properties) ”窗口中查看其属
性。
与硬件中的 JTAG-to-AXI Master 调试核进行交互
只能使用 Tcl 命令来与 JTAG-to-AXI Master 调试核进行通信。您可使用 create_hw_axi_txn 命令和 run_hw_axi
命令来分别创建并运行 AXI 读取和写入传输事务。
复位 JTAG-to-AXI Master 调试核
创建并发出传输事务之前 重要的是使用以下 Tcl 命令来复位 JTAG-to-AXI Master
reset_hw_axi [get_hw_axis hw_axi_1]
创建并运行读取传输事务
用于创建 AXI 传输事务的 Tcl 命令为 create_hw_axi_txn 。如需了解有关如何使用此命令的更多信息 请在 Vivado
IDE Tcl 控制台 (Tcl console) 中输入“ help create_hw_axi_txn ”。以下是有关如何从地址 0 创建 4 AXI
取突发传输事务的示例
create_hw_axi_txn read_txn [get_hw_axis hw_axi_1] -type READ -address
00000000 -len 4
其中
read_txn 是用户定义的传输事务名称
[get_hw_axis hw_axi_1] 会返回 hw_axi_1 对象
-address 00000000 是起始地址
-len 4 会将 AXI 突发长度设置为 4 个字
下一步是运行刚使用 run_hw_axi 命令创建的传输事务。操作方式如下
run_hw_axi [get_hw_axi_txns read_txn]
最后一步是获取通过运行该传输事务所读取的数据。您可使用 report_hw_axi_txn report_property 命令在屏幕
上打印此数据 或者也可以使用 get_property 命令来返回值 以供在别处使用。
report_hw_axi_txn [get_hw_axi_txns read_txn]
0 00000000 00000000
8 00000000 00000000
report_property [get_hw_axi_txns read_txn]
Property Type Read-only Visible Value
CLASS string true true hw_axi_txn
CMD.ADDR string false true 00000000
CMD.BURST enum false true INCR
CMD.CACHE int false true 3
CMD.ID int false true 0
CMD.LEN int false true 4
CMD.SIZE enum false true 32
DATA string false true 00000000000000000000000000000000
HW_AXI string true true hw_axi_1
NAME string true true read_txn
TYPE enum false true READ
创建和运行写入传输事务
以下是有关如何从地址 0 创建 4 AXI 写入突发传输事务的示例
create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -type WRITE -address
00000000 \
-len 4 -data {11111111_22222222_33333333_44444444}
其中
write_txn 是用户定义的传输事务名称
[get_hw_axis hw_axi_1] 会返回 hw_axi_1 对象
-address 00000000 是起始地址
-len 4 会将 AXI 突发长度设置为 4 个字
-data {11111111_22222222_33333333_44444444} - 数据方向为左侧 LSB 地址 0 和右侧 MSB
地址 3
下一步是运行刚使用 run_hw_axi 命令创建的传输事务。操作方式如下
run_hw_axi [get_hw_axi_txns write_txn]
重要提示 如果您对器件进行重新编程 那么将删除所有现有 jtag_axi 传输事务。您可能需要重新创建这些传输
事务。
提示 run_hw_axi Tcl 命令的可选实参 -queue 允许您以队列模式指定 hw_axi 传输事务。排队操作允许在 JTAG
to AXI Master FIFO 中对最多 16 项读取和 16 项写入传输事务进行排队 并发出连续执行指令 以便降低传输
事务之间的时延并提升性能。非排队传输事务则直接在提交时运行。

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

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

相关文章

Ubuntu 传输文件

scp [选项] 源文件 目标路径 以下是一些常用的 scp 命令选项: -r:递归复制目录和子目录。 -P:指定远程 SSH 服务器的端口号。 -i:指定用于身份验证的私钥文件。 -p:保留源文件的时间戳、权限和所有者。 -v&#x…

嵌入式面试-回答I2C

说明: 此文章是在阅读了一些列面试相关资料之后对于一些常见问题的整理,主要针对的是嵌入式软件面试中涉及到的问答,努力精准的抓住重点进行描述。若有不足非常欢迎指出,感谢!在总结过程中有些答案没标记参考来源&…

线性代数---行列式的性质

1. 行列式的行与列(按原顺序)互换

RabbitMQ学习记录

核心概念 Brocker:消息队列服务器实体 Exchange(消息交换机):它指定消息按什么规则,路由到哪个队列。 Queue(消息队列载体):每个消息都会被投入到一个或多个队列。 Binding(绑定):它的作用就是把exchange和queue按…

心学从0开始学习rust-十万个为什么篇章(持续更新篇章)

问答环节 1.const x 1;和let x 1有何区别呢,const申请的是全局变量所以会一直有效对吗? const 声明的常量具有全局作用域,但它们不能直接在函数内部声明。常量通常用于定义整个程序中使用的值,如配置常量或数学常量。 let 声明…

并发执行一定比串行执行快吗?

一、多线程的两个主要方向 并发:多线程之间各自执行各自的互不影响 并行:多线程之间互相竞争资源,进行读写的时候可能会产生相互覆盖 二、上下文切换 1.什么是上下文切换 在多线程编程中一般线程的个数都大于cpu的核心数,而一个cpu核心在任意时刻都只能被一个线…

ElasticSearch实战之项目搜索高亮

文章目录 1. 前情配置2、数据操作2.1 操作API2.2 数据入库 3. 高亮搜索3.1 方法封装3.2 高亮搜索 1. 前情配置 为满足ElasticSearch可在项目中实现搜索高亮&#xff0c;我们需要先做一些前情配置 导入ElasticSearch依赖 <dependency><groupId>org.springframewor…

怎么设置启用远程桌面? 如何让外网电脑远程本地内网?

如何远程控制电脑&#xff1f;最简单实用的方案是开启电脑系统自带的远程桌面功能&#xff0c;如果涉及跨网、内外网互通&#xff0c;可以同时用快解析内网映射外网。下面是方案的具体实施步骤&#xff0c;供大家参考。 怎么打开设置启用远程桌面&#xff1f; 1.在目标需要远…

【详细讲解CentOS常用的命令】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

android 创建module

文章目的&#xff1a; 快速创建module并使用 创建步骤&#xff1a; 1 创建module 2 修改module下的build.gradle文件 3 修改清单文件中MainActivity属性&#xff0c;否则APP会因为有多个启动界面而崩溃 4 在主项目build.gradle引用该object Module 至此&#xff0c;可在APP中…

排序(五)——非比较排序+排序总结

1.非比较排序 我们前面讲的排序算法都是通过比较大小来进行排序的&#xff0c;他们都是比较排序。 像基数排序、计数排序和桶排序等都不是通过比较大小来排序的&#xff0c;是非比较排序&#xff0c;在这里我们讲一下其中的计数排序和基数排序&#xff0c;而桶排序实现起来太…

在k8s 中部署有状态服务MongoDB高可用集群详解(附带镜像)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、k8s简介 2、MongoDB介绍 3、为什么要…

网络爬虫软件学习

1 什么是爬虫软件 爬虫软件&#xff0c;也称为网络爬虫或网络蜘蛛&#xff0c;是一种自动抓取万维网信息的程序或脚本。它基于一定的规则&#xff0c;自动地访问网页并抓取需要的信息。爬虫软件可以应用于大规模数据采集和分析&#xff0c;广泛应用于舆情监测、品牌竞争分析、…

【 书生·浦语大模型实战营】作业(五):LMDeploy 量化部署

【 书生浦语大模型实战营】作业&#xff08;五&#xff09;&#xff1a;LMDeploy 量化部署 &#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系…

Vue2之组件通信(爆肝)

大家有什么想看的可以在评论区留言&#xff0c;我尽量满足&#xff0c;感谢大家&#xff01; 组件通信是vue中一个非常重要的内容&#xff0c;我们需要掌握好组件通信&#xff0c;那么让我为大家介绍几种组件通信的方式吧&#xff01; 一、props 这是父传子的方式&#xff0…

FFmpeg合并音视频文件操作备忘(mac版)

利用NDM嗅探插件从B站下载下来的文件是音视频分开的&#xff0c;用剪辑软件合并时发现导出时文件都特别大&#xff0c;于是使用FFmpeg处理 环境&#xff1a; MBP M1芯片版 系统 macOS Sonama 14.4.1 操作步骤&#xff1a; 一、官方下载链接&#xff1a;https://evermeet.cx/…

MySQL 锁机制全面解析

目录 1. MySQL的锁类型1.1 全局锁1.2 表锁1.3 行锁1.4 共享锁&#xff08;读锁&#xff09;1.5 排它锁&#xff08;写锁&#xff09;1.6 死锁 2 乐观锁和悲观锁2.1 乐观锁2.2 悲观锁 3 意向锁4 间隙锁5 临键锁6. 事务隔离级别对锁的影响6.1 读未提交&#xff08;Read Uncommitt…

npm内部机制与核心原理

npm 的核心目标&#xff1a; Bring the best of open source to you, your team and your company. npm 最重要的任务是安装和维护开源库。 npm 安装机制与背后思想 npm 的安装机制非常值得探究。Ruby 的 Gem&#xff0c;Python的pip都是全局安装机制&#xff0c;但是npm的安装…

️️️Vue3+Element-Plus二次封装一个可定制化的table组件

前言 为什么需要二次封装 开发后台管理系统,会接触到很多表格和表单,一但表格表单多起来,仅仅只需要一小部分改变&#xff0c;都需要在中重写一大堆代码,许多重复逻辑,我们可以把重复逻辑抽离出来二次封装一个组件 使用,减少在开发中需要编写的代码。 为什么需要定制化 每个…

【AI工具之Prezo如何自动生成PPT操作步骤】

先说优缺点&#xff1a; 最大的优点就是免费&#xff08;但说实话功能和体验方面很弱&#xff09;支持中文提问&#xff08;最好用英文&#xff09;&#xff0c;智能生成图文&#xff08;但是只能生成英文内容&#xff09;可以AI生成图片&#xff0c;图片很精美酷炫&#xff0…