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
日付 08/12/2003
ステータス アーカイブ
種類 一般