アカデミック 会社 イベント NI Developer Zone サポート ソリューション 製品とサービス お問い合わせ MyNI

NI LabVIEW FPGAの新機能

NI LabVIEW FPGAモジュールは、バージョンアップごとに、新機能やFPGA(field-programmable gate array)IP(Intellectual Property)/関数の追加、性能の向上、定期バグ修正などが行われています。

Webイベント:LabVIEW FPGA 2010の新機能

LabVIEW 2010の新機能

  • IP統合ノード
  • Compile Farm/Cloudソフトウェアとビルド仕様による新しいコンパイル機能
  • ModelSimを使用したサイクルアキュレートシミュレーション
  • 新IPと改善されたIP
  • ダイナミックホストインタフェース

LabVIEW 2009の新機能

  • スライスサイズと速度の早期予測
  • クリティカルパスのハイライトによるタイミング違反のデバッグ
  • 改良された新しい高スループット数学IPと信号処理IP
  • ホストとFPGAの統合機能

LabVIEW 8.6の新機能

  • 動作シミュレーション機能の強化
  • 高速フーリエ変換(FFT)およびその他の新規IP
  • 固定小数点データタイプのサポートの追加
  • 外部IPのインポート用コンポーネントレベルIP(CLIP)

LabVIEW 8.5の新機能

  • FPGAプロジェクトウィザード
  • 制御、フィルタ、信号生成IP
  • モジュール構造およびコード再利用機能
  • LabVIEWステートチャートモジュール
  • 固定小数点データタイプのサポート

LabVIEW 8.2の新機能

  • FPGA数式演算/解析IP
  • FPGAウィザード
  • 新しいメモリVI

LabVIEW 8.0の機能

  • LabVIEWプロジェクト
  • DMAデータ転送
  • ドラッグアンドドロップ式のFPGA I/O

LabVIEW 7.1の機能

  • HDLインタフェースノード
  • シングルサイクルタイミングループ

TOP

LabVIEW 2010の新機能

IP統合ノード

IP統合ノードは、サードパーティIPを取り込む手段としてHDLインタフェースノードに代わる機能になります。VHDLをノードに指定するか、もしくはXilinx Core Generatorとの互換性を利用しノードにIPを割り当てます。またこのノードは、IPシミュレーションモデルを自動で作成します。そのため、CoreGenとVHDLのいずれを使用していても、開発コンピュータでFPGAダイアグラムをシミュレーションすることができます。ノードの構成後は、IPを他の入出力付きのLabVIEWノードと同様に使用することができます。

コンパイルファームおよびクラウドソフトウェアとビルド仕様による新しいコンパイル機能

新しいLabVIEW FPGAでは、ビルド仕様を使用して、VIのコンパイルプロパティを保持します。そのため、コンパイルが整理しやすくなるほか、様々なXilinxツールの構成で簡単にテストすることが可能となります。また、開発マシンでFPGAコンパイルを行わず、マルチマシンコンパイルファームを実現するツールキットもリリースしました。NIでは、この技術をクラウドでも導入する試みを行っています。LabVIEW 2010のベータ機能であるLabVIEW FPGA クラウドコンパイルサービスを使用すれば、大規模なFPGAコードのコンパイルでも専用ハイエンドマシンを簡単に使用することができます。

ModelSimを使用したサイクルアキュレートシミュレーション

LabVIEW 2010では、LabVIEWダイアグラムを一連のファイルにエクスポートして、市販のシミュレーションソフトウェアで解析することができます。これによりLabVIEW FPGAシステムのサイクルアキュレートシミュレーションが可能になります。この機能は、ModelSimやその他のFPGA設計ツールの使用経験がある方を対象としています。

新しいIPと改善されたIP

LabVIEW 2010では、平均、分散、標準偏差などの統計用の新しいFPGA IP、新しい複素数の積、行列ベクトル乗算、DSP48E MACブロックの完全実装といった機能が搭載されました。新しいメモリIPには、デュアルポート読み取りや外部DRAMサポートなどがあります。また、XMLの作成に代わる構成ウィザードやVHDLのサポートなど、CLIPも改善されています。

ダイナミックホストインタフェースワイヤ

以前のFPGAインタフェースは、FPGAリファレンスワイヤがビットファイルまたはVIに厳密にタイプ指定されていたため、再利用は困難でした。LabVIEW 2010では、FPGAインタフェースVIを使って作成したサブVIの再利用を容易にするため、動的リファレンスワイヤが導入されました。FPGA VIには、名前に基づいてレジスタ(フロントパネル制御器/表示器)に接続する機能も残されています。この機能を使用する場合でも、名前は再利用可能です。さらに、必要に応じてこれまでの厳密タイプのワイヤを使用することもできます。

TOP

LabVIEW 2009の新機能

スライスサイズと速度の早期予測

ユーザからのフィードバックで多いのが、時間のかかるコンパイルの前にFPGAリソースの使用量を予測できる機能の強化でした。LabVIEW 2009では、コンパイラが“合成”(Synthesis)処理した直後に、サイズと速度の予測を示し、レポートが表示されます。

クリティカルパスのハイライトによるタイミング違反のデバッグ

コンパイル中にタイミング違反("not meeting timing")が発生した際、パイプラインステージの追加等によって効率的なプログラムに変更する必要がありますが、ボトルネックとなるクリティカルパスの診断が困難な場合が多々あります。新しいLabVIEWでは、タイミング違反が起こると、クリティカルパス内の全てのVIが表示され、FPGAブロックダイアグラム上でVIの位置がハイライトされるウィンドウが表示されます。この機能はサブVIにも有効で、タイミング違反の原因をすばやく特定できます。

改良された新しい高スループット数学IPと信号処理IP

新しい高スループット数学VIでは三角関数や指数関数などの新しい関数が利用でき、高速ハンドシェイクプロトコルによりそれらの関数をシングルサイクルタイミングループ内で使用できます。新しい数学関数が使用できるだけでなく、Window、FFT、リサンプルなど高スループット信号チェーンで他の関数とともに使用することもできます。

ホストとFPGAの統合機能

LabVIEW 2009ではホスト側に2つの重要な新機能があります。1つ目として、ハードウェアで動作しているLabVIEW FPGAプログラムと、ホスト上のプログラムが通信できるように、ホスト用のCインタフェースを公開しました。この機能では、レジスタ読み取り/書き込み、DMA転送、および割り込みもサポートされています。2つ目は、特定のFPGA IP関数用の新しいスケール用VIです。例えば、生FFTデータをスペクトルに変換するVI、FPGAフィルタVI用の係数を準備するVI、そして周波数、振幅、位相を計測して信号生成VIで使用するための値を返すVIなどがホスト側に追加されました。

TOP

LabVIEW 8.6の新機能

動作シミュレーション機能の強化

LabVIEW 8.6 で強化された動作シミュレーション機能を使用して、開発コンピュータでコードを実行しコンパイル前に機能を検証することで、効率的な開発ができます。さらにLabVIEW 8.6では、FPGAの入力I/Oノードに、テストデータや対話式に値を設定して期待通りの信号が入ったかを確認することもできます。FPGAの動作の検証と視覚化用の出力をキャプチャしたり、開発コンピュータ上のFPGAと同時にホストを実行したり、FPGAとホストコード間でDMA転送のエミュレーションを行ったりできます。これらの新機能を利用すると、コンパイルして論理をチェックしなくても、FPGAコードのテストシステムを作成し、システム全体をシミュレーションすることが可能です。

FFTおよびその他の新規IP

LabVIEW 8.6では、FPGAでウィンドウイングによるFFTが実装できます。この機能への要望は多く、NIではFFT、逆FFT、複数のビンサイズ、複数のスループット設定に対応するカスタマイズ可能なIPコアを追加しました。また、有理リサンプリング、除算、平方根、適応フィルタ、固定小数点オーバーフロー処理などの関数も提供しています。

固定小数点のサポート

固定小数点データタイプは、現在ではほとんど全てのFPGA関数入力でサポートされています。これには、DMA、メモリ、PID、FFT、そして一般的な演算が含まれます。また、固定小数点データタイプでは、オーバーフロービットも内部的に扱うというオプションもあります。NIでは、リソースに制約のあるターゲットでの作業のため、固定小数点のサポートは今後も強化していく予定です。

コンポーネントレベルIP(CLIP)

コンポーネントレベルIP(CLIP)とは、ハードウェア記述言語(HDL)で作成した外部IPをインポートして使用する新たな方式です。CLIPで実装したプログラムは、LabVIEWダイアグラムと並列で実行することができ、ユーザが作成したI/Oノードを介して通信します。一部のハードウェアターゲットでは、CLIPを使用してI/Oピンと直接通信することができます。CLIP関数はさまざまなIPを内包するので、現在のHDLインタフェースノードの実行のようにデータフロー形式ではなく、並列での実行の方が適していることがあります。

TOP

LabVIEW 8.5の機能

FPGAプロジェクトウィザード

FPGA Project Wizardを使用すると、FPGAターゲットとI/Oが構成されプログラミングの準備が整った完全なLabVIEWプロジェクトを作成することができます。既存のFPGA Wizardに直接リンクできるため、アナログ/デジタルI/O、カウンタ、および位相差出力エンコーダ計測用のコードをすばやく生成することができます。FPGA Project Wizardには、FPGA/ホストのコード生成用の新たなDMAオプションが追加されています。

制御、フィルタ、信号生成IP

LabVIEW FPGAモジュール8.5には、FPGAパレットに新しいIPが追加されているほか、既存のIPも改善されFPGAのリソース使用が効率化されています。

制御 - PID/ファジーロジックツールキットに搭載されているFPGA内のPIDブロックは複数のチャンネルで利用できるようになりましたので、FPGA上の同じPIDロジックにチャンネルの配列を入力することができます。この機能は、多チャンネルアプリケーションで特に重要です。使用可能なチャンネル数は、1Mゲートのターゲットで8から256に増加します。さらに、シングルチャンネルベンチマークは3倍の速さで実行でき、使用するFPGAリソースは20パーセント少なくすみます。

フィルタ - 全てのフィルタは複数のチャンネルに対応しています。さらにLabVIEW FPGAには、既存のバタワースハイパス/ローパスフィルタを切り上げる新しいノッチフィルタが搭載されています。

信号生成 - 既存のサイン波に加えて、LabVIEW FPGAには方形波およびノイズジェネレータ(ガウス/ホワイト)も搭載されています。

モジュール構造およびコード再利用機能

I/O名制御器 - ワイヤを通してI/Oアイテムを指定するサブVI内のI/Oノード、メソッド、プロパティ。

クロック制御器 - ワイヤを使用して、特定のシングルサイクルタイミングループでオンボード/派生クロックなどどのクロックを使用するかを指定します。

フィードバックノードの強化 - ブロックダイアグラムの任意の場所にフィードバックノードを配置して、ループを停止することができます。フィードバックノードはステートストレージとパイプライン処理に役立つことがあり、サブVIをはじめとする全ての場所で使用できるようになっています。

LabVIEWステートチャートモジュール

FPGAをグラフィカル形式でプログラミングする新しい方法が追加されました。構築するシステムを状態遷移図で表記するのを好む設計者もいます。LabVIEW FPGA対応のこの新しいモジュールを使用すれば、FPGAベースのシステムを状態遷移図でもデータフローでもプログラミングすることが可能です。

固定小数点データタイプのサポート

特にFPGAプログラミングに役立つ新しい固定小数点データタイプがLabVIEWに追加されました。以前LabVIEW FPGAでは整数しかサポートしていませんでしたが、固定小数点データタイプに対応することで、分数や任意ビット幅のデータタイプなどをFPGAプログラミングに利用することが可能となります。LabVIEW 8.5では、一部のプリミティブ演算や比較関数で固定小数点がサポートされます。今後のバージョンで、この機能をサポートする関数をさらに拡張することを検討しています。

TOP

LabVIEW 8.2の新機能

FPGA数式演算/解析IP

LabVIEW FPGAモジュール 8.2では新しい解析関数が追加されていますので、FPGAでよく使用される基本の信号処理関数や制御機能のコードを再利用することができます。このIPには、以下のような機能があります。

  • 直流(DC)および二乗平均平方根(RMS)計測 - 信号のDC、RMS、和、平均平方根、平方和などを計算します。
  • バタワースフィルタ - このExpress VIで構成可能なバタワースフィルタを使って入力信号をフィルタリングします。
  • 周期測定 - しきい値交差検出によって、均等にサンプルされた周期的信号の周期を計算します。

TOP

FPGAウィザード

FPGA Wizardを使って、インテリジェントデータ集録アプリケーションのFPGA I/Oおよびタイミングを設計することができます。このウィザードを使用すると、FPGAデバイスとホストVIの間でのタイミングと同期を指定できます。タイミングを選択したら、アナログ、デジタル、カウンタ、または位相差出力I/Oを構成します。I/Oの構成が終わったら、構成を保存して基本のFPGAコードとホストコードを生成します。次に追加のコードを組み込んで、制御アルゴリズム、データロギング、ネットワーク処理などのアプリケーション機能を完成させます。

新しいメモリVI

新しいメモリ読み取り/書き込みインタフェースを使用すると、1Mゲートデバイスで80 KB、3Mゲートデバイスなら190 KBのメモリ全てにアクセスできます。FPGAゲートの使用効率を低下させる配列を使わずに、メモリを使用して波形生成やデータロギングの際のデータを保存することができます。

TOP

LabVIEW 8.0の機能

LabVIEWプロジェクト

LabVIEWプロジェクトを使用すると、Windows用LabVIEW、LabVIEW FPGAモジュール、LabVIEW Real-Timeモジュール、その他のLabVIEWモジュールにVIを同時に実装して開けるだけでなく、LabVIEW FPGAアプリケーションの開発も行えます。下記のように、LabVIEWプロジェクトを使用すると全てのFPGAリソースを作成し管理することが可能です。

  • VI
  • FPGA I/O
  • カスタムクロック
  • CompactRIO構成
  • FPGA FIFO

DMAデータ転送

LabVIEW FPGAモジュール 8.0のDMA機能により、FPGAデバイスとホスト間でのスループットの制約を最小化します。再構成可能I/O(RIO)デバイス上にあるクロックによりFPGAチップは最大20 MHzで動作可能ですが、DMA転送なしでのデータストリーミングレートは最速でもおよそ1 MB/秒でした。LabVIEW FPGAモジュール8.0は、ナショナルインスツルメンツの全てのRシリーズデバイス、CompactRIOデバイスでDMA転送を実行することができ、FPGAからホストアプリケーションへのデータ転送レートを最低でも20倍向上させることができます。

DMAは、ホストマシンにおけるデータからRAMの直接通信を可能にします。ホストプロセッサだけを使ってデバイスからホストへデータをストリーミングすると、しばしば遅延時間が発生し、それがデータ転送の障害となります。割り込み要求を使用する場合も、プロセッサのクロックサイクルが消費され、ホストCPU全体の負荷が大きくなります。LabVIEW 8を使用すれば、CPUを経由しないデバイスとホスト間でのデータ転送が効率化されますので、あらゆるアプリケーションに使用できる高性能なデータ集録システムを構築できます。

メモリバッファを2つ作成するだけで、DMAを使用することができます。1つはFPGAデバイス上のメモリの中に、そしてもう1つはホストプロセッサの中に作成します。するとLabVIEWがPCIバスを介して効率よく、透過的にデータの転送を行います。LabVIEW FPGAモジュール8.0では、DMA用に構成されたFPGA FIFOを使用してDMAメモリの読み書きを行い、ホスト側でFPGAインボークメソッドを使用してホストメモリの作成、書き込み、読み取りを行います。DMAによりRIOハードウェアの性能が大幅に向上するため、バッファ集録や通信デバイスのデジタルストリーミング、車載データ集録、オンライン機械状態監視などのアプリケーションに役立ちます。

ドラッグアンドドロップ式のFPGA I/O

LabVIEW FPGAを使用すると、特定のデバイスI/O関数を使用してRIOデバイスのI/Oにすばやくアクセスすることができます。(ただし、本ドキュメントで触れているLabVIEW FPGA関数パレットはFPGA実行ターゲットに特有のものであり、FPGAデバイスまたはFPGAデバイスエミュレータをターゲットとした場合にのみ使用できる関数が含まれています。)LabVIEW FPGAモジュールを使用すると、NI RIOハードウェアでアナログ/デジタルI/Oへのダイレクトなシングルポイントアクセスが可能となります。LabVIEW 8.0 FPGAモジュールでは、I/OをLabVIEWプロジェクトウィンドウからFPGA VIのブロックダイアグラムに直接ドラッグアンドドロップできます。

以下のような様々なデバイスI/O関数があります。

  • アナログ入力
  • アナログ出力
  • デジタル入力
  • デジタル出力
  • デジタルポート入力
  • デジタルポート出力
  • I/Oメソッドノード
  • I/Oプロパティノード

TOP

LabVIEW 7.1の機能

シングルサイクルタイミングループ

LabVIEWタイミングループストラクチャは、指定した周期でループを実行します。タイミングループを使用すると、マルチレートタイミング機能、高精度タイミング、ループ実行におけるフィードバック生成機能を持つVIを開発したり、タイミング特性や複数の実行優先度レベルを動的に変更したりすることができます。タイミングループの詳細については、チュートリアル(英語)を参照してください。LabVIEW FPGAのシングルサイクルタイミングループは、(速度とリソース使用の点で)HDLプログラミングと同様の効率でLabVIEW FPGAアプリケーションを開発できる特殊なタイミングループです。シングルサイクルタイミングループは、VHDLでのクロック処理プロセスに似ています。ループ内の全てのLabVIEWコードはFPGA上の組み合わせロジックなので、入力はデジタル入力関数、制御器、左シフトレジスタ、出力はデジタル出力関数、表示器、右シフトレジスタなどのコンポーネントとなります。シングルサイクルタイミングループの利用法は簡単です。標準のWhileループと同じように使用できます。

シングルサイクルタイミングループを使用すると、ループ内の全てのコードが1回のクロックサイクル(25 ns)で実行します。全てのコードがクロックサイクル内に確実に実行するようにしなければならないなど、いくつかの制約はありますが、デジタルI/Oやシンプルなロジック/信号処理を実行するには極めて効率的です。LabVIEWI/Oにおけるシングルサイクルタイミングループ関数とI/Oノードの詳細はこちらでご覧いただけます。(英語)

HDLインタフェースノード

HDLインタフェースノードを使用して、既存のHDL IPをLabVIEW FPGA VIに直接組み込み、そのコードをLabVIEW内で1つの関数ブロックとして表すことができます。そのコードを同じアプリケーションや他のアプリケーションで、同じ関数ブロックを使用して再利用することができます。FPGA VIでHDLコードを使用する場合は、LabVIEWでコードを書き直さなくても、VHDLコードをHDLインタフェースノードに直接入力するか、外部.vhdファイルを参照することができます。

LabVIEWブロックダイアグラムにカスタムVHDLを統合

LabVIEW FPGAをオンラインで購入

« LabVIEW FPGAトップページに戻る