AR# 19221

|

6.2i SP1 XST 全般- 「ERROR:HDLParsers:164 - <coregen_core>.vhd Line 135. parse error, unexpected $」 というエラー メッセージが表示される

説明

キーワード : synthesize, synthesis, COREGen, CORE Generator, $, 合成

重要度 : 標準

概要 :
CORE Generator のコアを合成すると、XST で次のエラー メッセージが表示されます。

"ERROR:HDLParsers:164 - <coregen_core>.vhd Line 135. parse error, unexpected $"

ソリューション

1

このエラーを解消するには、次のコンパイラ命令を <CoreGen_core>.vhd ファイルに追加してください。

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

-- off 命令を IEEE ライブラリの直後、Xilinx CoreLib の前に追加します。
-- synopsys translate_off

Library XilinxCoreLib;

-- on 命令をエンティティ宣言の直前に追加します。
-- synopsys translate_on

ENTITY dummy IS
port (
addra: IN std_logic_VECTOR(10 downto 0);
addrb: IN std_logic_VECTOR(10 downto 0);
clka: IN std_logic;
clkb: IN std_logic;
dina: IN std_logic_VECTOR(3 downto 0);
doutb: OUT std_logic_VECTOR(3 downto 0);
wea: IN std_logic);
END dummy;

ARCHITECTURE dummy_a OF dummy IS

-- off 命令をアーキテクチャの直後、コンポーネント宣言の前に追加します。
-- synopsys translate_off

component wrapped_dummy
port (
addra: IN std_logic_VECTOR(10 downto 0);
addrb: IN std_logic_VECTOR(10 downto 0);
clka: IN std_logic;
clkb: IN std_logic;
dina: IN std_logic_VECTOR(3 downto 0);
doutb: OUT std_logic_VECTOR(3 downto 0);
wea: IN std_logic);
end component;

-- Configuration specification
for all : wrapped_dummy use entity XilinxCoreLib.blkmemdp_v5_0(behavioral)
generic map(
c_reg_inputsb => 0,
c_reg_inputsa => 0,
c_has_ndb => 0,
c_has_nda => 0,
c_ytop_addr => "1024",
c_has_rfdb => 0,
c_has_rfda => 0,
c_yena_is_high => 1,
c_ywea_is_high => 1,
c_yclka_is_rising => 1,
c_yhierarchy => "hierarchy1",
c_ysinita_is_high => 1,
c_ybottom_addr => "0",
c_width_b => 4,
c_width_a => 4,
c_sinita_value => "0",
c_sinitb_value => "0",
c_limit_data_pitch => 18,
c_write_modeb => 0,
c_write_modea => 0,
c_has_rdyb => 0,
c_has_rdya => 0,
c_yuse_single_primitive => 1,
c_addra_width => 11,
c_addrb_width => 11,
c_has_limit_data_pitch => 0,
c_default_data => "0",
c_pipe_stages_b => 0,
c_yweb_is_high => 1,
c_yenb_is_high => 1,
c_pipe_stages_a => 0,
c_yclkb_is_rising => 1,
c_enable_rlocs => 0,
c_ysinitb_is_high => 1,
c_has_web => 0,
c_has_default_data => 1,
c_has_sinitb => 0,
c_has_wea => 1,
c_has_sinita => 0,
c_has_dinb => 0,
c_has_dina => 1,
c_ymake_bmm => 0,
c_has_enb => 0,
c_has_ena => 0,
c_depth_b => 2048,
c_mem_init_file => "mif_file_16_1",
c_depth_a => 2048,
c_has_doutb => 1,
c_has_douta => 0,
c_yprimitive_type => "1kx4");

on 命令をコンポーネント宣言およびコンフィギュレーション仕様の直後、BEGIN の直前に追加します。
-- synopsys translate_on

BEGIN

-- off 命令を BEGIN の直後、コンポーネントのインスタンシエーションの前に追加します。
-- synopsys translate_off

U0 : wrapped_dummy
port map (
addra => addra,
addrb => addrb,
clka => clka,
clkb => clkb,
dina => dina,
doutb => doutb,
wea => wea);

-- on 命令を END の直前に追加します。
-- synopsys translate_on

END dummy_a;



この問題は通知されており、今後のリリースで修正されます。

2

このエラー メッセージは、VHDL コードのブロックが正しく閉じられていない場合に表示されます。 よく使用される VHDL コードには、エンティティ、アーキテクチャ、パッケージ、パッケージ本体、ファンクション、プロシージャ、プロセスなどがあります。 これらのブロックは、それぞれ明確に開始および終了している必要があります。 また、アーキテクチャ、ファンクション、プロシージャ、プロセスには、キーワード begin で終わる宣言が含まれます。 こういったブロックも正しく閉じられていないと、次に続くコード ブロックが同じブロックにあるように認識されてしまいます。 合成ツールは、ファイルの終わりまで読み込むと、そのコード ブロックの終了を待つ状態、またはファイルの終了が認識できない状態になります。

HDL コードですべてのコードが正しく閉じられていることを確認してください。
AR# 19221
日付 07/18/2007
ステータス アーカイブ
種類 一般
People Also Viewed