Intel® Quartus® Prime Standard Edition用户指南: 调试工具

ID 683552
日期 9/24/2018
Public
文档目录

5.7.1. 运行时可重配置选项

当使用Runtime Trigger模式时,您可以更改.stp中的某些设置,而无需重新编译设计。

表 64.  运行时可重配置功能
运行时可重配置设置 描述
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 x n 必须等于样本深度,从而有效利用样本缓存中的空间。

下图显示了触发流程示例描述的分段缓存。

图 84. 使用存储限定符和基于状态的触发器创建的分段缓存总采样深度是固定的,其中m x n必须等于采样深度。

在运行时,您可以修改mn的值。更改触发流程描述中的mn值可调整分段边界,而无需重新编译。

您可以将状态添加到触发流程描述中,并有选择地屏蔽特定状态,并在运行时使用状态标志使能其他状态。

此示例与前面的示例类似,其中插入了其他状态。您可以使用此额外状态指定不使用存储限定符功能的其他触发条件。将状态标志插入条件语句中,以控制触发流程的执行。

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