vivado ila 使用高级触发器模式

使用高级触发器模式
ILA 核可在核生成时或插入时进行配置 以包含下列高级触发器功能
• 含最多 16 种状态的触发器状态机
• 每个状态均包含单向、双向或三向条件分支。
• 在触发器状态机程序中最多可使用 4 个计数器来保留多个事件的追踪记录。
• 在触发器状态机程序中最多可使用 4 个标记来表示某些分支的发生时间。
• 此状态机可执行“ goto ”、“ trigger ”及各种计数器和标记相关的操作。
如果硬件器件内运行的设计中的 ILA 核包含高级触发器功能 那么可通过将 ILA 仪表板的“ ILA 属性 (ILA Properties)
窗口中的触发器模式 (Trigger mode) 控制设置为 ADVANCED_ONLY ADVANCED_OR_TRIG_IN 来启用高级触发器模
式功能。
指定触发器状态机程序文件
将“触发器 (Trigger) ”模式设置为 ADVANCED_ONLY ADVANCED_OR_TRIG_IN ILA 仪表板中会发生 2 项更
1. 在“ ILA 属性 (ILA Properties) ”窗口中会显示名为 Trigger State Machine 的新控件
2. “基本触发器设置 (Basic Trigger Setup) ”窗口将被替换为“触发器状态机代码编辑器 (Trigger State Machine code
editor) ”窗口。
如果您首次指定 ILA 触发器状态机程序 那么“ Trigger State Machine code editor ”窗口将如下图所示。
要创建新的触发器状态机 请单击“ Create new trigger state machine ”链接 否则 请单击“ Open existing trigger
state machine ”链接以打开触发器状态机程序文件 扩展名为 .tsm 。您还可以使用“ Trigger state machine ”文本
文件和 / ILA 仪表板的“ ILA Properties ”窗口中的“ Browse ”按钮来打开现有触发器状态机程序文件。
编辑触发器状态机程序
如果您创建了新的触发器状态机程序文件 那么默认情况下将以简单触发器状态机来填充触发器状态机代码编辑器窗口
请参阅下图
简单默认触发器状态机程序设计为对于任何 ILA 核配置都有效 与调试探针或触发器设置无关。这意味着您可针对 ILA
核单击“ Run Trigger 而无需修改触发器状态机程序。
但您可能想要修改触发器状态机程序以实现某些高级触发条件。位于上图所示简单状态机顶部的注释块提供了有关如何
Vivado IDE 中使用内置语言模板来构造触发器状态机程序的指示信息 请参阅下图 。在“触发器状态机语言描
述”中提供了 ILA 触发器状态机语言的完整描述 包括示例
编译触发器状态机
每次运行 ILA 触发器时 都会编译触发器状态机。如果您想编译触发器状态机而不运行或装备 ILA 触发器 请单击
ILA 仪表板 (ILA Dashboard) ”中的“编译触发器状态机 (Compile trigger state machine) ”按钮 如下图所示
启用触发器输入和输出端口
ILA 核可在核生成时配置为包含专用触发器输入端口 TRIG_IN TRIG_IN_ACK 和专用触发器输出端口 TRIG_OUT
TRIG_OUT_ACK 。如果 ILA 核启用触发器输入端口 那么您可使用以下“触发器模式 (Trigger Mode) ”设置以在
TRIG_IN 端口上发生事件时触发
BASIC_OR_TRIG_IN 用于在 ILA 核的 TRIG_IN 管脚执行逻辑 OR 操作并且目标模式为 BASIC_ONLY 触发器模式时
触发 ILA 核。
ADVANCED_OR_TRIG_IN 用于在 ILA 核的 TRIG_IN 管脚执行逻辑 OR 操作并且目标模式为 ADVANCED_ONLY
触发器模式时触发 ILA 核。
TRIG_IN_ONLY 用于在 ILA 核的 TRIG_IN 管脚从低位转换至高位时触发 ILA 核。
如果 ILA 核启用触发器输出端口 那么您可使用以下 TRIG_OUT 模式来控制将触发事件传输至 TRIG_OUT 端口的过
DISABLED 禁用 TRIG_OUT 端口。
TRIGGER_ONLY 启用将基本 / 高级触发器条件的结果传输至 TRIG_OUT 端口的过程。
TRIG_IN_ONLY TRIG_IN 端口传输至 TRIG_OUT 端口。
TRIGGER_OR_TRIG_IN 启用将基本 / 高级触发器条件的逻辑 OR 操作结果和 TRIG_IN 端口传输至 TRIG_OUT 端口
的过程。
配置采集模式设置
ILA 核状态为“触发前 (Pre-Trigger) ”、“等待触发 (Waiting for Trigger) ”或“触发后 (Post-Trigger) ”时 即可采集
数据样本 请参阅“查看触发和采集设置”章节了解更多详细信息。“采集 (Capture) ”模式控制用于选择采集每个样
本前的条件
• “ ALWAYS 在给定时钟周期内存储数据样本 忽略任何采集条件
• “ BASIC 仅当采集条件求值结果为“ true ”时 才在给定时钟周期内存储数据样本
您也可以使用 set_property Tcl 命令来更改 ILA 核的采集模式。例如 要将 ILA hw_ila_1 的采集模式更改为
BASIC 请使用以下命令
set_property CONTROL.CAPTURE_MODE BASIC [get_hw_ilas hw_ila_1]
相关信息
查看触发和采集状态
使用基本采集模式
使用基本采集模式来描述采集条件 即由参与其中的调试探针比较器组成的全局布尔公式。使用“基本采集设置 (Basic
Capture Setup) ”窗口 请参阅下图 来创建此采集条件和调试探针比较值。
配置“基本采集设置”窗口
在“基本采集设置 (Basic Capture Setup) ”窗口中配置调试探针和基本采集条件的过程与在“基本触发器设置 (Basic
Trigger Setup) ”窗口中处理调试探针的过程非常类似。
• 如需了解有关在“ Basic Capture Setup ”窗口中添加探针的信息 请参阅“在‘基本触发器设置’窗口中添加探
针”部分。
• 如需了解有关在“ Basic Capture Setup ”窗口中的每个探针上设置比较值的信息 请参阅“ ILA 探针比较值设置”
部分。
• 如需了解有关在“ Basic Capture Setup ”窗口中设置基本采集条件的信息 请参阅“设置基本触发条件”部分。主
要差异之一在于用于控制采集条件的 ILA 核属性称为 CONTROL.CAPTURE_CONDITION
相关信息
在“基本触发器设置”窗口中添加探针
ILA 探针比较值设置
设置基本触发条件
设置采集窗口数量
ILA 采集数据缓存可分为 1 个或多个采集窗口。每个窗口的深度均为 2 次幂 它表示样本数且范围为 1 ((( 缓存大
) / ( 窗口数 )) - 1) 。例如 如果 ILA 数据缓存深度为 1024 个样本 且分为 4 个采集窗口 那么每个窗口深度最大为
256 个样本。每个采集窗口都有各自独立的触发器掩码 对应于触发器事件 此类事件会导致填充采集窗口。
注释 不支持每个 ILA 缓存大小等于采集窗口数。
提示 请在整个 ILA 数据采集缓存填满之前单击“停止触发器 (Stop Trigger) 以上传并显示已填充的所有采
集窗口。例如 如果 ILA 数据缓存分为 4 个窗口 其中 3 个已填充数据 那么单击“ Stop Trigger ”就会停止
ILA 然后上传并显示 3 个已填充的采集窗口。
下表显示了将“采集窗口数 (Number of Capture Windows) ”设为大于 1 的值并将“触发器位置 (Trigger Position) ”设
0 Vivado 运行时软件与硬件之间的交互。
下表显示了将“ Number of Capture Windows ”设为大于 1 的值 并将“ Trigger Position ”设为大于 0 的值时 Vivado
运行时软件与硬件之间的交互。
在采集窗口中设置触发器位置
“采集模式设置 (Capture Mode Settings) ”窗口中的“触发器位置控制 (Trigger position control) ”或“ ILA 核属性 (ILA
Core Properties) ”窗口中的“ Trigger Position ”属性可用于设置采集的数据窗口中的触发器标记的位置。您可将触发器
位置设置为采集的数据窗口内的任意样本编号。例如 如果采集的数据窗口深度为 1024 个样本
• 样本编号 0 对应于采集的数据窗口中的第一个 最左侧 样本。
• 样本编号 1023 对应于采集的数据窗口中的最后一个 最右侧 样本。
• 样本编号 511 512 对应于采集的数据窗口中的 2 个“中心”样本。
您也可以使用 set_property Tcl 命令来更改 ILA 核触发器位置
set_property CONTROL.TRIGGER_POSITION 512 [get_hw_ilas hw_ila_1]
设置采集窗口的数据深度
使用“采集模式设置 (Capture Mode Settings) ”窗口中的“数据深度控制 (Data Depth control) ”或“ ILA 核属性 (ILA
Core Properties) ”窗口中的“采集数据深度 (Capture data depth) ”属性来设置 ILA 核采集的数据窗口的数据深度。您
可将数据深度设置为从 1 ILA 核的最大数据深度之间的任意 2 次幂值 该值在核生成或插入时间之间设置。
注释 请参阅“在调试核上修改属性”部分 以详细了解在使用网表插入探测流程添加到设计中的 ILA 核上 如何设置
最大采集缓存数据深度。
您也可以使用 set_property Tcl 命令来更改 ILA 核数据深度
set_property CONTROL.DATA_DEPTH 512 [get_hw_ilas hw_ila_1]
  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vivado ILA(Integrated Logic Analyzer)是一种用于调试和分析FPGA设计的工具。下面是使用Vivado ILA的简要教程: 1. 将ILA模块添加到设计中:根据引用\[1\]中的说明,将ILA模块添加到需要进行调试的模块中。可以参考夏宇闻老师的《Verilog经典教程第三版》了解具体的Verilog语法。 2. 生成比特流文件:在Vivado中,点击"Generate Bitstream"生成比特流文件。 3. 打开硬件调试:点击"Open Hardware Manager"打开硬件调试界面。 4. 添加调试语句:根据引用\[1\]中的说明,在需要进行调试的模块中添加调试语句(*MARK_DEBUG="true"* )。 5. 配置ILA:在Vivado中,打开IP核目录(IP Catalog),搜索ILA并选择相应的ILA IP核。根据引用\[3\]中的说明,选择需要测量的信号数和采样数据深度等参数。 6. 连接ILA:将ILA IP核实例化模板添加到设计中,并根据需要连接到需要测量的信号。 7. 生成比特流文件:重新生成比特流文件,以包含ILA的配置。 8. 下载比特流文件:将生成的比特流文件下载到FPGA板上。 9. 打开ILA界面:在Vivado的硬件调试界面中,打开ILA界面。可以看到已经命名的ILA,并在左边的模块框内看到对应的端口。 10. 进行调试:根据需要,设置触发条件和采样时机,并开始进行调试和分析。 以上是使用Vivado ILA的简要教程,希望对您有帮助。 #### 引用[.reference_title] - *1* *2* *3* [FPGA学习 Vivado使用篇之ILA(逻辑分析仪)](https://blog.csdn.net/m0_53606280/article/details/123600212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值