Very Hard Delight Life

内容はLinux, HW, プログラミング, HaFaBra.

効率的なHDL開発環境を求めて1-1: Dockerによる仮想環境の構築

Dockerとは?

ある程度人口に膾炙した技術であるため割愛。

Dockerを使うと何が良い?

  • ホストOSに依存せずにEDA環境が構築できる。
  • EDAツールのバージョンを統一しやすい
    • ホストOSのバージョンに依存しない
    • 開発環境とテスト環境をまとめて整備
    • ツールのバージョンアップもまとめてできる
  • ツールのインストール時間の削減
    • GUIの手間を削減
    • あらかじめイメージをビルドしておけば実質1コマンドで可能かつ短時間で導入可能
  • スケールアウト・インによる負荷分散

実際にやってみた

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つだ。うまく使いこなせよ