FPGAモジュールには、基本のI/Oを実行するための関数が含まれています。ただし、カスタマイズされたI/O機能が必要なアプリケーションを使用する場合もあります。その場合、FPGA I/Oノードを構成ブロックとして使用し、トリガやカウンタなどのカスタマイズしたI/Oアプリケーションを作成します。

トリガを作成する

多くのアプリケーションでは、操作を行う前にトリガを待機する必要があります。FPGA I/Oメソッドノードと「立ち上がりエッジで待機」メソッドを使用して、単一のデジタル入力でトリガを待機します。

メモ 利用できるI/Oリソースおよび関連メソッドは、ターゲットおよび構成により異なります。利用可能なメソッドおよびI/Oリソースについては、特定のFPGAターゲットのハードウェアドキュメントを参照してください。

「立ち上がりエッジで待機」メソッドは、指定した条件がデジタル入力で満たされるまで待機します。以下の図に示すように、FPGA I/Oメソッドノードをシーケンスストラクチャの1番目のフレームに配置し、タスクのLabVIEWコードを次のフレームに配置します。

また、より上級なトリガイベントをFPGA I/Oノードから作成することもできます。たとえば、以下の図に示すように、複数のデジタルラインが指定条件を満たす場合のみトリガが発生するアプリケーションが必要な場合があります。

デジタル入力リソースで構成されたFPGA I/Oノードをシングルサイクルタイミングループに配置し、デジタル入力がトリガパターンと一致する場合のみにシングルサイクルタイミングループが終了するように構成できます。上記の例の「立ち上がりエッジで待機」メソッドと同じように、シングルサイクルタイミングループをシーケンスストラクチャの最初のフレームに配置します。

Whileループを使用して、同じ方法でアナログトリガを実行できます。アナログ入力I/Oリソースで構成されたFPGA I/Oノード、そして「比較」関数をWhileループに配置して、アナログ入力値がある状態を満たす場合にトリガするように構成できます。

カウンタを作成する

カウンタは、簡易なイベントカウンタから、複数の入出力を持つ複雑な信号測定を伴うものまであります。FPGA I/Oメソッドノード関数をWhileループで使用して、簡易なイベントカウンタを作成できます。たとえば、以下の図に示すように「立ち上がエッジで待機」メソッドを使用して立ち上がりエッジがデジタル入力端子で発生するのを待機させることができます。

FPGA I/Oメソッドノードがエッジを検出すると、ブロックダイアグラムはカウンタ値を増分し、カウンタ値をWhileループのシフトレジスタに格納します。フロントパネルの表示器またはローカル変数を使用して、カウンタ値を表示します。

メモ 利用できるI/Oリソースおよび関連メソッドは、ターゲットおよび構成により異なります。利用可能なメソッドおよびI/Oリソースについては、特定のFPGAターゲットのハードウェアドキュメントを参照してください。

また、より上級なカウンタをFPGA I/O関数から構築することもできます。たとえば、以下の図に示すように、カウントアップ、カウントダウン、そしてゲート入出力がアプリケーションで必要な場合があります。

上記のブロックダイアグラムでは、カウンタ値は立ち上がりエッジがカウントアップで発生する場合に増分して、カウントダウンで発生する場合に減分します。ゲートゲートがHIGHの場合にカウントアップおよびカウントダウンによってカウンタ値を変更されないようにします。カウントアップカウントダウン、およびゲートは、FPGAターゲット上の特定のデジタルI/Oリソースに付けられた名前です。出力は、カウンタ値が4の倍数の場合にアサートされます。LabVIEWコードで簡単なブール条件判断を行い、カウンタが上または下にカウント、または同じであるかを判断できます。また、LabVIEWコードで数学的な判断を行い、出力がアサートされるタイミングを判断することもできます。

以下の図に示すように、FPGA I/Oメソッドノードを使用して、入力信号の測定を行うことができます。たとえば、入力信号の周期を測定する必要がある場合があります。FPGA I/Oメソッドノードをシーケンスストラクチャの最初のフレーム、そしてシーケンスストラクチャの次のフレームに「ティックカウント」Express VIを配置します。そして、シーケンスストラクチャをWhileループに配置します。「ティックカウント」VIによって返された現在の値をシフトレジスタに配線して、Whileループの次の反復の入力になるようにします。そして、現在の時間から前の時間を引いて、入力信号の周期を判断します。

ヒント シングルサイクルタイミングループを使用して、実行速度を向上し、FPGAの使用量およびジッタをカウンタアプリケーションで減らします。