2013年7月22日月曜日

64bit WindowsでXilinxのISEを動かす

仕事用もプライベート用も、基本的には64bit版Windowsに移行しました。基本的には、これまでのソフトウェアで動かないものはないのですが、Xilinx社のFPGAの開発環境であるISEだけは様子が違うようです。

というか、「ちゃんと64bit Windowsで動作確認しているの?」という疑問が拭いきれません。

現在のISEのバージョンは14.6なのだけれど、どうも12.xくらいのバージョンから既におかしいらしいです。何がおかしいのかというと、
  • ファイルダイアログを開くと、アプリが落ちる
というものです。ファイルダイアログを開くシーンはいくらでもありますから、これは致命的と言わざるを得ません。そして、それがバージョン12.xのころから14.6になった今でも、まだ改善されていないようです。

このISEをインストールすると、32bit版アプリと64bit版アプリがインストールされますが、32bit版を使う上ではこの問題は出ませんのでずっとこちらを使ってきましたが、このたび海外の掲示板で64bit版でのこの問題の回避策が書き込まれていたのでここで紹介します。(おそらく、日本語のサイトではまだ誰も書いていないようです。

原因はどうやら、libPortability.dllというDLLにあるようです。このDLL自体に問題があるか、または他のライブラリなどとの相性が合っていないようです。
このlibPortability.dllにはちょっとした仕様の違うものがあって、そちらと入れ替えるとうまく動くようになります。要点は、以下の通りです。

  1. c:\Xilinx\14.6\ISE_DS\ISE\lib\nt64\にあるlibPortability.libを削除する。
  2. c:\Xilinx\14.6\ISE_DS\ISE\lib\nt64\にあるlibPortabilityNOSH.libをコピーして、libPortability.libという名前に変える。
  3. 同じlibPortabilityNOSH.libc:\Xilinx\14.6\ISE_DS\common\lib\nt64\にコピーして、libPortability.libに名前を変える。
つまり、インストールされたlibPortability.dlllibPortabilityNOSH.dllと置き換える、ということです。
元ファイルを残しておきたい場合は、削除するのではなく、適宜リネームするなどでバックアップしておいてください。

1 件のコメント:

  1. 同じトラブルに遭遇しまして参照させていただきました。
    説明文の途中からDLLがLIBになっていますが、当方のディレクトリ内は全てDLLでしたので
    DLLを削除、コピペし、名前の変更等を行って問題が解決したようです。 ありがとうございました。

    返信削除