1
「ルートスコープ宣言がのverilog 95/2Kモードでは使用できません」:Vivadoシムエラー:私はザイリンクスVivado 2016.4で私のトップレベルのモジュールをシミュレートするために行くとき、私は奇妙なエラーが表示
ERROR: [VRFC 10-1342] root scope declaration is not allowed in verilog 95/2K mode [<...>/header.vh]
IをVivado SimulatorとVerilog 2001が指定されています。マイheader.vhは、次のようになります。
`ifndef _header_vh_
`define _header_vh_
function integer clog2;
input integer value;
begin
value = value - 1;
for (clog2 = 0; value > 0; clog2 = clog2 + 1)
value = value >> 1;
end
endfunction
`endif
ルートのスコープ内で関数やその他のものを宣言すると、異なるパーツとips間で名前の衝突が起こる可能性があるため、プロジェクトで問題が発生します。だから、やってはいけません。常にモジュールやシステムのVerilogパッケージでラップしてください。 – Serge