仅对英特尔可见 — GUID: mwh1410384787779
Ixiasoft
仅对英特尔可见 — GUID: mwh1410384787779
Ixiasoft
2.7.1. 运行时可重配置选项
当使用Runtime Trigger模式时,您可以更改.stp中的某些设置,而无需重新编译设计。
运行时可重配置设置 | 描述 |
---|---|
Basic Trigger Conditions and Basic Storage Qualifier Conditions | 您可以更改成任何基本触发条件值,而无需重新编译所有Trigger条件开启的信号。 |
Comparison Trigger Conditions and Comparison Storage Qualifier Conditions | 所有比较操作数,比较数值和间隔界限值都是运行时可配置的。 您可以在运行时从Comparison切换到Basic OR触发,而无需重新编译。 |
Advanced Trigger Conditions and Advanced Storage Qualifier Conditions | 很多运算符都包括运行时可配置设置。例如,所有比较运算符都是运行时可配置的。可配置的设置在框图中具有白色背景。在Object Properties对话框中开启运行时可配置选项。 |
Switching between a storage-qualified and a continuous acquisition | 在任何符合存储要求的模式(storage-qualified mode)下,都可以切换到连续采集模式,而无需重新编译设计。要启用此功能,请开启disable storage qualifier。 |
State-based trigger flow parameters | 请参考Runtime Reconfigurable Settings, State-Based Triggering Flow |
Runtime Reconfigurable选项使您能够涵盖更广泛的事件示例而无需重新编译设计,从而可以在调试周期节省时间。这可能会对性能和逻辑利用率产生轻微影响。您可以对高级触发条件和基于状态的触发流程参数关闭运行时可重配置性,从而提高性能并降低区域利用率。
要在Setup选项卡中配置.stp文件来防止通常要求重新编译的变更,请在节点列表上方选择Allow Trigger Condition changes only。
在Incremental Route锁定模式中,Allow incremental route changes only,限制于仅要求Incremental Route编译的变更,而不是一个完全编译。
本示例通过提供一个使能了存储限定的基于状态的触发流程描述,并说明如何在运行时修改采集窗口的大小而无需重新编译,从而展示了Runtime Reconfigurable功能的潜在用例。本示例提供了一个与分段缓存等效的功能,具有分段大小是运行时可重配置的单一触发条件。
state ST1: if ( condition1 && (c1 <= m) )// each "segment" triggers on condition // 1 begin // m = number of total "segments" start_store; increment c1; goto ST2: End else (c1 > m ) // This else condition handles the last // segment. begin start_store Trigger (n-1) end state ST2: if ( c2 >= n) //n = number of samples to capture in each //segment. begin reset c2; stop_store; goto ST1; end else (c2 < n) begin increment c2; goto ST2; end
下图显示了触发流程示例描述的分段缓存。
在运行时,您可以修改m和n的值。更改触发流程描述中的m和n值可调整分段边界,而无需重新编译。
您可以将状态添加到触发流程描述中,并有选择地屏蔽特定状态,并在运行时使用状态标志使能其他状态。
此示例与前面的示例类似,其中插入了其他状态。您可以使用此额外状态指定不使用存储限定符功能的其他触发条件。将状态标志插入条件语句中,以控制触发流程的执行。
state ST1 : if (condition2 && f1) // additional state added for a non-segmented // acquisition set f1 to enable state begin start_store; trigger end else if (! f1) goto ST2; state ST2: if ( (condition1 && (c1 <= m) && f2) // f2 status flag used to mask state. Set f2 // to enable begin start_store; increment c1; goto ST3: end else (c1 > m ) start_store Trigger (n-1) end state ST3: if ( c2 >= n) begin reset c2; stop_store; goto ST1; end else (c2 < n) begin increment c2; goto ST2; end