0

次のようなコードを記述できるようにしたいと思います。

`ifdef SYSTEMVERILOG_ENABLED
  .. systemverilog code here.
`else
 .. verilog-2001 equivalent code here.
`endif

しかし、SystemVerilogリファレンスマニュアルは、そのような標準の事前定義された定数を参照していないようです。これは見落としのようです-私がここで意図していることを行う簡単な方法はありますか?

4

1 に答える 1

4

はい、コンパイラ指令begin_keywords "version_specifier"end_keywordsがあります。ここで、

version_specifier ::=
    1800-2009
  | 1800-2005
  | 1364-2005
  | 1364-2001
  | 1364-2001-noconfig
  | 1364-1995

LRMの例:

`begin_keywords "1364-2001" // use IEEE Std 1364-2001 Verilog keywords
module m2 (...);
reg [63:0] logic; // OK: "logic" is not a keyword in 1364-2001
...
endmodule
`end_keywords

これは、IEEE1800-2009の第22.14章で説明されています。

個人的には、これらを使用したことがないので、ツールがどれだけうまくサポートしているかわかりません。

于 2013-03-05T21:54:12.660 に答える