NI 658xでクロック信号をインポートまたはエクスポートする

更新しました Feb 20, 2025

環境

ハードウェア

  • NI-6581
  • NI-6581B
  • NI-6583
  • NI-6584
  • NI-6585
  • NI-6585B
  • NI-6587
  • NI-6589

ソフトウェア

  • LabVIEW FPGA Module
  • LabVIEW

ドライバ

  • NI FlexRIO

  • NI 658xアダプタモジュールを使用してクロックをインポートまたはエクスポートしたいと考えています。これらのクロック信号を設定して使用するにはどうすればよいですか?
  • NI 658x で複数のクロック信号をインポートできますか?

NI 658xアダプタモジュールを使用してクロック信号をインポートまたはエクスポートする方法について説明します。FPGAベースクロックおよび/またはCLIPクロックとして使用するために、これらの信号を適切に構成する必要があります。FPGAベースクロックにはハードウェアおよびソフトウェアの制限があるため、以下の注意事項を確認してください。

注意事項: PXIe-797x FPGAモジュール(Kintex-7 FPGAを使用)は、NI 658xアダプタモジュールの外部クロックコネクタにアクセスできないため、外部クロックソースをFPGAベースクロックとして使用することはできません。一方、PXI-795xおよびPXIe-796x FlexRIO FPGAモジュール(Virtex-5 FPGAを使用)は、外部クロックソースをFPGAベースクロックとして使用できます。ただし、NI FlexRIOドライババージョン15.0以降では、PXI-795xおよびPXIe-796xカードでFPGAベースクロックとして使用するためのIOモジュールクロック信号が廃止されました。FPGA VIで「IOモジュールクロック」FPGAベースクロックを使用しようとすると、コンパイルが失敗します。そのため、PXI-795xまたはPXIe-796xを使用している場合、または互換性のあるバージョンのドライバを使用しているPXIe-797xを使用している場合、クロックをCLIPクロックとしてのみインポートできます。CLIPクロックとしてクロックソースをインポートする手順は、「CLIPクロックとしてクロックをインポートする」セクションに記載されています。CLIPクロックとしてインポートすることによるパフォーマンスの変化はありません。利用可能なベースクロックの詳細については、FlexRIOモジュラーI/O FPGAモジュールのベースクロックリソースを参照してください。


注:ハードウェアアーキテクチャを考慮すると、Kintex-7 FPGA を使用する PXIe-797x FPGA モジュールは、NI-658x アダプタモジュールの外部クロックコネクタにアクセスできないため、外部クロックソースを外部クロックとして使用できません。 FPGA のベースクロックはすべて。一方、Virtex-5 FPGA を使用する PXI-795x および PXIe-796x FlexRIO FPGA モジュールでは、外部クロック ソースを FPGA ベース クロックとして使用できます。ただし、NI FlexRIOドライババージョン15.0以降、PXI-795xおよびPXIe-796xカードでFPGAベースクロックとして使用する外部クロックをインポートするために使用されるIOモジュールクロック信号は非推奨になりました。 FPGA VIで「IOモジュールクロック」FPGAベースクロックを使用しようとすると、コンパイルは失敗します。したがって、バージョン15.0より新しいNI FlexRIOドライバをPXI-795xまたはPXIe-796x、またはPXIe-797xと互換性のあるバージョンのドライバで使用している場合は、クロックをCLIPクロックとしてのみインポートできます。その手順は、 「クロックを CLIP クロックとしてインポートする」セクションに記載されています。クロック ソースを CLIP クロックとしてインポートしても、FPGA ベース クロックとしてインポートする場合と比較してパフォーマンスに変化はありません。使用可能なベースクロックの詳細については、「FlexRIO モジュラー I/O FPGA モジュールのベースクロックリソース」を参照してください。

 

FPGAベースクロックとしてクロックをインポートする

*PXI-795xおよびPXIe-796x FPGAモジュールでのみ利用可能で、NI FlexRIOドライババージョン14.5以下を使用している場合に限ります。詳細な説明については、上記の注意事項を参照してください。

クロック信号を658xモジュールのSTROBEまたはGLOBAL CLKピンを介してインポートして、FPGAベースクロックとして使用できます。このクロックはFPGAコード内のタイミングソースとして使用できます。コネクタごとに1つのクロック入力ピンがあります。各モジュールの外部信号をインポートするために使用されるピンについては、モジュールのマニュアルまたはCLIPリファレンスを参照してください。例えば、NI-6585Bモジュールの外部クロックソースのピンは、各コネクタのピン26および27です。


658x モジュールの STROBE または GLOBAL CLK ピンを介してクロック信号をインポートし、FPGA ベース クロックとして使用できます。このクロックは、FPGA コード内でタイミング ソースとして使用できます。コネクタごとに 1 つのクロック入力ピンがあります。各モジュールの外部信号のインポートにどのピンが使用されているかは、モジュールのマニュアルまたは CLIP リファレンスを参照して確認できます。たとえば、NI-6585B モジュールの外部クロックソースのピンは、各コネクタのピン 26 と 27 になります。

6585B 外部クロック ピン.PNG


NI-6583モジュールの場合、LVDSコネクタクロックソースの外部クロックピンはピン62および63です。

6583 外部クロック ピン.PNG

IOモジュールクロック/ストローブラインの構成

  1. FPGAプロジェクトでFlexRIOターゲットを右クリックし、「新規作成」»「FPGAベースクロック」を選択します。

FPGAベースクロックの作成.png
  1. FPGAベースクロックのプロパティウィンドウで、クロック信号の名前を選択し、クロックリソースの条件を構成します。
FPGA ベースクロック.PNG を選択します。
 
LabVIEWプロジェクトウィンドウのターゲットの下に、新しく作成されたFPGAベースクロックが表示されます。
658x FPGA ベース クロック.PNG

IOモジュールクロック/ストローブラインの使用

  1. FPGA VIのブロックダイアグラムで、関数パレットから「構造」»「タイムド構造」»「FPGAクロック定数」を選択します。
  1. FPGAクロック定数をタイムドループの入力に接続し、ドロップダウンメニューから以前に構成したクロックを選択します。クロックの名前が表示されているエントリを選びます。
685x Clk 定数を追加.PNG
 


CLIPクロックとしてクロックをインポートする

外部クロックを使用してCLIPを駆動することができます。これは、PXIe-797xモジュールのように外部クロックをFPGAベースクロックとして使用できない場合に特に便利です。外部CLIPクロックの変数名は、使用しているモジュールおよびCLIPバージョンによって異なりますが、LabVIEWプロジェクトウィンドウのIOモジュールツリーの下にあります。例えば、NI-6585Bを「DDRコネクタ」CLIPと共に使用する場合、「DDCx_ClockIn」変数を使用します。

6585B IO モジュール Clk.PNG


プログラムでこのクロックを使用するには、上記の「IOモジュールクロック/ストローブラインの使用」セクションで説明した手順と同じ手順を使用しますが、IOモジュールからクロックを選択します。例えば、NI-6585Bを「DDRコネクタ」CLIPと共に使用する場合、次のようになります。

6585B IO モジュール クロック BD.PNG


NI-6585B の「DDR コネクタ」クリップなどの一部の CLIP では、信号が特定のクロックに同期されるように、これを IO モジュールのクロック選択として設定する必要がある場合もあります。次の手順では、例として「DDR コネクタ」クリップを備えた NI-6585B を使用してこれを行う方法を示します。

  1. IOモジュールを右クリックして「プロパティ」を選択します。
6585B IO モジュールのプロパティ.png
  1. クロック選択タブで、接続オプションをCLIPクロックに一致するように変更します。
6585B IO モジュールのクロック選択.png
  1. ウィンドウの下部にある「OK」をクリックします。

 

クロックのエクスポート

658xアダプタモジュールからDDCクロックアウトラインでクロックを出力できます。コネクタごとに1つのDDCクロックアウトライン(ピン33)、DDCAクロックアウト、およびDDCBクロックアウトがあります。FPGAからクロックをエクスポートするかどうかを制御する2つの信号、DDCA_ClockOut_EnableおよびDDCB_ClockOut_Enableがあります。

DDCクロックアウトラインの構成

  1. FPGAプロジェクトでIOモジュールを右クリックし、「プロパティ」を選択します。
  2. 各ラインでエクスポートする内部クロックを選択します。

DDCクロックアウトラインの使用

  1. 関数パレットで「FPGA I/O」»「I/Oノード」を選択します。
  1. DDCA_ClockOut_EnableまたはDDCB_ClockOut_Enable信号をTrueに設定します。
ddca_clk_out_enable.PNG

追加情報

FPGAクロック信号は通常のデジタルロジックよりも厳しい制約と精度要件があるため、クロック信号はCLIPで定義されたメカニズムを介してのみインポートまたはエクスポートできます。これにより、ユーザーはクロック信号を2つだけインポートまたはエクスポートすることが制限されます。ここでの提案以外の方法でクロック信号にアクセスする必要がある場合、CLIPのI/Oパスを定義するためにCLIPの変更が必要ですが、これはNIによってサポートされていません。ただし、VHDLプログラミングを通じて行うことができます。これは、入力クロックの反転などの追加機能にも適用されます。

PXIe-797x FPGAモジュール、またはNI FlexRIOドライババージョン15.0以降を使用しているPXI-795xおよびPXIe-796x FPGAモジュールを使用する場合、658xからの外部クロックをFPGAのベースクロックとして使用することはできません。ただし、同じピンからの外部クロックを使用して、FPGAダイアグラム上のタイムドループのソースとしてCLIPクロックを駆動することはできます。CLIPクロックは外部信号によって直接駆動され、外部クロックソースとCLIPクロックの間にPLLはありません。外部クロックが停止すると、CLIPクロックも停止します。これにより、外部クロックが停止している間にCLIPクロックドメインで制御/インジケータ/FIFOを読み書きしようとすると、エラーが発生し、FPGA VIが停止します。