AR# 32974

11.2 XST - 「ERROR:HDLCompiler:940 - "<file>.vhd" Line xx: Unmatched pragma translate/synthesis_off pragma found」というエラー メッセージが表示される

説明

キーワード : XST, Spartan-6, Virtex-6, S6, V6, 11.2 , Parser, HDLCompiler:940, 合成, エラー

Virtex-6/Spartan-6 デバイスを使用してデザインをターゲットし直しすと、次のエラーが発生します。このデザインは、Virtex-6/Spartan-6 以前のデバイスを使用すると、XST で合成できます。なぜですか。

ERROR:HDLCompiler:940 - " ex_0005.vhd" Line 16: Unmatched pragma translate/synthesis_off pragma found. A matched pair of translate_off and translate_on directives with same keywords is required.

VHDL サンプル コード

library ieee;
use ieee.std_logic_1164.all;

entity ex_0005 is
port(clk: in std_logic;
d : in std_logic;
q : out std_logic);
end ex_0005;

architecture beh of ex_0005 is
begin
process (clk)
begin
if (clk'event and clk='1') then
q <= d;
-- pragma translate_off
q <= not (d);
-- translate_on
end if;
end process;
end;

Verilog サンプル コード

File: ex_0005_v.v
Compilation Library: work

module ex_0005_v (clk, d, q);
input clk, d;
output q;
reg q;

always @(posedge clk)
begin
q <= d;
// pragma translate_off -- Note: Error points here
q <= not (d);
// translate_on
end

endmodule

ソリューション

11.2 XST では Virtex-6 および Spartan-6 に新しい VHDL/Verilog 解析が導入されました。 この変更の詳細は、(Xilinx Answer 32927) を参照してください。

Virtex-6 および Spartan-6 ファミリでは XST を使用してデザインがコンパイルされるとき、translate_off および translate_on 指示詞のキーワードを同じにする必要があります。サポートされるキーワード は、synthesis、synopsys、pragma、exemplar、および verific です。translate_off/_on 指示詞は、キーワードなしで使用できます。

この問題を回避するには、translate_off/_on 指示詞に同じキーワードを使用します。

たとえば、上記のコードの場合はソース コードを次のように編集できます。

library ieee;
use ieee.std_logic_1164.all;

entity ex_0005 is
port(clk: in std_logic;
d : in std_logic;
q : out std_logic);
end ex_0005;

architecture beh of ex_0005 is
begin
process (clk)
begin
if (clk'event and clk='1') then
q <= d;
-- pragma translate_off -- Note: Error points here
q <= not (d);
-- pragma translate_on
end if;
end process;
end;




File: ex_0005_v.v
Compilation Library: work

module ex_0005_v (clk, d, q);
input clk, d;
output q;
reg q;
always @(posedge clk)
begin
q <= d;
// pragma translate_off -- Note: Error points here
q <= not (d);
// pragma translate_on
end

endmodule
AR# 32974
日付 12/15/2012
ステータス アクティブ
種類 一般