对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路径如下。

Avalon-MM总线时序

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

 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_pathset ::claimed_path_jtag [claim_service $service_type $jtag_path mylib]
}
# 下载函数
proc config {sof_file} {set device_index 0set 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中写入1jtag_write 0x0 0x1  #读取地址0jtag_read 0x0
}

上电测试

  • 打开System Console

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


公众号 硬码农二毛哥

使用Jtag Master 调试FPGA程序相关推荐

  1. EP4CE6E22C8N FPGA的JTAG接口无法下载程序的问题解决

    使用环境(蓝色粗体字为特别注意内容) 1.软件环境:Win7 32 bit,Quartus II. 2.硬件环境:EP4CE6E22C8N开发板 3.参考文献:1.https://zhidao.bai ...

  2. FPGA程序上板调试问题

    FPGA程序上板调试问题 1.memory block 找不到coe文件 原因1:coe文件格式有问题 memory_initialization_radix 是数值格式 memory_initial ...

  3. 转载]Cyclone II JTAG ASP 配置下载程序

    原文:http://blog.sina.com.cn/s/blog_4739958a0100irp7.html 首先,还是那句话,电脑上写好程序.pof文件直接通过JTAG写到FPGA SRAM里,掉 ...

  4. Xilinx 黑金ZYNQ开发板AX7020,利用VIVADO进行FPGA程序烧录

    参考黑金的AX7020开发板资料中的SDK实验篇PDF教程文件. (1)创建工程,步骤与SDK实验篇中的步骤一致:配置PS端时应该可以只选需要的加载方式,如QSPI或者SD,我目前是两种都勾选了,但是 ...

  5. Altera FPGA程序固化

    转载自CSDN博客: https://blog.csdn.net/yuan_hust/article/details/75269111 Altera FPGA程序固化 对MCU进行烧写程序,程序固件被 ...

  6. RV-LINK:GDB 使用 RV-LINK 仿真器调试 RISC-V 程序

    RV-LINK:GDB 使用 RV-LINK 仿真器调试 RISC-V 程序 https://blog.csdn.net/zoomdy/article/details/101456186 zoomdy ...

  7. Altera FPGA程序固化(软件+硬件)

    Altera FPGA程序固化 对MCU进行烧写程序,程序固件被写入MCU的片上存储器ROM中,现代大部分MCU的片上存储器ROM为FLASH存储器,可以实现掉电保持数据,所以可以掉电程序不丢失. 而 ...

  8. JTAG原理+JTAG烧写FPGA配置芯片

    JTAG原理: JTAG是目前ARM.DSP.FPGA常用的调试接口.在这些常用器件内部都集成了JTAG控制逻辑--TAP控制器,TAP控制器通过对边界扫描单元BSC的读写监测和控制ARM.DSP.F ...

  9. 起飞!通过无线WIFI下载调试FPGA

    远程调试在整机调试时是很有必要和方便的,今天带给大家一个通过无线wifi下载调试fpga的一种方法,下边是整个架构的框图: 上边是整个框图,主要的数据流是Vivado通过PC上的WIFI链接到WIFI ...

最新文章

  1. 特定场景下SQL的优化
  2. 59. Leetcode 81. 搜索旋转排序数组 II(二分查找-局部有序)
  3. 【算法】Hash实现环形链表【LeetCode】
  4. [MS评估文档]SharePoint Portal Server 2003 的 10 大优点
  5. 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
  6. Python3连接SSH服务器并下载日志文件
  7. 2023苏州大学计算机考研信息汇总
  8. 燃烧的远征服务器排队小程序,你还在让顾客排队吗?试试小程序吧!让顾客不再排队!...
  9. 现在时间是 a 点 b 分,请问 t 分钟后,是几点几分?
  10. Flask 框架 网页跳转详解。
  11. 【Bootstrap】选择折叠项collapse
  12. android联想云服务,联想云服务手机客户端
  13. Pandas学习-Task05
  14. 最基础的GNN与GCN理解
  15. 快捷方式管理软件推荐
  16. [翻译] [LaTeX] 分式和二项式 - Fractions and Binomials
  17. 如何用Xinstall来做一款App运营推广?
  18. 2021第七届美亚杯中国电子数据取证大赛详解write up
  19. 【C++常用函数】数组或vector排序sort()
  20. 基于Tomotopy构建LDA主题模型(附案例实战)

热门文章

  1. JavaWeb开发之ListenerFilter
  2. undefined reference to `__imp_glRotatef‘
  3. rtorrent编译
  4. aes加密字符串 openssl_使用C中的OpenSSL使用AES128加密字符串时出错
  5. 大数加法(C语言)#includestdio.h #includestdlib.h #includestring.h char A[10005]; char B[10005]; int
  6. Shell--计算两个日期的相差天数及输出这两个日期内的所有日期【工作笔记】
  7. 深度学习——DerainNet
  8. 网络知识:LAN、WAN、WLAN相关知识介绍
  9. 亡羊补牢,为时不晚?
  10. MySQL分组查找最早(大)或最晚(小)记录