AR# 14341

4.2i CORE Generator - 「ERROR:Xst:1031 - my_core.v Line 245.Module 'C_REG_FD_V5_0' not defined...」というエラー メッセージが表示される

説明

キーワード : COREGen, ISE, Project, Navigator, XST, synthesis, Synplicity, Synplify, Synopsys, Verilog, VHDL, 合成

重要度 : 重要

概要 :
CORE Generator モジュールの合成を Project Navigator から実行すると、XST で次のようなエラー メッセージが表示されます。

"Continuing compilation of source file 'design_top.prj'
ERROR:Xst:1031 - inter_blk_rec.v Line 837. Module 'C_MUX_BUS_V5_0' not defined
ERROR:Xst:1031 - inter_blk_rec.v Line 1937. Module 'C_REG_FD_V5_0' not defined
ERROR:Xst:1076 - top_inter_deinter.v Line 58. Identifier 'INIT' not declared
61 errors in compilation
-->
EXEWRAP detected a return code of '6' from program 'C:/Xilinx/bin/nt/xst.exe'

Done: failed with exit code: 0006."

XST 以外の合成ツールを使用している場合は、上記とは多少異なるエラー メッセージが表示されることがあります。

Synplify の場合は、次のようなエラー メッセージが表示されます。

"@E:"/home/michie/coregen/test/sid_v2/synth/inter_blk_rec.v":180:13:180:16| Unknown assignment target."

これらのエラー メッセージが表示されるのは、次のコアをデザインで使用している場合のみです。

Digital Down Converter v1.0 (Verilog または VHDL)
Multiply Accumulator v2.0 (Verilog)
Interleaver/Deinterleaver v2.0 (Verilog)

ソリューション

この問題は、CORE Generator で生成したビヘイビア モデルに、synopsys translate_off、synopsys translate_on、synthesis black_box 属性が含まれないために発生します。

この問題を回避するには、ビヘイビア モデルの該当する箇所に synopsys translate_off、synopsys translate_on、synthesis black_box 属性を手動で追加する必要があります。

VHDL

CORE Generator で生成した各ビヘイビア モデルに、次の 2 行を追加します (<my_core>.vhd ファイルを編集します)。

-- synopsys translate_off <==== ファイルの一番上にこのラインを追加します
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
...
...
...
END deinter_blk_rec_a;
-- synopsys translate_on <==== ファイルの一番下にこのラインを追加します

Verilog<my_core>.v ファイルを編集します。

各ビヘイビア ファイルには、主要なコア、ROC、TOC の 3 つのモジュールがあります。 このため、synopsys translate_off および synopsys translate_on 属性をそれぞれ 3 回ずつ追加する必要があります。 同様に、//synthesis black_box も 3 度追加する必要があります。

例 :

module my_core(
clk,
fd,
din,
ce,
aclr,
dout,
rdy,
block_start,
block_end
);
// synthesis black_box <==== この行を追加します
input clk;
input fd;
input [7 : 0] din;
input ce;
input aclr;
output [7 : 0] dout;
output rdy;
output block_start;
output block_end;
//synopsys translate_off <==== この行を追加します
wire n0 = 1'b0;
wire n1 = 1'b1;
...
...
...
wire BU59_O;
assign n90 = BU59_O;
BUF BU59(
.I(BU59_I),
.O(BU59_O)
);
// synopsys translate_on <==== この行を追加します
endmodule

module ROC(O);
//synthesis black_box <==== この行を追加します
output O;
reg o_out;
parameter WIDTH = 100;
//synopsys translate_off <==== この行を追加します
BUF b1(O, o_out);
initial
begin
o_out = 1;
#WIDTH o_out = 0;
end
//synopsys translate_on <==== この行を追加します
endmodule

module TOC(O);
//synthesis black_box <==== この行を追加します
output O;
reg o_out;
parameter WIDTH = 100;
//synopsys translate_off <==== この行を追加します
BUF b1(O, o_out);
initial
begin
o_out = 1;
#WIDTH o_out = 0;
end
//synopsys translate_on <==== この行を追加します
endmodule
AR# 14341
日付 10/08/2003
ステータス アーカイブ
種類 一般