k0b0's record.

Computer Engineering, Arts and Books

Modelsimのコマンド(vlog, vsim)スクリプト

 Modelsimを使ってverilogソースをコンパイルしてシミュレーションするスクリプトを作成したのでメモしておく。

Modelsimのコマンドスクリプトサンプル

スクリプトを実行するディレクトリ構成

sample/
  |- sample.sv /*回路モジュール*/
  |- sample_tb.sv /*テストベンチ*/
  |- run_msim.sh /*コマンドスクリプト*/
  |- work/ /*作業ディレクトリ*/

コマンドスクリプト

#!/bin/sh

PRJ_NAME=sample
TOP_NAME=sample_tb
WORK_DIR=work

# Modelsim UImode argument(CUI(-c) or GUI(-g))
MODE=$1

# Create work directory
if [ ! -d $WORK_DIR ]; then
    vlib $WORK_DIR
    vmap $PRJ_NAME "./$WORK_DIR"
fi

# Compile
vlog  -work $PRJ_NAME -sv -incr sample.sv sample_tb.sv

# Run modelsim
# Select Modelsim UImode(-c or -g).
if [ $MODE = -c ]; then
    echo "=====  CUI MODE ====="
    vsim $TOP_NAME -c -lib $PRJ_NAME -do "run -all;quit"
else
    echo "=====  GUI MODE ====="
    vsim  $TOP_NAME -lib $PRJ_NAME -do "add wave -position insertpoint sim:/$TOP_NAME/*"
fi

実行例

CUI環境でシミレーションを実行
$ ./run_msim.sh -c
GUI環境でシミュレーションを実行
$ ./run_msim.sh