動作環境
Ubuntu 20.04 LTS
IcarusVerilog v10.3
GTKWave v3.3.103
Advanced Synthesis Cookbook
ALTERA(Intel)のCookbookを読んでいる中で未学習のdefparamに出くわした。
ternnary_nine_sum.vの中に下記の記述がある。
arithmetic/ternnay_nine_sum.v
// output layer 3=> 1
tern_node o (.clk(clk),.a(part0),.b(part1),.c(part2),.o(out));
defparam o .WIDTH = WIDTH+2;
parameter, defparam関連の情報
-
http://www.darwin.esys.tsukuba.ac.jp/home/ohyou/verilog/parameter
-
parameter文で宣言された、下位モジュールのパラメータを上書きすることができます。上書きするには、defparam文を用います。
-
-
https://ameblo.jp/middleisland88/entry-11424595927.html
-
例4)defparamとインスタンス名を使用して下位モジュールのパラメータを宣言も可能
-
-
defineでなくparameterを使う
- defineとparameterの比較について記載あり
- Verilog/SystemVerilogのparameterの使い方
情報感謝です。
理解
ternnary_nine_sum.vの実装例ではインスタンス化した後にdefparamを呼んでいる。
oという名前でインスタンス化して、そのoのパラメータを変更するためにdefparamする、という流れのようだ。