UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

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
ステータス アーカイブ
種類 一般
このページをブックマークに追加