効率的なHDL開発環境を求めて1-1: Dockerによる仮想環境の構築
Dockerとは?
ある程度人口に膾炙した技術であるため割愛。
Dockerを使うと何が良い?
- ホストOSに依存せずにEDA環境が構築できる。
- EDAツールのバージョンを統一しやすい
- ホストOSのバージョンに依存しない
- 開発環境とテスト環境をまとめて整備
- ツールのバージョンアップもまとめてできる
- ツールのインストール時間の削減
- GUIの手間を削減
- あらかじめイメージをビルドしておけば実質1コマンドで可能かつ短時間で導入可能
- スケールアウト・インによる負荷分散
- まだ勉強途中
- 参考: Dockerコンテナをスケールアウトしてみよう
実際にやってみた
- Dockerhub URL <stomoki/eda-env_verilator_emacs-verilog-mode>
- Github URL <Ag48/eda-env_verilator_emacs-verilog-mode>
Dockerhubにビルド済みイメージがあるため、docker pull stomoki/eda-env__verilatoremacs-verilog-mode
でpullすれば使える。
ssh用アカウントとして、
- ID: eda
- PW: I1oveEDA
を用意した。
明らかな脆弱性だが、docker run
の後コンテナ内で/etc/init.d/sshd start
することでアクセスできるようになる。
使える機能
- verilator
- Lint機能が利用可能、ただしtbに対するLintは微妙
- 使い方:
verilator --lint-only <top_level.v>
- 参考: Verilator
--lint-only Check the files for lint violations only, do not create any other output. You may also want the -Wall option to enable messages that are considered stylistic and not enabled by default. If the design is not to be completely Verilated see also the --bbox-sys and --bbox-unsup options.
- emacs-verilog-mode:
- IFやインスタンス、リセット記述等の工数を削減
- 使い方:
emacs --batch <file.v> -l verilog-mode -f verilog-auto -f save-buffer --no-site-file
- 下位モジュール記述が同一フォルダにないと使用できない
- 参考: Verilog-mode
そいつはDocker、OSS達が築いていった知恵の1つだ。うまく使いこなせよ