2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vivadoのsimが重いので、サードパーティのsimを使ってみた

Last updated at Posted at 2021-06-19

vivadoのguiが重すぎる

今の開発環境は、手元のPCからVPN経由RDPで会社のWindows PCに接続、会社のWindows PCからsshでLinuxサーバに入ってそこでVivadoを起動している。ほかのguiアプリケーションではストレスに感じることはほとんどないのだが、vivadoに関していうと非常に遅い。

コーディングや合成であれば大した操作はないので我慢できるのだが、問題なのはシミュレーション。VivadoのIPを使用したデザインのためvivadoのsimulatorを使うのが楽なのだが、この遅さはいかんともしがたい。

そこでvivadoで作成したデザインを(リモートでの動作速度にストレスの少ない)サードパーティ製のシミュレータで実行する方法を調べた。

PATHの設定

いきなりだがここで躓いた。この後の操作で、Vivadoから使用するシミュレータパスを設定するのだが、そもそも$PATHに登録されていないとだめらしい。ということで、Vivado起動前に$PATHにツールパスを通しておくことが必要。

今回はcadenceのxceliumを使用する。vcsでもmodelsimでも大枠は同じはず。もともと使い慣れているvcsでやろうとしたが、vcsのバージョンとvivadoのバージョンがあわなかったので、今回はxceliumで進める。

vivadoの設定

xceliumのバイナリにパスを通した状態でvivadoを起動。Tools→Compile Simulation Librariesで以下の項目を設定して、ターゲットのシミュレータ向けにXilinx IPのsimmodelをコンパイルする。

  • Simulator: xcelium
  • Language: verilog
  • Compiled library location: <project_path>/<project_name>.cache/compile_simlib/xcelium
  • Simulator executable path: <path to xmsim>

続いて、シミュレータをデフォルトのxTools→Settingsで以下2項目を設定。
Project Settings→Simulationで、

  • Target simulatior: xcelium
  • Compiled library location: <project_path>/<pronect_name>.cache/compile_simlib/xcelium

Tool Settings→3rd Party Simlatorsで

  • Install Paths→Xcelium: <path to xmsim>
  • Default Compiled Library Paths→Xcelium: <project_path>/<pronect_name>.cache/compile_simlib/xcelium

#結構重複しているので、どちらかだけでよいのかも
図2.jpg

この状態でシミュレーションを実行すると、simvisionが立ち上がる。Vivadoでシミュレーション実行までは重たいが、simvisionは単独で立ち上げたときと同様で、サクサク動いてくれる。

ただ、RTLを修正してsimを再実行する際にsimvisionを落とさないといけなさそうなのと、デフォルトで1階層しか波形をとってくれないので、いまいち取り回しが良くない。次はこのあたりの仕組みを確認する。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?