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
    +关注

    关注

    1648

    文章

    22115

    浏览量

    621522
  • 程序
    +关注

    关注

    117

    文章

    3829

    浏览量

    83523
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    JTAG标准的状态机实现

    JTAG作为一项国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试和调试。目前的主流芯片均支持JTAG协议,如DSP、FPGA、ARM、部分单片机等。标准的
    的头像 发表于 08-21 15:12 793次阅读
    <b class='flag-5'>JTAG</b>标准的状态机实现

    使用BLE(CYW20829)作为SPI slave和MCU(TC387)作为SPI master调试SPI通信时遇到的问题求解

    我们这边使用BLE(CYW20829)作为SPI slave和MCU(TC387)作为SPI master调试SPI通信时,遇到两个问题: 1. 1.slave接收来自master的数据,rx中断
    发表于 07-01 08:28

    FPGA调试方式之VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设
    的头像 发表于 06-09 09:32 1896次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>调试</b>方式之VIO/ILA的使用

    FPGA远程烧写bit文件和调试ILA指南

    FPGA 开发过程中,烧写bit文件和使用ILA进行调试是再常见不过的操作。但如果 FPGA 板卡被放在机房,或者通过PCIe插在服务器上,那么每次调试时我们都不得不带着笔记本电脑
    的头像 发表于 06-05 16:41 1205次阅读
    <b class='flag-5'>FPGA</b>远程烧写bit文件和<b class='flag-5'>调试</b>ILA指南

    有办法让SDK 1.3.5与JTAG调试器配合使用吗?

    其切换到 FX3 SDK 1.3.4,则一切正常。 看来 SDK 1.3.5 中的预置库出了问题,因为这是唯一真正发生变化的地方。 有办法让 SDK 1.3.5 与 JTAG 调试器配合使用吗?
    发表于 05-23 07:32

    RISC-V JTAG:开启MCU 芯片调试之旅

    基于 RISC-V 架构的 MCU 芯片JTAG 调试过程及操作,为后续类似调试工作提供详实参考的依据,助力研发团队高效推进芯片研发进程。 RISC-V 架构以其开源、模块化等优势在 MCU 芯片领域崭露头角。
    的头像 发表于 05-07 17:57 1802次阅读
    RISC-V <b class='flag-5'>JTAG</b>:开启MCU 芯片<b class='flag-5'>调试</b>之旅

    FPGAJtag接口烧了,怎么办?

    在展开今天的文章前,先来讨论一个问题:FPGAjtag接口烧了怎么办?JTAG接口的输入引脚通常设计为高阻抗,这使得它们对静电电荷积累非常敏感,由于JTAG接口需要频繁连接
    的头像 发表于 04-27 11:01 1374次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>Jtag</b>接口烧了,怎么办?

    无法使用lauterbach trace32调试器解锁ECM上的JTAG,怎么解决?

    客户 (毛虫) 正在处理 SAC57D54H。我们已经锁定了 ECM 上的 JTAG,但他们无法使用 lauterbach trace32调试器解锁 ECM 上的 JTAG。 他们已经用 8x32
    发表于 03-21 08:18

    AGM FPGA/MCU烧写文件类型有哪些及用途

    SRAM写入,通过JTAG烧写,掉电即失效,可用于设计调试; 二、AG10K/16K系列: _SRAM.prg文件为片内SRAM写入,通过JTAG烧写,掉电即失效,可用于设计调试; _
    发表于 03-14 09:54

    FPGA设计调试流程

    调试,即Debug,有一定开发经验的人一定会明确这是设计中最复杂最磨人的部分。对于一个庞大复杂的FPGA工程而言,出现问题的概率极大,这时如果没有一个清晰的Debug思路,调试过程只能是像无头苍蝇一样四处乱撞。
    的头像 发表于 03-04 11:02 1316次阅读
    <b class='flag-5'>FPGA</b>设计<b class='flag-5'>调试</b>流程

    spi master接口的fpga实现

    串行外围接口 大致了解: spi是个同步协议,数据在master和slaver间交换通过时钟sck,由于它是同步协议,时钟速率就可以各种变换。 sck:主机提供,从机不能操控,从器件由主机产生的时钟控制。数据只有在sck来了的上升沿或者下降沿才传输。 高级一点的spi芯片有配置寄存器,高级一点的
    的头像 发表于 11-16 10:35 1355次阅读
    spi <b class='flag-5'>master</b>接口的<b class='flag-5'>fpga</b>实现

    【AI技术支持】ESP32-S3 JTAG调试问题处理

    启明云端/01你是否曾遇到过?在使用ESP32-S3模块,ESP-IDF版本为idf5.0时,调试JTAG,尝试很久也无法调通,这是为什么呢?启明云端/02这是咋回事呢?这个过程需要安装zadig
    的头像 发表于 10-30 08:01 2577次阅读
    【AI技术支持】ESP32-S3 <b class='flag-5'>JTAG</b><b class='flag-5'>调试</b>问题处理

    【AI技术支持】ESP32C3 开发板在Linux环境下,进行JTAG 调试演示

    启明云端/01JTAG调试工具本教程主要演示ESP32C3开发板在linux环境下,通过vscode的ESP-IDF插件使用JTAG调试工具。ESP32C3不但内置了USB-
    的头像 发表于 10-17 08:01 3663次阅读
    【AI技术支持】ESP32C3 开发板在Linux环境下,进行<b class='flag-5'>JTAG</b> <b class='flag-5'>调试</b>演示

    C2000 MCU JTAG 连接调试

    电子发烧友网站提供《C2000 MCU JTAG 连接调试.pdf》资料免费下载
    发表于 09-09 09:30 0次下载
    C2000 MCU <b class='flag-5'>JTAG</b> 连接<b class='flag-5'>调试</b>

    单片机烧录程序的线叫什么

    )是一种国际标准测试协议,主要用于芯片内部测试/仿真/调试JTAG接口有多种形式,常用的有20引脚、14引脚和10引脚等。 JTAG接口烧录方式常用的工具有J-Link等。在烧录过程中,JT
    的头像 发表于 09-02 09:52 2593次阅读