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

4.2i Foundation State Editor、XABEL - 作成したワンホット ステート マシンがフリーズする

説明

キーワード : ABEL, one-hot, one hot, FSM, initialize, ワンホット, 初期化

重要度 : 標準

概要 :
Foundation State Editor で ABEL を使用してワンホット ステート マシンを作成すると、ステート マシンがフリーズしてしまいます (000 のまま動きません) 。

ソリューション

1

この問題は、すべてのステート レジスタが 0 に初期化された状態で ABEL コードが生成されたために発生します。 これはステート マシンがすべて 0 に設定されたということで、ワンホットにエンコードされたステート マシンではどのステートにもありません。

問題を回避するには、ABEL コードを手動で変更し、コードを初期ステートに戻します。 これには、ABEL コードの Equations セクションに次の行を追加します。

<init_state>.AP = 0;

ここで、<init_state> は初期ステートです。

これにより、このステート レジスタは 1 に設定されるプリセット レジスタになり、ワンホット ステート マシンは最初にこのステートになります。

2

ソリューション 1 で問題を回避したが、ステート図にさらに変更を加えた場合、ABEL コードが再生成され、初期ステートが変わってしまいます。

この場合、State Editor 画面の上方にある [//diagram ACTIONS] ボックスに初期ステートを書き込むと、上書きされません。 [//diagram ACTIONS] ボックスをダブルクリックし、次のように記述します。

<init_state>.AP=0;
AR# 3151
作成日 12/03/1997
最終更新日 08/12/2003
ステータス アーカイブ
タイプ 一般