コンパイラ指定子

# このページは,学生実験用資料として筑波大学リコンフィギュラブルコンピューティングシステム研究室のwebページで公開されていたものを,許可を得て転載したものです.


`default_nettype

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

 
  `default_nettype ネットタイプ

`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元からの相対パス)"
  

以下に`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 文字列
    

戻る