動作環境
Ubuntu 20.04 LTS
IcarusVerilog v10.3
GTKWave v3.3.103
セットアップに関しては以下を参考にさせていただきました。
情報感謝です。
Generate文
p.2-2 の例としてarithmetic/ternary_add.vを読んでいてgenerate文に遭遇した。
参考としていくつか見つけた。
-
http://www.darwin.esys.tsukuba.ac.jp/home/ohyou/verilog/generate
-
generate文を使うと、下位モジュールの生成をパラメタライズすることができます。
-
-
http://www.kumikomi.net/archives/2009/07/verilog_hdl.php?page=4
-
generateによる回路の切り換え
-
-
https://shtaxxx.hatenablog.com/entry/20101101/1288622813
-
Verilog HDLではgenerate文を使うことで変数やfunction文のスコープを定義することができる。
-
-
https://lsifrontend.blog.fc2.com/blog-entry-608.html
-
というような感じで、複数モジュールインスタンスできます。
-
コード例
こちらのコードを実際に自分の環境で動作させて理解を深めた。
(コードのコピペはできないため、手入力した)。
generateの用途
generateの用途としては以下であると考えた。
- A. 条件によってインスタンス化したい回路を切り替える
- B. 複数のインスタンス化をする