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

FPGA Express - VHDL でのエラー : 「Range 'U' to 'X' (or 'Z' to '-') not covered by choices. (VSS-838)」というエラー メッセージが表示される

説明

キーワード : 1.5, 1.5i, Foundation, 3.1, 3.2, Express, range, not, covered, VSS, 838, VSS-838, mux,multiplex, multiplexer, VHDL, 1.5J, 範囲, マルチプレクサ

重要度 : 標準

概要 :
マルチプレクサの推測をする VHDL コード ブロックの構文で、ポートが次のように定義されています。

MUX_CTRL: in STD_LOGIC;

また、処理構文のコードは次のように定義されています。

case MUX_CTRL is
when '0' =>
<<do_something>>;
when '1' =>
<<do_something_else>>;
end case;

上記の場合、FPGA Express で次のエラー メッセージが表示されます。

Error: Range 'U' to 'X' not covered by choices. (VSS-838) (FE-dm-hdlc-unknown)
Error: "Range 'Z' to '-' not covered by choices. (VSS-838) (FE-dm-hdlc-unknown)

ソリューション

このエラーは、STD_LOGIC で使用できる値で CASE ステートメントに含まれていないものがあるために発生します。
STD_LOGIC の値には、0 および 1 だけではなく、U、X、Z などの値が含まれます。 このような値を含むには、次を CASE ステートメントに追加してください。

when others => null;

これは、CASE ステートメントの最後の比較後に追加してください。

次は HDL Editor Language Assistant に記された CASE ステートメントのコードです。

case <expression> is
when <choices> =>
<statements>
when <choices> =>
<statements>
when others =>
<statements>
end case;
-- example:
--case SEL is
-- when 0 | 1 | 2 =>
-- Z <= B;
-- when 3 to 10 =>
-- Z <= C;
-- when others =>
-- null;
--end case;
AR# 7158
作成日 08/01/1999
最終更新日 08/11/2003
ステータス アーカイブ
タイプ 一般