FPGA开发技巧备忘录——Xilinx JTAG to AXI Master IP的使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
FPGA开发技巧备忘录——Xilinx JTAG to AXI Master IP的使用
- 前言
- 用法
- Tcl指令
- 展望
前言
无意间发现了JTAG to AXI Master IP核,发现这个东西对于FPGA单独调试应该比较有用,故而来研究了一番,发现这个东西切实很好用而且也比较简单。想起我之前为了构造一个指令系统专门写了一个UART2BUS,如果当时我知道使用JTAG to AXI Master IP核,那我肯定直接使用这个了,所以说真的是要不停的学习才能不会落伍呀
用法
很多FPGA工程都是通过总线寄存器来进行时序的控制,参数的传递等等。那JTAG to AXI Master IP就提供了一种这样的便捷的方法,而且只需要JTAG接口就可以了,这个接口对于每一个FPGA板卡来说肯定是必备的,而且调试环境也是Vivado现成提供的。在项目初期,FPGA单独进行开发的时候(或者软件部分还没有参与进来的时候),利用JTAG to AXI Master IP 相关调试的工作就可以不需要软件人员的配置而继续进行下去。
这里我套用我的博文《ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互》中的工程,在其基础上将JTAG to AXI Master IP添加上去
基地址和地址区间设置为与PS相同的,这样相当于不仅仅ARM可以对BUS_AXI进行操作,JTAG_AXI_0这个IP核也是可以对BUS_AXI进行操作
就是这么简单,什么手册都没看,看着端口名字就知道怎么连接了。
Tcl指令
我们可以打开vivado界面通过按钮来找到FPGA器件后,然后再输入tcl指令,而在这里,我为了以后使用的便利性,我就不打开vivado了。直接打开vivado tcl shell输入指令来操作,为后面的操作脚本化来做准备。
open_hw
connect_hw_server
open_hw_target
current_hw_device [get_hw_devices xc7z030_1]
refresh_hw_device -update_hw_probes false [lindex [get_hw_devices xc7z030_1] 0]proc ReadReg { address } {create_hw_axi_txn read_txn [get_hw_axis hw_axi_1] -address $address -type read
run_hw_axi read_txn
set read_value [lindex [report_hw_axi_txn read_txn] 1];
delete_hw_axi_txn read_txn
set tmp addr=0x
append tmp $address
append tmp , data=0x
append tmp $read_value
return $tmp
}proc WriteReg { address data } {create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -address $address -data $data -type write
run_hw_axi write_txn
set write_value [lindex [report_hw_axi_txn write_txn] 1];
delete_hw_axi_txn write_txn
}
读地址测试:
ReadReg 43c00000
ReadReg 43c00004
ReadReg 43c00008
ReadReg 43c0000c
ReadReg 43c00010
读写测试:
WriteReg 43c0001c 00000001
ReadReg 43c0001c
WriteReg 43c0001c 00000002
ReadReg 43c0001c
大功告成!!
展望
这确实是一个比较方便的调试手段,不需要额外增加其他硬件资源,而JTAG下载线是FPGA调试所必备的。这种调试手段确实能够提升效率,后续我要研究下如何使用我的vb.net的上位机来进行操作,通过上位机来控制,做到每个寄存器地址的实时扫描以及解析,将又不失为一种更为高效的调试手段。
我在网上看到有一篇《JTAG to AXI Master的API函数读写操作》,看起来似乎不错,准备研究和尝试一下,同时或者我自己将tcl指令封装起来也不失为另外一种实现方法。下一篇见
FPGA开发技巧备忘录——Xilinx JTAG to AXI Master IP的使用相关推荐
- FPGA开发技巧备忘录——目录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--目录 前言 规划内容 前言 之所以要弄这么一个专题,是因为有些技巧工作中用的时候很熟悉,但隔了很久没有接触的 ...
- FPGA开发技巧备忘录——Vivado 自动日期版本号
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--Vivado 自动日期版本号 前言 创建.v文件 设定tcl文件路径 tcl内容 总结 前言 我们在编译FP ...
- FPGA开发技巧备忘录——verilog系统函数做数学运算
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--verilog系统函数做数学运算 前言 $clog2 Real math functions $random ...
- FPGA开发技巧备忘录——大量相同类型IP核仿真时tcl简化写法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--大量相同类型IP核仿真时tcl简化写法 前言 通配符* 前言 之前在<modelsim独立仿真quar ...
- FPGA的设计艺术(9)FPGA开发技巧与工程管理
文章目录 前言 设计技巧和常见错误 PCB设计 数字设计 同步设计计数器示例:纹波计数器 减少编码时的不确定性. Verilog/VHDL编码 仿真 为什么仿真? 工程管理 管理工程师 前言 阅读一段 ...
- FPGA开发技巧:Modelsim仿真.do文件详细解析 原创 特权同学
FPGA开发技巧:Modelsim仿真.do文件详细解析 原创 特权同学 FPGA快乐学习 以<FPGA边码边学 视频教程>"Lesson06 分频计数器设计"中的si ...
- 异步fifo_正点原子开拓者FPGA开发板资料连载第十五章 IP核之FIFO实验
1)实验平台:正点原子开拓者FPGA 开发板 2)摘自<开拓者FPGA开发指南>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载地址:http://www.o ...
- Vivado | FPGA开发工具(Xilinx系列芯片)
文章目录 软件下载 安装包下载 官网下载 安装教程 软件下载 安装包下载 官网下载 官网下载地址 安装教程 最详细的Vivado安装教程 Vivado的安装以及使用_入门
- FPGA开发流程(详述每一环节的物理含义和实现目标)
<div class="htmledit_views"> 需求说明:Verilog设计 内容 :FPGA开发基本流程及注意事项 来自 :时间的诗 ...
最新文章
- 数学:莫比乌斯反演-约数个数和
- 远程连接Oracle 数据库连接报错ORA-12638身份检索失败
- js 判断一个字符在字符串中出现的次数
- SendMessage函数的常用消息及其应用
- 信息学奥赛一本通 2047:【例5.16】过滤空格 | OpenJudge NOI 1.7 23:过滤多余的空格
- 超大规模数据集类的创建
- 软件静态测试qac,Helix QAC — 软件静态测试工具
- day13--决策树与随机森林
- 二维向量vector初始化问题(以统计字符串字母题为例)
- 上海java工作经验与薪资_Java硕士京东工作1年,跳槽后他期望薪资26K,大家感觉他可以吗...
- android自定义view案例,Android自定义View,你摸的透透的了?
- 20的阶乘c语言怎么编程,C语言:编写程序,求20的阶乘.
- 80 多个免费编程字体,你喜欢哪种?
- 文字图片灰度化matlab,采用matlab将图像灰度化的方法
- 那些测绘工作中让你事半功倍的小工具软件,我不推荐你轻易安装
- 最近刚开始学编程,记录一下学习感受
- 爱情是人类最高贵的情感
- Win10下EasyConnect闪退、右下角无图标解决方案
- kdevelop 安装
- OC面向对象的三大特征(封装 继承 多态)习题2 复合