2022-5-11-在Vivado中用tcl对寄存器进行读写操作 & JTAG to AXI Master IP的使用

本文介绍了如何利用JTAGtoAXIMaster IP核在Vivado中进行AXI总线的高效调试,通过TCL脚本实现寄存器读写,详细展示了设置和执行步骤,并提供了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:JTAG to AXI Master这个IP 核非常好用,在做工程的时候可以直接绕开PS,使用vivado以及tcl指令直接对自己的代码进行调试。

目录

1.JTAG to AXI Master IP

2.TCL指令

参考:


1.JTAG to AXI Master IP

 使用这个IP核,跟axi interconnect连出去,给到虚拟接口(记得在Address Editor里面定义地址,最好与ps端保持一致即可)。这样一来,就可以通过vivado的tcl去进行调试。

 

2.TCL指令

首先打开vivado,连接硬件,需要在tcl框里面定义这些,把下列代码写进文本文件,例如:vernon_lib.tcl

# AXI or AXI Lite access via JTAG

set addr_version        A0262000;
set addr_scratch        A0263ffc;

# ---------------------------------------------------------------------------- #
# Generic Procedures                                                           #
# ---------------------------------------------------------------------------- #

proc rd_axi {reg_addr} {
    create_hw_axi_txn rd [get_hw_axis hw_axi_1] -address $reg_addr -type read -force;
    run_hw_axi rd;
}

proc wr_axi {reg_addr reg_value} {
    create_hw_axi_txn wr [get_hw_axis hw_axi_1] -address $reg_addr -data $reg_value -type write -force
    run_hw_axi wr
}

proc wv_axi {reg_addr reg_value} {
    wr_axi $reg_addr $reg_value
    rd_axi $reg_addr    
}

# ---------------------------------------------------------------------------- #
# Version Register                                                             #
# ---------------------------------------------------------------------------- #
proc rd_version {} {
    rd_axi $::addr_version
}

# ---------------------------------------------------------------------------- #
# Scratch Register                                                             #
# ---------------------------------------------------------------------------- #
proc rw_scratch {} {
    rd_axi $::addr_scratch
    wr_axi $::addr_scratch 12345678
    rd_axi $::addr_scratch
}

现在vivado tcl里面输入上述的文件,例如下面,$scr_path是这个文件的路径:

source $scr_path/vernon_lib.tcl

然后可以用自己建的rd_axi和wr_axi去进行读写操作:

# AXI or AXI Lite access via JTAG
source $scr_path/vernon_lib.tcl
rd_version
rw_scratch
# ------------------------------------------------------------------------------#
# 
# ------------------------------------------------------------------------------#

# # Example: Read Version and Scratch Registers
# rd_axi A0262000
#
# # Example: Write Scratch Register
# wr_axi A0263ffc 12346789
# 
# # Example: Read Scratch Register
# rd_axi A0263ffc

###################################software command##############################
#read fh buff		
wr_axi A0264018  00000001 

#dl 0-3 carry en
wr_axi A0262200  01010101



# bypass dpd cfr
wr_axi A0265ff8  FEEDBEEF  
wr_axi A0265308  00000003

# sample number
wr_axi A026A120  c004B000

wr_axi A026A120  c0096000
#start trig
wr_axi A026A124  00000000 
wr_axi A026A124  00000001

参考:

2022-5-11-在Vivado中用tcl对寄存器进行读写操作-其它文档类资源-CSDN下载

参考资源链接:[Xilinx JTAG2AXI Master IP 使用与设计指南](https://wenku.csdn.net/doc/4mxzhqturn?utm_source=wenku_answer2doc_content) 为了更好地使用Xilinx JTAG to AXI Master IP核,提升系统性能并优化资源利用效率,参考《Xilinx JTAG2AXI Master IP 使用与设计指南》是关键。这份指南详细介绍了如何在Vivado中高效集成和操作JTAG to AXI Master IP核。 首先,在Vivado中,你需要通过IP Catalog来搜索并添加JTAG to AXI Master IP核到你的设计中。IP Catalog中的LogiCORE IP会展示所有可用的IP核,你可以选择适合你设计需求的特定版本和配置。 在自定义和生成IP核时,确保根据你的设计要求选择正确的参数。参数配置对于优化性能和资源使用至关重要。例如,你可以调整AXI接口的宽度和速度,以匹配你的系统要求和FPGA的资源限制。 完成IP核的配置后,你需要在设计中添加必要的约束,如时钟约束和复位策略,以确保IP核与其他系统组件的正确交互。约束文件应详细描述如何将IP核的时钟和复位信号与其他设计部分同步。 在设计流程的模拟阶段,使用Vivado提供的仿真工具来验证IP核的功能。这一步骤可以帮助你发现设计错误,并在实际硬件实现前进行必要的调试。 在进行合成与实现时,你可能需要调整设计以解决时序问题,优化资源使用,并确保满足时钟频率的目标。在这个阶段,分析生成的报告和资源使用情况,以进一步调整设计,优化性能。 最后,使用Vivado提供的示例设计来理解如何创建和发送AXI事务。示例设计可以作为开发你自己的交易逻辑的起点。 通过遵循这些步骤并充分利用《Xilinx JTAG2AXI Master IP 使用与设计指南》中的知识,你可以有效地集成JTAG to AXI Master IP核,提高你的设计性能,同时优化FPGA内部资源的使用。 参考资源链接:[Xilinx JTAG2AXI Master IP 使用与设计指南](https://wenku.csdn.net/doc/4mxzhqturn?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值