vivado 使用 Tcl 命令来与 JTAG-to-AXI Master 核进行交互、使用 Tcl 命令来执行 ILA 测量
·
使用 Tcl 命令来与 JTAG-to-AXI Master 核进行交互
以下示例提供了与下列系统示例进行交互的 Tcl 命令脚本:
• 1 条 KC705 评估板的 Digilent JTAG-SMT1 电缆(序列号 12345),可通过 localhost:3121 上运行的 Vivado
hw_server 来访问。
• 在 KC705 评估板上的 XC7K325T 器件中运行的设计内包含单个 JTAG-to-AXI Master 核。
• JTAG-to-AXI Master 核位于基于 AXI 的系统中,此系统包含 1 个 AXI BRAM Controller Slave 核。
Tcl 命令脚本示例
# Connect to the Digilent Cable on localhost:3121
connect_hw_server -url localhost:3121
current_hw_target [get_hw_targets */xilinx_tcf/Digilent/12345]
open_hw_target
# Program and Refresh the XC7K325T Device
current_hw_device [lindex [get_hw_devices] 0]
refresh_hw_device -update_hw_probes false [lindex [get_hw_devices] 0]
set_property PROGRAM.FILE {C:/design.bit} [lindex [get_hw_devices] 0]
set_property PROBES.FILE {C:/design.ltx} [lindex [get_hw_devices] 0]
program_hw_devices [lindex [get_hw_devices] 0]
refresh_hw_device [lindex [get_hw_devices] 0]
# Reset the JTAG-to-AXI Master core
reset_hw_axi [get_hw_axis hw_axi_1]
# Create a read transaction bursts 128 words starting from address 0
create_hw_axi_txn read_txn [get_hw_axis hw_axi_1] -type read \
-address 00000000 -len 128
# Create a write transaction bursts 128 words starting at address 0
# using a repeating fill value of 11111111_22222222_33333333_44444444
# (where LSB is to the left)
create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -type write \
-address 00000000 -len 128 -data {11111111_22222222_33333333_44444444}
# Run the write transaction
run_hw_axi [get_hw_axi_txns wrte_txn]
# Run the read transaction
run_hw_axi [get_hw_axi_txns read_txn]
使用 Tcl 命令来执行 ILA 测量
以下示例提供了与下列系统示例进行交互的 Tcl 命令脚本:
• 1 条 KC705 评估板的 Digilent JTAG-SMT1 电缆(序列号 12345),可通过 localhost:3121 上运行的 Vivado CSE
服务器来访问。
• 在 KC705 评估板上的 XC7K325T 器件中运行的设计内包含单个 ILA 核。
• ILA 核包含名为 counter[3:0] 的探针。
Tcl 命令脚本示例
# Connect to the Digilent Cable on localhost:3121
connect_hw_server -url localhost:3121
current_hw_target [get_hw_targets */xilinx_tcf/Digilent/12345]
open_hw_target
# Program and Refresh the XC7K325T Device
current_hw_device [lindex [get_hw_devices] 0]
refresh_hw_device -update_hw_probes false [lindex [get_hw_devices] 0]
set_property PROGRAM.FILE {C:/design.bit} [lindex [get_hw_devices] 0]
set_property PROBES.FILE {C:/design.ltx} [lindex [get_hw_devices] 0]
program_hw_devices [lindex [get_hw_devices] 0]
refresh_hw_device [lindex [get_hw_devices] 0]
# Set Up ILA Core Trigger Position and Probe Compare Values
set_property CONTROL.TRIGGER_POSITION 512 [get_hw_ilas hw_ila_1]
set_property COMPARE_VALUE.0 eq4'b0000 [get_hw_probes counter]
# Arm the ILA trigger and wait for it to finish capturing data
run_hw_ila hw_ila_1
wait_on_hw_ila hw_ila_1
# Upload the captured ILA data, display it, and write it to a file
current_hw_ila_data [upload_hw_ila_data hw_ila_1]
display_hw_ila_data [current_hw_ila_data]
write_hw_ila_data my_hw_ila_data [current_hw_ila_data]
启动时触发
“启动时触发 (Trigger at Startup)”功能用于在设计 .bit 文件中配置 ILA 核的触发器设置,完成 ILA 核的预装备,以
便在器件启动后立即触发。只需将一般情况下应用于硬件设计中运行的 ILA 核的各项触发器设置都应用于已实现的设计
中的 ILA 核即可完成此设置。
重要提示!以下使用“Trigger at Startup”的流程假定您的硬件中的 ILA 设计有效且正常运行,并且综合流程期
间 ILA 核尚未扁平化。
要使用“Trigger at Startup”功能,请执行以下步骤:
1. 照常运行 ILA 流程直至完成首轮运行,以设置触发器条件。
a. 打开目标、配置器件并启动 ILA 仪表板 (ILA Dashboard)。
b. 在 ILA Dashboard 中输入 ILA 核的触发器公式。
2. 在 Vivado Tcl 命令行中,导出 ILA 核的触发器寄存器映射文件。此文件包含所有寄存器设置,用于发回到已实现的
网表上。其输出是单一文件。
% run_hw_ila -file ila_trig.tas [get_hw_ilas hw_ila_1]
3. 返回并打开 Vivado IDE 中先前已实现并已布线的设计。根据工程流程,可通过 2 种方法来执行此操作。
a. 工程模式:使用 Flow Navigator 打开已实现的设计。
b. 非工程模式:打开已布线的检查点:%open_checkpoint <file>.dcp
4. 在“已实现的设计 (Implemented Design)”Tcl 控制台上,将触发器设置应用于存储器中的当前设计,即您的已布
线的网表。
%apply_hw_ila_trigger ila_trig.tas
注释:如果出现 ERROR 指示 ILA 核在综合期间已扁平化,那么您将需要重新生成设计并强制综合,以便为 ILA 核
保留层级。请确保您的硬件中的 ILA 设计有效且正常运行,并且综合流程期间 ILA 核尚未扁平化。
5. 在“Implemented Design”Tcl 控制台中,使用“Trigger at Startup”设置来编写比特流。
重要提示!要选择已布线的设计更改,必须在 Tcl 命令控制台中执行以下操作:write_bitstream
trig_at_startup.bit
6. 返回“Hardware Manager”并使用上一步中生成的新 .bit 文件进行重新配置。您必须通过 GUI 或 Tcl 命令来为
已更新的 .bit 文件设置属性。请确保将新的 .bit 文件设置为在硬件工具中执行配置时所用的文件。
a. 在硬件树中选择器件。
b. 指定步骤 5 中生成的 .bit 文件。
7. 使用新的 .bit 文件执行器件编程。
编程完成后,应在启动时立即装备新的 ILA 核。您应可在 ILA 核的“触发采集状态 (Trigger Capture Status)”中看
到相关指示信息。如果发生触发或采集事件,则表示现在 ILA 核中已填入采集的数据样本。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)