【default_nettype】暗黙的なWire宣言 Verilog

はじめに

Verilogでは1ビットの信号は宣言しなくてもWireと認識されます。

それは、default_nettype というDirectiveのデフォルト値がWireだからです。

module top;
    assign a = 1;  // エラーにならない。
endmodule

default_nettype none

default_nettype をNoneに設定すると、1ビットの信号はWireと認識されないためエラーとなります。

`default_nettype none
module top;
    assign a = 1;  // エラーになる。
endmodule

取れる値

wire/tri/tri0/tri1/wand/triand/wor/troor/trireg/uwire/none

まとめ

default_nettypeについて調べました。

SystemVerilogでPort宣言するときにinputだけで良いのは、default_nettypeがWireだからなんですね。

module dut(
    input clk,  // ここ
    input din,  // ここ
    output logic dout
);

コメント

タイトルとURLをコピーしました