0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Jtag Master来调试FPGA程序

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-16 16:21 次阅读

FPGA进行上板调试时,使用最多的是SignalTap,但SignalTap主要用来抓取信号时序,当需要发送信号到FPGA时,Jtag Master可以发挥很好的作用,可以通过Jtag Master对FPGA进行读写测试,使用tcl脚本控制Jtag Master可以完成复杂的测试功能。使用jtag master进行调试时分为如下步骤:

  • 将JTAG to Avalon Master Bridge Intel FPGA IP加入代码
  • 根据Avalon-MM总线时序编写测试代码
  • 编写tcl脚本
  • 在System Console上运行tcl脚本进行调试

Jtag Master
在逻辑代码中加入JTAG to Avalon Master Bridge Intel FPGA IP ,IP路径如下。

poYBAGIMpnqAWGJ1AAB7iHPHINg582.png

Avalon-MM总线时序
jtag_master模块例化到fpga代码中,使用Verilog根据Avalon-MM时序图编写读写代码。master_read有效时将数据发送到master_readdata。master_write有效时,将master_writedata数据写入FPGA。

pYYBAGIMpnyABBZZAAFoe6g9zPk897.png

jtag_master u0 (
.clk_clk (_connected_to_clk_clk_),
.clk_reset_reset (_connected_to_clk_reset_reset_),
.master_reset_reset (_connected_to_master_reset_reset_),
.master_address (_connected_to_master_address_),
.master_readdata (_connected_to_master_readdata_),
.master_read (_connected_to_master_read_),
.master_write (_connected_to_master_write_),
.master_writedata (_connected_to_master_writedata_),
.master_waitrequest (_connected_to_master_waitrequest_),
.master_readdatavalid (_connected_to_master_readdatavalid_),
.master_byteenable (_connected_to_master_byteenable_)
);

编写TCL脚本

global claimed_path_jtag
#启动jtag master服务
proc start_jtag {} {
set service_type "master"
set jtag_path [lindex [get_service_paths $service_type] 0]
puts $jtag_path
set ::claimed_path_jtag [claim_service $service_type $jtag_path mylib]
}
# 下载函数
proc config {sof_file} {
set device_index 0
set device [lindex [get_service_paths device] $device_index]
puts "download..."
device_download_sof $device $sof_file
}
#关闭jtag master服务
proc end_jtag {} {
close_service master $::claimed_path_jtag
}
#写函数
proc jtag_write {addr data} {
master_write_32 $::claimed_path_jtag $addr $data
}
#读函数
proc jtag_read {addr} {
set result [master_read_32 $::claimed_path_jtag $addr 1]
return $result
}
#测试读写
proc test { } {
#地址0中写入1
jtag_write 0x0 0x1
#读取地址0
jtag_read 0x0
}

上电测试
打开System Console

poYBAGIMpn2AdNliAABTA5WKcac796.png

运行如下指令
source jtag.tcl //tcl 脚本
config output_files/test.sof //下载文件
start_jtag //打开jatg master服务
test //测试读写函数
end_jtag //关闭jatg master服务

pYYBAGIMpn6AUiQbAABEsWRSNts054.png
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21323

    浏览量

    593214
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79544
收藏 人收藏

    评论

    相关推荐

    RISCV soft JTAG调试_v1.2

    因为目前软件的限制,RISCV的逻辑不能同时共用JTAG,所以如果想要同时去调试逻辑和RISCV的话,可以通过RISCV的soft Jtag来实现。soft Jtag就是通过GPIO来
    的头像 发表于 04-23 08:38 280次阅读

    RISCV soft JTAG调试_v1.1

    因为目前软件的限制,RISCV的逻辑不能同时共用JTAG,所以如果想要同时去调试逻辑和RISCV的话,可以通过RISCV的soft Jtag来实现。soft Jtag就是通过GPIO来
    的头像 发表于 02-23 16:16 192次阅读
    RISCV soft <b class='flag-5'>JTAG</b><b class='flag-5'>调试</b>_v1.1

    关于JTAG口,你了解多少?

    ,有好的灵感以及文章随笔,欢迎投稿,投稿请标明笔名以及相关文章,投稿接收邮箱:1033788863@qq.com。今天带来的是“是谁动了我的JTAG口?”,话不多说,上货。 在FPGA研发及学习
    发表于 01-19 21:19

    串行线调试JTAG有何区别?

    在基于ARM7的ADuC器件上,通过JTAG调试和下载到Flash。在AduCM360上,JTAG被串行线调试取代。 串行线调试
    发表于 01-15 07:35

    【技术专栏】泰凌微电子JTAG工具使用教程(一)

    在数字电路的开发和调试过程中经常需要用JTAG来观察和修改芯片状态。本篇文章将从JTAG的介绍及使用详细步骤以来展开描述。 1 JTAG介绍 JTA
    的头像 发表于 12-20 10:00 777次阅读
    【技术专栏】泰凌微电子<b class='flag-5'>JTAG</b>工具使用教程(一)

    JTAG如何工作?是谁动了我的JTAG口?

    了这类事情,FPGAJTAG口突然就不能下载程序了,而且这种事情已经不是第一次了,之前在做项目的时候也出现过,而且出现的形式也极其相似,之前还用的好好的,第二天就不行了,真是让人郁闷。 为此,本人也是去尝试了很多解决办法。
    的头像 发表于 12-04 07:40 649次阅读
    <b class='flag-5'>JTAG</b>如何工作?是谁动了我的<b class='flag-5'>JTAG</b>口?

    #FPGA 调试技巧课(调试能力)

    fpga调试
    明德扬助教小易老师
    发布于 :2023年11月02日 06:13:34

    LogiCORE JTAG至AXI Master IP核简介

    LogiCORE JTAG至AXI Master IP核是一个可定制的核,可生成AXIAXI总线可用于处理和驱动系统中FPGA内部的AXI信号。AXI总线接口协议可通过IP定制Vivado
    的头像 发表于 10-16 10:12 480次阅读
    LogiCORE <b class='flag-5'>JTAG</b>至AXI <b class='flag-5'>Master</b> IP核简介

    移植到FPGA上只有一个JTAG接口,进行MCU调试是采用其他扩展引脚定位为MCU的JTAG调试

    移植到FPGA上,只有一个JTAG接口。再进行MCU调试的话,是采用其他扩展引脚定位为MCU的JTAG调试?还是使用
    发表于 08-11 13:41

    为什么jtag调试调试一直报错,无法实现烧写?

    使用了自己的FPGA开发板,通过普通的IO实现jtag调试器连接,FPGA顶层的引脚如下图所示 其中qspi引脚用的是FPGA固化
    发表于 08-11 13:21

    XJTAG边界扫描—JTAG调试

    JTAG调试器(JTAG Chain Debugger),随XJTAG的安装包一起安装,是一个功能强大的工具,旨在帮助您解决JTAG链的问题。
    发表于 07-19 14:41 348次阅读
    XJTAG边界扫描—<b class='flag-5'>JTAG</b>链<b class='flag-5'>调试</b>器

    FPGA JTAG接口下载速度很慢咋办?

    通过JTAG接口为FPGA下载程序时遇到了速度很慢甚至ISE上配置TCK时钟最小的为250kHz时,依然无法保证下载成功。
    发表于 06-25 16:06 1279次阅读
    ​<b class='flag-5'>FPGA</b> <b class='flag-5'>JTAG</b>接口下载速度很慢咋办?

    JTAG的基本原理

    在线仿真、调试,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的JTAG测试工具对芯片进行测试。现在多数的高级器件都支持JTAG协议,如以以ARM
    的头像 发表于 06-14 09:15 8642次阅读
    <b class='flag-5'>JTAG</b>的基本原理

    使用像gdb这样的调试分析在esp8266上运行的程序

    使用像 gdb 这样的调试分析在 esp8266 上运行的程序?直接使用 gdb 或像eclipse 这样的多个前端之一,你可以 我问这个是因为在讨论调试器的线程上的新回复令人沮
    发表于 06-12 07:44

    Xilinx FPGA远程调试方法(二)

    上篇主要是分享了Vivado编译软件远程调试的方法。杰克使用Vivado软件进行远程连接,主要是用于固化程序以及FPGA(PL端)的异常排查。而本篇主要内容是对使用Vitis软件远程调试
    发表于 05-25 14:36 1787次阅读
    Xilinx <b class='flag-5'>FPGA</b>远程<b class='flag-5'>调试</b>方法(二)