LabVIEW FPGAのシングルサイクルタイミングループで任意のレートを使用する

更新しました Nov 19, 2019

使用製品

ハードウェア

  • CompactRIO Controller

ソフトウェア

  • LabVIEW
  • LabVIEW FPGA Module
  • LabVIEW Real-Time Module

運転者

  • NI-RIO
  • NI CompactRIO

問題

  • LabVIEW FPGAのシングルサイクルタイミングループ(SCTL: Single Cycle Timed Loop)を使用して、FPGAクロックの1サイクル(25ナノ秒または40 MHz)内でコードを実行できることは知っています。このループを使用して、任意のレートでコードを実行できますか?
  • シングルサイクルタイミングループを含むプログラムを実行しようとすると、タイミング違反エラーが発生します。ループ実行レートを変更することでこのエラーを解決できますか?

解決策

デフォルトの40Mhz以外のレートでSCTLを実行するには、まず希望するレートで新しいFPGA派生クロックを作成する必要があります。FPGAから派生したクロックレートは、2.5 MHz~210 MHzの間で指定できます。派生クロックを作成するには、プロジェクトエクスプローラーウィンドウで40 MHzオンボードクロックを右クリックして、下図に示すように新規FPGA派生クロックを選択します。


 

FPGA派生クロックプロパティウィンドウで、乗数および除数を調整することで希望するクロックレートを実現できます。


 

SCTLで新しい派生クロックを反映するには、SCTLの左側にあるタイミングブロックを右クリックして、入力ノードを構成を選択します。


 

タイミングループを構成ダイアログでタイミングソースを選択ラジオボタンを選択し、使用可能なタイミングソースで派生クロックをクリックしてOKをクリックします。これで、SCTLは派生クロックの周波数で実行されます。


 

メモ: FPGAでのタイミングの制約により、一部のコードは40 MHzを超えるレートでコンパイルできない場合があります。コードが派生クロックレートでコンパイルできなかった場合、コンパイルレポートの概要にエラーが一覧表示されます。

追加情報

上記の方法がアプリケーションに適していない場合は、別の方法でSCTLの実行レートを指定するサンプルプログラム: Configure Sample Rate of Single Cycle Timed Loop in LabVIEWを参照してください。