Vivadoで、簡単なコードを論理合成していたらいきなり”失敗”というメッセージが出てきました。
”Messageを見ろ”と書いてあるのですが、Messageを見ても特にエラーの表示はありません。 コードを確認しても、特に怪しいところはなさそうです。 昨日、ほぼ半日、まったく原因がわからず悩んでおりました。
今朝、Logを見てみたら最後の行に、こんな表示がありました。
TclStackFree: incorrect freePtr. Call out of sequence?
Vivadoのエラーメッセージは、なかなか難解で、いつも悩まされるのですが、このままの文章でググってみました。
どうも、Vivadoの前のバージョンで、バグがあってすでに解決されているようです。 今使っているのは、最新の2020.1.1ですからバグフィックスはされているはずです。 ネットの情報をあれこれ読んでいたら、「Windowsの名前を変えたら発生した。」というようなことが書かれています。
Windowsの名前とか関係なさそうですが、気になったのがフォルダの名前です。 プログラミングをするときは、いつでも少し前の状態に戻れるように、区切りのいいところでバックアップを取って、フォルダの名前を変えて進めるようにしています。 今回もそうしていたのですが、たまたま名前が思いつかずに漢字のフォルダ名にしていました。
これが原因でした。 フォルダ名をアルファベットに書き直したら、何事もなく論理合成できました。
仕様なのかバグなのか原因はよくわかりませんが、とりあえず解決したので先へ進めます。
外国製ソフトで漢字を使うのは、とくに問題なしといわれているものを除いて使わないほうがいいようです。