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# 14047

XST - 「ERROR:Xst:827 - file_name Line xx: Signal xx cannot be synthesized, bad synchronous description.」というエラー メッセージが表示される

説明

キーワード : VHDL, Verilog, synchronous, flip, flop, flip-flop, register, memory, process, always, 同期, フリップフロップ, レジスタ, メモリ, プロセス, 合成

レジスタ、フリップフロップ、メモリなどの同期エレメントを推論しようとすると、次のようなエラー メッセージが表示されます。

"ERROR:Xst:827 - file_name (Line xx). Signal xx cannot be synthesized, bad synchronous description."

このエラー メッセージは、次のような VHDL コードを使用した場合に発生します。

:
:
process (c, r) is begin
if r'event and r = '1' then
q <= '0';
elsif c'event and c = '1' then
q <= d;
end if;
end process;
:
:

or

:
:
process (c, r) is begin
if (r = '1' ) then
q <= '0';
if c'event and c = '1' then
q <= d;
end if;
end if;

end process;
:
:

ソリューション

VHDL コードの構文が正しくても、XST では各種の同期エレメントの推論に定義済みのテンプレートが使用されます。

同期エレメントの記述は、'event 属性に基づいています。XST で同期エレメントが推論されるようにするには、process の最上位の if 文に 'event 属性を含める必要があります。また、process 内に 'event 文を組み込まないようにする必要があります。次に、例を示します。

例 1:

:
:
synchronous_description : process (clk, reset) is begin
if clk'event and clk = '1' then -- topmost if statement
if reset = '1' then -- synchronous reset
q <= '0';
else
q <= d;
end if;
end if;
end process;
:
:

上記の例では、'event 文が組み込まれていません。また、'event 文は最上位の if 文の一部になっています。最上位の if 文の次の行は、同期リセットを推論するための記述です。必要に応じて、さらに if 文を追加できます。

例 2:

:
:
synchronous_description : process (clk, reset) is begin
if reset = '1' then -- asynchronous reset
q <= '0'; -- you can have embedded if statements if you need to
elsif clk'event and clk = '1' then -- still the topmost if statement
q <= d; -- you can put your case statements here or
end if; -- embed more if statements but not
end process; -- any more 'event statements
:
:

上記の例では、'event 文が組み込まれていません。また、'event 文は elsif 文に含まれているため、最上部の if 文の一部であると見なすことができます。必要に応じて、最上位の if 文の下にさらに VHDL コードを追加できます。

推論テンプレートは ISE テンプレートおよび『XST ユーザー ガイド』(http://japan.xilinx.com/support/software_manuals.htm) にも含まれています。
AR# 14047
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加