使用Jtag Master 调试FPGA程序
对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程序相关推荐
- EP4CE6E22C8N FPGA的JTAG接口无法下载程序的问题解决
使用环境(蓝色粗体字为特别注意内容) 1.软件环境:Win7 32 bit,Quartus II. 2.硬件环境:EP4CE6E22C8N开发板 3.参考文献:1.https://zhidao.bai ...
- FPGA程序上板调试问题
FPGA程序上板调试问题 1.memory block 找不到coe文件 原因1:coe文件格式有问题 memory_initialization_radix 是数值格式 memory_initial ...
- 转载]Cyclone II JTAG ASP 配置下载程序
原文:http://blog.sina.com.cn/s/blog_4739958a0100irp7.html 首先,还是那句话,电脑上写好程序.pof文件直接通过JTAG写到FPGA SRAM里,掉 ...
- Xilinx 黑金ZYNQ开发板AX7020,利用VIVADO进行FPGA程序烧录
参考黑金的AX7020开发板资料中的SDK实验篇PDF教程文件. (1)创建工程,步骤与SDK实验篇中的步骤一致:配置PS端时应该可以只选需要的加载方式,如QSPI或者SD,我目前是两种都勾选了,但是 ...
- Altera FPGA程序固化
转载自CSDN博客: https://blog.csdn.net/yuan_hust/article/details/75269111 Altera FPGA程序固化 对MCU进行烧写程序,程序固件被 ...
- RV-LINK:GDB 使用 RV-LINK 仿真器调试 RISC-V 程序
RV-LINK:GDB 使用 RV-LINK 仿真器调试 RISC-V 程序 https://blog.csdn.net/zoomdy/article/details/101456186 zoomdy ...
- Altera FPGA程序固化(软件+硬件)
Altera FPGA程序固化 对MCU进行烧写程序,程序固件被写入MCU的片上存储器ROM中,现代大部分MCU的片上存储器ROM为FLASH存储器,可以实现掉电保持数据,所以可以掉电程序不丢失. 而 ...
- JTAG原理+JTAG烧写FPGA配置芯片
JTAG原理: JTAG是目前ARM.DSP.FPGA常用的调试接口.在这些常用器件内部都集成了JTAG控制逻辑--TAP控制器,TAP控制器通过对边界扫描单元BSC的读写监测和控制ARM.DSP.F ...
- 起飞!通过无线WIFI下载调试FPGA
远程调试在整机调试时是很有必要和方便的,今天带给大家一个通过无线wifi下载调试fpga的一种方法,下边是整个架构的框图: 上边是整个框图,主要的数据流是Vivado通过PC上的WIFI链接到WIFI ...
最新文章
- 特定场景下SQL的优化
- 59. Leetcode 81. 搜索旋转排序数组 II(二分查找-局部有序)
- 【算法】Hash实现环形链表【LeetCode】
- [MS评估文档]SharePoint Portal Server 2003 的 10 大优点
- 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
- Python3连接SSH服务器并下载日志文件
- 2023苏州大学计算机考研信息汇总
- 燃烧的远征服务器排队小程序,你还在让顾客排队吗?试试小程序吧!让顾客不再排队!...
- 现在时间是 a 点 b 分,请问 t 分钟后,是几点几分?
- Flask 框架 网页跳转详解。
- 【Bootstrap】选择折叠项collapse
- android联想云服务,联想云服务手机客户端
- Pandas学习-Task05
- 最基础的GNN与GCN理解
- 快捷方式管理软件推荐
- [翻译] [LaTeX] 分式和二项式 - Fractions and Binomials
- 如何用Xinstall来做一款App运营推广?
- 2021第七届美亚杯中国电子数据取证大赛详解write up
- 【C++常用函数】数组或vector排序sort()
- 基于Tomotopy构建LDA主题模型(附案例实战)
热门文章
- JavaWeb开发之ListenerFilter
- undefined reference to `__imp_glRotatef‘
- rtorrent编译
- aes加密字符串 openssl_使用C中的OpenSSL使用AES128加密字符串时出错
- 大数加法(C语言)#includestdio.h #includestdlib.h #includestring.h char A[10005]; char B[10005]; int
- Shell--计算两个日期的相差天数及输出这两个日期内的所有日期【工作笔记】
- 深度学习——DerainNet
- 网络知识:LAN、WAN、WLAN相关知识介绍
- 亡羊补牢,为时不晚?
- MySQL分组查找最早(大)或最晚(小)记录