主要内容

触发器

什么是触发条件?

一个触发条件是定义何时从FPGA捕获数据的逻辑语句。使用触发条件在FPGA上捕获有关感兴趣事件的数据。通过设置捕获事件的多次出现捕获窗口的数量到期望的值。触发条件由一个或多个FPGA信号上的值比较测试组成。例如:

计数器== 100

所有触发器比较都是同步的。当为布尔信号指定边缘条件时,IP核将当前采样值与前一个时钟周期的采样值进行比较。

fifo_full == 'Rising edge'

当条件的所有项在同一时钟周期上都为真时,触发条件就满足了。每个信号只能使用单个值比较。

receiver_state == 3 OR message_detected == 'High'
fifo_cnt == 0 AND fifo_pop == 'High'

在触发器条件中只能使用单一类型的逻辑运算符。你不能混合而且条件。

fifo_empty == '上升边缘' OR fifo_full == '上升边缘' OR memctrl_state == 2
receiver_state == 3 AND message_addr == 148 AND pkt_type == 5

可以在触发条件中使用多个比较操作符。

fifo_empty == 'Rising edge' OR fifo_full != 'LOW' OR memctrl_state == 2
receiver_state == 3 AND message_addr > 148 AND pkt_type >= 5

你可以使用Xx(不在乎值)在触发条件下。在进行比较时,触发器条件忽略使用的位置值X.当触发条件为时0 b1x1,可能的触发条件值为0 b1010 b111

receiver_state == 3 AND message_addr == 148 AND pkt_type == 0b1X1

顺序触发

一个顺序触发允许您在多个阶段给出一组触发条件,以从FPGA捕获指定的数据。使用顺序触发器,可以将数据读取到MATLAB®或仿真金宝app软件®只有在所有指定的触发条件依次发生之后。对于多个触发阶段,请设置最大触发级参数。FPGA数据捕获组件生成器工具的值大于1。最大触发级设置用于提供触发条件的最大触发级数。例如,如果最大触发级是3触发页中的FPGA数据采集工具或在FPGA数据读取器Block最多可以有3个触发阶段。

FPGA数据捕捉屏幕3触发阶段

通过每个阶段中一个或多个信号上匹配的特定值定义触发条件。例如,如果触发级数为3级,且存在10个信号,则可以设置这些触发条件。

  • 第一阶段的触发条件:

    ((signal1 > 10) and (signal3 == true) and (signal7 < 5));
  • 第二阶段触发条件:

    ((signal1 == 0b0110) or (signal4 == 0XXX) or (signal8 < 5));
  • 第三阶段触发条件:

    ((signal2 != 5) and (signal6 == true) and (signal8 == 8));

配置触发条件

在生成时,指定哪些信号可以在触发条件下使用。信号可以是没有捕获数据的触发器,也可以既是触发器又是捕获信号。您可以在捕获时修改触发器条件,使用您指定的任何信号作为触发器。FPGA上的数据捕获IP核接收MATLAB给出的触发定义,并配置片上多路复用器来检测事件。

当你使用FPGA数据采集工具,或FPGA数据读取器块上设置触发条件触发选项卡。表中的每一行都是一个信号的值比较。要组合信号值,请使用触发组合运算符。要在此选项卡上显示信号,必须在生成时将信号指定为触发器。

FPGA数据捕获屏幕显示计数器信号的触发条件

对于一个hdlverifier。FPGADataReader系统对象™,使用setTriggerConditionsetTriggerComparisonOperator,setTriggerCombinationOperator对象的功能。要检查您的配置,请调用displayTriggerCondition对象的功能。

如果没有对任何信号启用触发条件,数据捕获IP核将立即捕获数据。

触发位置

您可以更改触发器检测周期在捕获缓冲区中的相对位置。使用此特性捕获相关数据,无论是在触发事件之前还是之后。

假设您想调试FIFO设计的推送和弹出率。你可以设置触发器信号值fifo_emptyfifo_full

默认情况下,检测到触发器时的时钟周期是捕获缓冲区的第一个样本。IP核从周期开始捕获缓冲区fifo_full更改为高。

要调试fifo_full条件,观察触发条件发生前的信号。在捕获设置中,更改触发位置使用滑块上的tic标记移动到窗口深度的3/4处。例如,如果样本深度是128,捕获窗口的数量是1,并且触发级数那么是1窗口深度是128。触发事件位于该窗口的样本96。IP核捕获一个缓冲区,在触发事件之前包含96个样本,在触发事件之后包含36个样本。此设置捕获显示触发事件的前导和后续的数据。触发事件的位置用垂直光标显示在fifo_full

您可以设置触发位置到0到窗口深度1、包容。当你设置触发位置等于窗口深度-1,最后一个样本对应触发器发生时的周期。

若要观察触发器事件的多次发生,请更改捕获窗口的数量到想要的数字。

在这个例子中,捕获窗口的数量是4,触发级数是1,样本深度是128,并且触发位置是0。HDL IP捕获四个窗口,其中每个窗口深度32个样本,什么时候开始fifo_full更改为高。

另请参阅

工具

对象

相关的例子

更多关于