問題点
ModelSimのプロジェクトファイル(*.mpf)では、使用するソースが絶対パスで保存される。
プロジェクトを他の人と共有するのが面倒なので、相対パスで保存したい。
解決策
Location Mapping機能でプロジェクトのソースを相対パスで参照する
ロケーションマップファイルでルートディレクトリを指定すると、プロジェクトファイルにはプロジェクトのルートディレクトリからの相対パスで保存される
詳細はModelSim User's ManualのAppendix B Location Mappingに記載されている
手順
ModelSimがロケーションマップを認識する方法は以下の2通りある
- 環境変数MGC_LOCATION_MAPで指定
環境変数MGC_LOCATION_MAPにファイルへのパスを設定する - 環境変数が無い場合
mgc_location_mapというファイルを以下の優先順で検索
- カレントディレクトリ
- ユーザーのホームディレクトリ
- ModelSimバイナリがあるディレクトリ
- ModelSimのインストールディレクトリ
プロジェクトを使う場合はプロジェクトディレクトリ(*.mpfファイルと同じディレクトリ)がカレントディレクトリになるので、*.mpfと同じディレクトリにmgc_location_mapというテキストファイルを作成する
- mgc_location_map内容
$PRJ
c:\vhdl\project_dir
$PRJからの相対パスで保存される
$PRJは絶対パスで指定する必要がある
- mgc_location_map自動生成BAT
生成したいディレクトリで実行する
REM mgc_location_mapを生成する
cd %~dp0
set MGC_LOCATION_MAP=%~dp0\mgc_location_map
echo $PRJ > %MGC_LOCATION_MAP%
cd >> %MGC_LOCATION_MAP%