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