verilogマクロ定義

711 ワード

  • Verilogは、このようにマクロ`define TESTEQ1 4’b1101を定義することができる.
  • によって定義されたマクロは、if (request == `TESTEQ1のような後のコードで使用することができる.`ifdefおよび`endifを使用して、条件コンパイルに相当するマクロが定義されているかどうかを検出することができる.`ifedfで呼び出されたマクロが定義されている場合、内部のコードはコンパイルされます.マクロが定義されていない場合は、`else がコンパイルされます.`elseは必須ではありませんが、`endifが必要です.
  • マクロを使用すると、IPコア生成およびプロセステストにおいて有用な、ソースコードを変更することなく設計を変更することができる.マクロを使用する2つの例を以下に示す:
  • 'define myzero 0
    assign mysig = 'myzero;
    
    //  2,    
    'ifdef MYVAR
    module if_MYVAR_is_declared;
    ...
    endmodule
    'else
    module if_MYVAR_is_not_declared;
    ...
    endmodule
    'endif