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
この状態でシミュレーションを実行すると、simvisionが立ち上がる。Vivadoでシミュレーション実行までは重たいが、simvisionは単独で立ち上げたときと同様で、サクサク動いてくれる。
ただ、RTLを修正してsimを再実行する際にsimvisionを落とさないといけなさそうなのと、デフォルトで1階層しか波形をとってくれないので、いまいち取り回しが良くない。次はこのあたりの仕組みを確認する。