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