From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
06-06-2016 01:33 AM
お世話になります。
FPGA VIをコンパイルしようとしたところ、
途中で「xilinxのエラーによりコンパイルに失敗しました」との
エラーメッセージが表示されてしまい、最後までコンパイル
することができません。
xilinxはLabVIEWに適したバージョンのものを使用しており、
パッチも適用しましたがコンパイルエラーが解消できませんでした。
FPGA VIのコンパイル方法についてご教示頂ければ幸いです。
LabVIEWバージョン:LabVIEW 2013 SP1
xilinxバージョン :14.4
解決済! 解決策の投稿を見る。
06-07-2016 09:39 AM
幾つか気になる点がございます。
コンパイルはローカルで行っていますか?クラウドサービスで行っていますか?
ローカルで行っている場合、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
上記の点について、ご確認いただけたらと思います。
06-07-2016 05:27 PM
たとえば、FPGA VIがブランク(コードなし)である場合、同様のエラーがでますか?出る場合、まったく新しいプロジェクトを作って、同様に空のFPGA VIを作成した場合はどうでしょうか?
06-07-2016 06:47 PM
ブランクVIでもコンパイルは行われますので、FPGAチップやxilinx toolの互換性がないとエラーが発生します。
互換性がない場合、同様のエラーが出るかと思います。
06-07-2016 08:33 PM
返信有難うございます。
FPGA VIをブランクにしてコンパイルしてみたところ、エラーなくコンパイルを完了できました。
よってxilinxとの互換性はあると思われます。
作成したプログラムを見直してみようと思います。
06-07-2016 09:39 PM
試しに、問題の起こるVIのブロックダイアグラムをCtrl+Aで全て選択、コピーして、新しいVIに貼り付けたあとコンパイルしてみていただけますか?
それでも同じ場合、新しくプロジェクトを作り直して(VIを作り直す必要はありません)からもう一度コンパイルしてみていただけますか?
どこかでそういうことをするとコンパイルエラーがなくなる場合があると読んだことがある気がします。改善しなかったら申し訳ありません。
06-10-2016 12:07 AM
様々なご回答頂き有難うございます。
cRIOモジュールが納品待ちで手元になかったため、モジュールからの入力値を定数にして
PFGA VIを作成していたのですが、その形式が違っていたようです。
FPGAコンパイルが初めてでハードウェアの問題なのかソフトウェアなのか分からない中
みなさんにアドバイス頂き本当に有難うございました。
06-10-2016 11:48 AM
解決したということでよかったです。解決策が気になるところですが。。。定数としてつかっていたデータタイプが異なっていたということでしょうか。今後の参考のために教えていただけるとうれしいです。
06-13-2016 02:49 AM
> 定数としてつかっていたデータタイプが異なっていたということでしょうか。
そうです。CANデータ受信用のモジュールがなかったため、定数で代用することにしました。
サンプルプログラムを確認すると、読み取るCANデータは8つのデータからなるクラスタで
定義されていたので(CAN_IO_Frame Cluster.ctl)そのようなクラスタを一から作成しました。
配線自体はできたのですがもとのクラスタとは相違点があったのだと思われます。
一から作成したクラスタを削除し、サンプルプログラムからコピーしてきたクラスタと置き換えたところ、
問題なくコンパイルできました。
06-13-2016 10:06 AM
なるほど。データ構成が少し違っていた可能性があるのですね。FPGAでは配列の要素数が固定ですので、要素数が一致しないとコード生成エラーがでると記憶しています。NGのダイアグラムでは配列要素数がゼロであるため、定数と表示器で配列要素数のミスマッチがあると思われます。原因はそのせいかもしれませんね。(ただし、本来はFPGAモジュールがそれに気づいて警告を出してくれるはずだと思ったのですが。)
一致するデータタイプを作成するコツですが、
ブロックダイアグラム上でMod3 Read CAN 4をコピー、同じダイアグラムに貼り付けし、右クリック→「定数(または制御器)に変換」するとまったく同じデータタイプの定数(または制御器)が出来上がります。