自学内容网 自学内容网

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 核中已填入采集的数据样本。

原文地址:https://blog.csdn.net/cckkppll/article/details/137978664

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!