私は単純なシステムのVerilogコードで、関数定義がほとんどないインクルードファイルを持っています。しかし、私がこのファイルを含む複数のファイルを持っていると、関数の再定義のためにコンパイルエラーが発生します。どのようにそれを回避するための任意の提案?`システムに関数定義を組み込んでいます。
コードtest.sv:
`include "constants.sv"
module test();
real myReal1;
real myReal2;
initial myReal1 = 10.1;
assign myReal2 = abs(myReal1);
endmodule
コード:test2.sv:
`include "constants.sv"
module test2();
real myReal1;
real myReal2;
initial myReal1 = 10.1;
assign myReal2 = 10.2;
endmodule
エラー: 関数実ABS(入力A実)。 | ncvlog:* E、DUPIDN(./constants.sv,19|16):以前に宣言された識別子 'abs' [12.5(IEEE)]。
ガイドが含まれていますか? – sanforyou
'\'のようなものifndef xxx \ n \ 'define xxx \ n \' endif' –
ifndefはテキストマクロに対してのみ機能します。関数がまだ定義されていない場合は、 'include文を使用します。どのように私はこれを達成することができるかわからないifndef – sanforyou