インテル® Quartus® Primeプロ・エディション・ユーザーガイド: デバッグツール

ID 683819
日付 9/30/2019
Public
ドキュメント目次

2.7.1. ランタイム・リコンフィグレーションが可能なオプション

Runtime Triggerモードを使用する場合、.stp 内のいくつかの設定の変更には、デザインのコンパイルは不要です。

表 13.  ランタイム・リコンフィグレーションが可能な機能
ランタイム・リコンフィグレーションが可能な設定 説明
Basic Trigger ConditionおよびBasic Storage Qualifier Condition トリガー条件がオンになっている信号はすべて、再コンパイルせずにどのBasicトリガー条件値にでも変更できます。
Comparison Trigger ConditionおよびComparison Storage Qualifier Condition

すべての比較オペランド、比較数値、インターバル境界値は、ランタイム・コンフィグレーションが可能です。

ComparisonトリガーからBasic ORトリガーにランタイムに切り替える場合、再コンパイルは不要です。

Advanced Trigger ConditionおよびAdvanced Storage Qualifier Condition 演算子の多くには、ランタイム・コンフィグレーションが可能な設定が含まれています。例えば、すべての比較演算子はランタイム・コンフィグレーションが可能です。コンフィグレーション可能な設定の表示は、ブロック図内で白い背景になります。このランタイム・コンフィグレーションが可能なオプションを、Object Propertiesダイアログボックスでオンにします。
Storage-qualifiedとContinuous acquisitionの切り替え Storage-qualifiedモードでのContinuous captureモードへの切り替えには、デザインの再コンパイルは必要ありません。この機能をイネーブルするには、disable storage qualifierをオンにします。
State-basedトリガーフローのパラメーター State-basedトリガーフローでランタイム・リコンフィグレーションが可能な設定を参照してください。

Runtime Reconfigurableオプションを使用すると、デバッグサイクル時間の節約が、より広範のイベントのシナリオを網羅することで可能になります。このとき、デザインの再コンパイルは不要です。パフォーマンスおよびロジック使用量に多少の影響が生じることがあります。Advancedトリガー条件およびstate-basedトリガーフロー・パラメーターに対するランタイム・リコンフィグレーション機能をオフにして、パフォーマンスを向上させ、エリア使用量を低減します。

.stp ファイルのコンフィグレーションを行って、通常は再コンパイルが必要となる変更を防止するには、Setupタブでノードリストの上のAllow Trigger Condition changes onlyを選択します。

Incremental Routeのロックモードでは、Allow incremental route changes onlyによる制限のため、変更できるのはフルコンパイルではなくIncremental Routeだけを必要とする場合です。

次の例で示すのは、Runtime Reconfigurable機能に使用可能なユースケースです。Storage qualifiedがイネーブルされたState-basedトリガーフローの記述および、キャプチャウィンドウのサイズ変更を再コンパイルなしで行う方法を示しています。この例の同等機能は、単一のトリガー条件を持つセグメント化バッフーに対するもので、そのセグメントサイズはランタイム・リコンフィグレーションが可能です。

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 は、サンプル深度と等しいものにして、サンプルバッファーのスペースを効率的に使用できるようにしてください。

次の図で表すセグメント化バッファーは、トリガーフロー例による記述です。

図 59. Storage QualifierとState-Basedトリガーを使用して作成したセグメント化バッファーサンプル深度の合計は固定されています。m x n はサンプル深度と等しくなければいけません。

実行中、 mn の値は変更可能です。トリガーフロー記述で mn の値を変更すると、セグメント境界の調整が再コンパイルなしでできます。

ステートをトリガーフローの記述に追加し、特定のステートを選択してマスクアウトし、ステータスフラグを使用して実行時に他のステートをイネーブルすることが可能です。

次の例は、前の例に追加のステートが挿入されたものです。この追加ステートを使用して、Storage qualifier機能を使用しない別のトリガー条件を指定します。ステータスフラグを条件文に挿入するために、トリガーフローの実行を制御します。

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