NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

FPGAコンパイルエラー

解決済み
解決策を見る

お世話になります。

 

FPGA VIをコンパイルしようとしたところ、

途中で「xilinxのエラーによりコンパイルに失敗しました」との

エラーメッセージが表示されてしまい、最後までコンパイル

することができません。

 

xilinxはLabVIEWに適したバージョンのものを使用しており、

パッチも適用しましたがコンパイルエラーが解消できませんでした。

 

FPGA VIのコンパイル方法についてご教示頂ければ幸いです。

 

LabVIEWバージョン:LabVIEW 2013 SP1

xilinxバージョン   :14.4

 

すべてをダウンロード
0 件の賞賛
メッセージ1/10
4,992件の閲覧回数

幾つか気になる点がございます。

 

コンパイルはローカルで行っていますか?クラウドサービスで行っていますか?

ローカルで行っている場合、OSはどちらで何bit版でしょうか。

もしwindows8の場合、対応していないxilinx toolがありますので(*)readmeなどでサポートされているか

確認いただくといいと思います。

(*)Cannot Compile FPGA VIs on a Windows 8 Computer

http://digital.ni.com/public.nsf/allkb/8FDE6923DA3C069786257A36005C3EEF

 

また、xilinx toolはコンパイルするターゲット上のFPGAチップとの組み合わせがありますが、確認されていますか?

LabVIEWバージョンも関連はありますが、ターゲットによります。

下記リンクが参考になります。

 

NI RIOデバイスではどのXilinx FPGA チップが使用されていますか?

http://ae.natinst.com/public.nsf/webPreview/109F7D56380678E68625787A002295C6?OpenDocument

Which Version of the Xilinx Compile Tools Do I Need to Compile My LabVIEW FPGA Code?

http://digital.ni.com/public.nsf/allkb/7CF3DD1ABBE6AE5886257EFB0006E303

 

上記の点について、ご確認いただけたらと思います。

メッセージ2/10
4,946件の閲覧回数

たとえば、FPGA VIがブランク(コードなし)である場合、同様のエラーがでますか?出る場合、まったく新しいプロジェクトを作って、同様に空のFPGA VIを作成した場合はどうでしょうか?

TailOfGon
Certified LabVIEW Architect 2013
メッセージ3/10
4,941件の閲覧回数

ブランクVIでもコンパイルは行われますので、FPGAチップやxilinx toolの互換性がないとエラーが発生します。

互換性がない場合、同様のエラーが出るかと思います。

メッセージ4/10
4,932件の閲覧回数

返信有難うございます。

 

FPGA VIをブランクにしてコンパイルしてみたところ、エラーなくコンパイルを完了できました。

よってxilinxとの互換性はあると思われます。

 

作成したプログラムを見直してみようと思います。

0 件の賞賛
メッセージ5/10
4,919件の閲覧回数

試しに、問題の起こるVIのブロックダイアグラムをCtrl+Aで全て選択、コピーして、新しいVIに貼り付けたあとコンパイルしてみていただけますか?

それでも同じ場合、新しくプロジェクトを作り直して(VIを作り直す必要はありません)からもう一度コンパイルしてみていただけますか?

 

どこかでそういうことをするとコンパイルエラーがなくなる場合があると読んだことがある気がします。改善しなかったら申し訳ありません。いらだったスマイリー

TailOfGon
Certified LabVIEW Architect 2013
メッセージ6/10
4,912件の閲覧回数

様々なご回答頂き有難うございます。

 

cRIOモジュールが納品待ちで手元になかったため、モジュールからの入力値を定数にして

PFGA VIを作成していたのですが、その形式が違っていたようです。

 

FPGAコンパイルが初めてでハードウェアの問題なのかソフトウェアなのか分からない中

みなさんにアドバイス頂き本当に有難うございました。

0 件の賞賛
メッセージ7/10
4,850件の閲覧回数

解決したということでよかったです。解決策が気になるところですが。。。定数としてつかっていたデータタイプが異なっていたということでしょうか。今後の参考のために教えていただけるとうれしいです。

TailOfGon
Certified LabVIEW Architect 2013
0 件の賞賛
メッセージ8/10
4,840件の閲覧回数

> 定数としてつかっていたデータタイプが異なっていたということでしょうか。

そうです。CANデータ受信用のモジュールがなかったため、定数で代用することにしました。

 

サンプルプログラムを確認すると、読み取るCANデータは8つのデータからなるクラスタで

定義されていたので(CAN_IO_Frame Cluster.ctl)そのようなクラスタを一から作成しました。

配線自体はできたのですがもとのクラスタとは相違点があったのだと思われます。

 

一から作成したクラスタを削除し、サンプルプログラムからコピーしてきたクラスタと置き換えたところ、

問題なくコンパイルできました。

 

 

 

 

0 件の賞賛
メッセージ9/10
4,809件の閲覧回数
解決策
トピック作成者H.Ishiiが受理

なるほど。データ構成が少し違っていた可能性があるのですね。FPGAでは配列の要素数が固定ですので、要素数が一致しないとコード生成エラーがでると記憶しています。NGのダイアグラムでは配列要素数がゼロであるため、定数と表示器で配列要素数のミスマッチがあると思われます。原因はそのせいかもしれませんね。(ただし、本来はFPGAモジュールがそれに気づいて警告を出してくれるはずだと思ったのですが。)

 

一致するデータタイプを作成するコツですが、

ブロックダイアグラム上でMod3 Read CAN 4をコピー、同じダイアグラムに貼り付けし、右クリック→「定数(または制御器)に変換」するとまったく同じデータタイプの定数(または制御器)が出来上がります。

 

 

TailOfGon
Certified LabVIEW Architect 2013
メッセージ10/10
4,802件の閲覧回数