2022年9月2日金曜日

[備忘録]VivadoプロジェクトがRead-onlyになって開けなくなったときの対処

 Vivadoを使ってFPGAの開発をしているとき、何かの拍子でプロジェクトが開けなくなったことが何度かあった。プロジェクトが何故かRead-onlyモードになり、すべてのIPコアがLockされた状態になって、Synthesis/Implementを含むすべての操作が禁止される状態になることがあった。

Xilinxのフォーラムでも質問が出ていたが、有益な情報はなかった。

https://support.xilinx.com/s/question/0D52E00006lLhAGSA0/vivado-project-converts-to-read-only?language=ja



これまでは、プロジェクトディレクトリを丸ごと削除して、新しくソースをgitからcheckoutしてなんとかやりくりしていたが、ようやく原因と解決方法が分かったので、その備忘録を記録。


(原因)

IPコアのディレクトリに、コンテナ化(Enable Container)したIPコア名と同じ名前のサブディレクトリが存在するときに発生する。


(対処方法)

そのIPコアをコンテナ化しているならば拡張子.xcixファイルだけあれば良いので、同名のサブディレクトリを削除する。

例えば、コンテナ化したmyIP.xcixファイルがプロジェクトにあるならば、myIPという名前のディレクトリは削除する。


このことに気付いてからよくよくTclコンソールをよーく見てみると、ちゃんと原因が出力されていた!


CRITICAL WARNING: [Project 1-635] The core container source file '(プロジェクトのIPが置かれるディレクトリ)/hogehoge.xcix' is sitting next to the IP directory '(プロジェクトのIPが置かれるディレクトリ)/hogehoge'. This configuration is not supported and will lead to unexpected behavior. The project will be opened as read-only. To resolve the issue, please move aside the IP directory and reopen the project.

WARNING: [Project 1-312] File not found as '(プロジェクトのIPが置かれるディレクトリ)/hogehoge.xci'; using path '(プロジェクトのIPが置かれるディレクトリ)/hogehoge.xci' instead.


なぜこんなことになったのかはっきりしたことは覚えていないが、そういえばコンテナ化IPファイル.xcixはバイナリファイルなのでgitでは扱いにくいなと思って、コンテナ化を解除(Disable Container)したことがあった。そのときに作られた(だろう)サブディレクトリが残っていたのかも知れない。


0 件のコメント:

コメントを投稿