前回、vivadoからsimvisionを立ち上げてRTLシミュレーションを実行する方法を調査した。
課題として、毎回vivadoを立ち上げてRun Simlationするのが面倒、1階層しか波形をとってくれないという不満があった。今回はここを克服することを目標とする。
xcelium用のシミュレーションディレクトリ
/.sim/sim_1/behav/以下に移動すると、xceliumとxsimの2つのディレクトリがあった。xsimの方はvivadoのシミュレータで今回確認するのはxceliumの方。
.sim/以下は以下のようなファイル構成になっていて、RTL修正後にxcelium/以下でsetup.sh→compile.sh→elaborate.sh→simulate.shの順に実行すれば、GUIを立ち上げずともシミュレーションが実行できた。
.
└── sim_1
└── behav
├── xcelium
│ ├── cds.lib
│ ├── compile.sh # step2
│ ├── elaborate.sh # step3
│ ├── glbl.v
│ ├── hdl.var
│ ├── setup.sh # step1
│ ├── simulate.sh # step4
│ ├── tb_simulate.do # depth
│ ├── waves.shm
│ ├── xcelium_lib
│ └── xmsim.key
└── xsim
波形取得階層の変更
同じくxcelium以下のtb_simulate.doを見ると、以下の通り -depth 1という記述がある。この数値を変更することでより深い階層の波形を取得することができた。
set pack_assert_off {numeric_std std_logic_arith}
database -open waves -into waves.shm -default
probe -create -shm -all -variables -depth 1 -waveform
run 1000ns