コンパイラ指定子

`default_nettype

暗黙に宣言されるネット型を指定します。デフォルトではwireが指定されています。noneを指定すると、暗黙の型宣言を禁止することができます。

`default_nettype ネットタイプ

`define

`defineで定義された文字列は、指定した文字列と単純置換されます。
`define 文字列 置換文字列

以下に`defineの例を示します。

`define WIDTH 2

// assign i = 2'b00;に展開される。
assign i = WIDTH'b00;

`ifdef, `ifndef, `else, `elsif, `endif

文字列が`defineで定義されているかいないかで、展開する処理を切り替えます。

`ifdef 文字列0
文字列0が定義されていた場合の処理
`elsif 文字列1
文字列1が定義されていた場合の処理
`else
文字列0も文字列1も定義されていない場合の処理

`endif

`ifndef 文字列

// 文字列が定義されていない場合の処理
`endif

以下に`ifdefの例を示します。

`ifdef COUNTER_16
parameter WIDTH = 4;
`else
parameter WIDTH = 8
`endif

`include

`includeは指定したファイルを読み込み、その場所に展開します。

`include "ファイル名"

以下に`includeの例を示します。

// common_paramter.h
parameter WIDTH = 2;
parameter INIT = 2'b0;

// IncludeSample.v
module IncludeSample();
// WIDTHとINITが埋め込まれる。
`include "common_parameter.h"

reg [WIDTH - 1: 0] r;
...

`resetall

これまでに指定されたコンパイラ指定子を全てデフォルトの値に戻します。

`timescale

`timescaleはシミュレーションの単位と、シミュレーションの精度を指定します。

`timescale シミュレーションの単位 / 精度

単位・精度に使える単位は以下のようになります。

 s 秒
 ms ミリ秒
 us マイクロ秒
 ns ナノ秒
 ps ピコ秒
 fs フェムト秒

以下に`timescaleの例を示します。

`timescale 5ns / 1ns

`undef

`defineで定義されたマクロを削除します。

`undef 文字列