前回の続きでQuartus II 13.1に付属のModel-sim Altera Starter Edition 10.1を64ビット版のUbuntu 16.04で動かしてみました。前回も触れましたが、64bit版Linuxと旧バージョンのQuartusの相性はあまり良くないようです。また、Ubuntuはサポート外となっていますので、私のような事情のない方は最新のQuartusとサポートOSの組み合わせをおすすめします。
とりあえず試す
AlteraのModelsSim-Altera Editionのチュートリアル通りに進めていくと、Tools -> Run Simulation Tool -> RTL simulation を選んだところでこんなエラーが出ました。
$ ** Fatal: Read failure in vlm process (0,0)
[2]+ Segmentation fault (core dumped) bin/vsim
予想通りの展開です。
FreeTypeのコンパイル
どうやらこの原因はFreeTypeのバージョンの食い違いによるもののようです。いろいろなサイトに情報がありますが、こちらのブログが一番まとまっていました
Freetypeのソースコードを手に入れてコンパイルし、modelsim_ase以下にlib32ディレクトリを作って、できたライブラリーをコピー。configureやmakeでエラーがでる場合は必要がライブラリーが足りないので適宜インストールします。このあたりは上記のブログを参照ください。
なお、私の環境では、途中で以下のようなエラーが出ましたが、
$ sudo apt-get build-dep -a i386 libfreetype6
E: You must put some 'source' URIs in your sources.list
/etc/apt/sources.listからコメントを省き、そのあとで
sudo apt-get update
sudo apt-get build-dep -a i386 libfreetype
を行うことで実行することができました。
Modelsimの環境設定、及びQuartus II との連携
これで、LD_LIBRARY_PATHにこのlib32ディレクトリを登録すれば、modelsim_ase/linux/vsimを呼び出すことができるようになります。("~/altera/13.1/modelsim_ase"はmodelsimのインストールディレクトリに変更する必要あり。)
$ export LD_LIBRARY_PATH=~/altera/13.1/modelsim_ase/lib32
$ ~/altera/13.1/modelsim_ase/linux/vsim
ただ、これではまだQuartus II のメニューから呼び出す事ができません。Quartus IIで行った設定を元にシミュレーションしたい場合は以下の作業が必要です。
- Tools->Options...で、modelsim/alteraのディレクトリが、modelsim_ase/binが指定されていることを確認。
私の環境ではこれが、modelsim_ase/linuxaloemを指していたために解決に無駄な時間を費やしてしまいました。 - modelsim_ase/bin/vcoの変更
先ほどのブログでは、bin/vco*1中、dirの定義の後で
export LD_LIBRARY_PATH=${dir}/lib32
を追加すればよいと書いてありましたが、私の環境ではうまくいかないので、ディレクトリ名を直接指定しました。("/home/uname/altera/13.1/modelsim_ase"の部分はmodelsimのインストールディレクトリに変更が必要です) -
dir=`dirname $arg0` #この行はもとからあった
export LD_LIBRARY_PATH=/home/uname/altera/13.1/modelsim_ase/lib32 #追加さらに、最近の4.0以上のカーネルではディレクトリの指定がうまくいっていないので、以下の部分を、
case $utype in
2.4.[7-9]*) vco="linux" ;;
2.4.[1-9][0-9]*) vco="linux" ;;
2.[5-9]*) vco="linux" ;;
2.[1-9][0-9]*) vco="linux" ;;
3.[0-9]*) vco="linux" ;;
*) vco="linux_rh60" ;;
esacこのように変更します
case $utype in
2.4.[7-9]*) vco="linux" ;;
2.4.[1-9][0-9]*) vco="linux" ;;
2.[5-9]*) vco="linux" ;;
2.[1-9][0-9]*) vco="linux" ;;
3.[0-9]*) vco="linux" ;;
4.[0-9]*) vco="linux" ;; この行追加
*) vco="linux_rh60" ;;
esac
これでどうにかQuartus II 13.1からmodelsimを呼び出すことができるようになりました
その他
Ubuntuは関係ありませんが、Megawizardで作ったモデルを使うときは、Start Simulationの画面で適切なライブラリ(今回の場合はaltera_mf_ver)をLibrariesタブからSearch Libraries Firstのテーブルに入れておく必要があります。また、ROMなどの初期化ファイルはプロジェクトフォルダにおいておきます。(わからなくてしばらくハマりました。)