AR# 4689

FPGA Express - HDL-178 警告 : バス スライスがセンシビリティ リストでサポートされていない

説明

キーワード : bus slice, sensitivity list, support, warning, バス スライス, センシビリティ リスト, サポート, 警告

重要度 : 標準

概要 :
FPGA Express 2.1 を使用した場合、バス スライスがプロセス文で読み込まれると、信号は読み込まれたがセンシビリティ リストではサポートされないことを警告するメッセージが表示されます。 ただし、バス スライス (bob(2 downto 1) など) がセンシビリティ リストに追加されると、FPGA Express で次のような警告が表示されます。

Warning L69/C0 : #0 Warning: Only simple variables are checked in the sensitivity list. The variable in the sensitivity list on line 69 will be ignored. (HDL-178)

ソリューション

1

バス スライスはセンシビリティ リストでサポートされません。 デザインを正しくコード化するには、まずダミー信号をバス スライス (組み合わせ) に割り当て、プロセス文およびセンシビリティ リストでそのバス スライスをダミー信号に置き換える必要があります。

これには、次の手順に従います。

1. 問題のバス スライスの各ビットに対してダミー信号を作成します。
2. バス スライスのビットを組み合わせロジックでダミー信号に割り当てます。
3. センシビリティ リストおよび問題のプロセス文で、バス スライスへの参照をダミー信号に置き換えます (バス スライスから読み込むプロセス文のみ)。

例 :
architecture CFG_arch of CFG_REG is

-- Added for workaround *******************************
signal dummy_net : std_logic;

begin
-- Added for workaround ******************************
dummy_net <= is_sel(0);

-- original sensitivity list
-- process (cfg, is_sel(0))
-- workaround sensitivity list - uses redirected signal for bus slice *******
process (cfg, dummy_net)

begin
if cfg='1' then

-- original assignment
-- db(2) <= is_sel(0);
-- Redirected Bus bit used in place of slice - workaround ****
db(2) <= dummy_net;

else
db(2) <= 'Z';
end if;

end process;

end CFG_arch;

2

プロセス文内でバス全体にアクセスする場合、センシビリティ リストに含める必要があります。 正しい構文を使用する限り、これは有効です。

Incorrect syntax:
process (a, b, bob(3 downto 0))

Correct syntax:
process (a, b, bob);
AR# 4689
日付 08/11/2003
ステータス アーカイブ
種類 一般