提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

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的使用相关推荐

  1. FPGA开发技巧备忘录——目录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--目录 前言 规划内容 前言 之所以要弄这么一个专题,是因为有些技巧工作中用的时候很熟悉,但隔了很久没有接触的 ...

  2. FPGA开发技巧备忘录——Vivado 自动日期版本号

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--Vivado 自动日期版本号 前言 创建.v文件 设定tcl文件路径 tcl内容 总结 前言 我们在编译FP ...

  3. FPGA开发技巧备忘录——verilog系统函数做数学运算

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--verilog系统函数做数学运算 前言 $clog2 Real math functions $random ...

  4. FPGA开发技巧备忘录——大量相同类型IP核仿真时tcl简化写法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发技巧备忘录--大量相同类型IP核仿真时tcl简化写法 前言 通配符* 前言 之前在<modelsim独立仿真quar ...

  5. FPGA的设计艺术(9)FPGA开发技巧与工程管理

    文章目录 前言 设计技巧和常见错误 PCB设计 数字设计 同步设计计数器示例:纹波计数器 减少编码时的不确定性. Verilog/VHDL编码 仿真 为什么仿真? 工程管理 管理工程师 前言 阅读一段 ...

  6. FPGA开发技巧:Modelsim仿真.do文件详细解析 原创 特权同学

    FPGA开发技巧:Modelsim仿真.do文件详细解析 原创 特权同学 FPGA快乐学习 以<FPGA边码边学 视频教程>"Lesson06 分频计数器设计"中的si ...

  7. 异步fifo_正点原子开拓者FPGA开发板资料连载第十五章 IP核之FIFO实验

    1)实验平台:正点原子开拓者FPGA 开发板 2)摘自<开拓者FPGA开发指南>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载地址:http://www.o ...

  8. Vivado | FPGA开发工具(Xilinx系列芯片)

    文章目录 软件下载 安装包下载 官网下载 安装教程 软件下载 安装包下载 官网下载 官网下载地址 安装教程 最详细的Vivado安装教程 Vivado的安装以及使用_入门

  9. FPGA开发流程(详述每一环节的物理含义和实现目标)

    <div class="htmledit_views"> 需求说明:Verilog设计 内容       :FPGA开发基本流程及注意事项 来自       :时间的诗 ...

最新文章

  1. 数学:莫比乌斯反演-约数个数和
  2. 远程连接Oracle 数据库连接报错ORA-12638身份检索失败
  3. js 判断一个字符在字符串中出现的次数
  4. SendMessage函数的常用消息及其应用
  5. 信息学奥赛一本通 2047:【例5.16】过滤空格 | OpenJudge NOI 1.7 23:过滤多余的空格
  6. 超大规模数据集类的创建
  7. 软件静态测试qac,Helix QAC — 软件静态测试工具
  8. day13--决策树与随机森林
  9. 二维向量vector初始化问题(以统计字符串字母题为例)
  10. 上海java工作经验与薪资_Java硕士京东工作1年,跳槽后他期望薪资26K,大家感觉他可以吗...
  11. android自定义view案例,Android自定义View,你摸的透透的了?
  12. 20的阶乘c语言怎么编程,C语言:编写程序,求20的阶乘.
  13. 80 多个免费编程字体,你喜欢哪种?
  14. 文字图片灰度化matlab,采用matlab将图像灰度化的方法
  15. 那些测绘工作中让你事半功倍的小工具软件,我不推荐你轻易安装
  16. 最近刚开始学编程,记录一下学习感受
  17. 爱情是人类最高贵的情感
  18. Win10下EasyConnect闪退、右下角无图标解决方案
  19. kdevelop 安装
  20. OC面向对象的三大特征(封装 继承 多态)习题2 复合

热门文章

  1. HTML相对路径--上级目录及下级目录的写法
  2. element表格重新布局,element表格显示不全,doLayout
  3. 根据两个坐标系对应点计算转换关系(旋转和平移)
  4. C#winform图书管理系统(课程设计)
  5. 39.超市微信促销活动5
  6. r720 linux wifi,联想拯救者 R720 ubuntu 16/18 WIFI开启问题
  7. MyBatis联合主键结果集与SQL查询结果不一致的问题
  8. Square:从今天開始抛弃Fragment吧!
  9. 【GD32】GD32设置看门狗
  10. Android之JVM基础