AR# 3228

4.2i Foundation State Editor - 「Logical Error 1002: Source line length exceeds 150 characters」というエラー メッセージが表示される

説明

キーワード : Foundation, State Editor, line length, ABEL, blif, ライン, 行, 長さ

重要度 : 標準

概要 :
ステート マシンに多数のステートがあります。ABEL でステート マシンを生成しようとすると、次のようなエラー メッセージが表示されます。

"Logical Error 1002: Source line length exceeds 150 characters."

ソリューション

1

State Editor では、デザインに対して ABEL コードが生成されます。 この ABEL コードには、ステート マシン内のすべてのステートの後に STATE_REGISTER が宣言されます。 ステートが多数ある場合、この行が大変長くなります。

HDL コード生成中、すべての行が ABEL ツールに最適化どうかはチェックされませんから、ABEL コンパイラで設定された行長制限に違反した HDL コードが生成される可能性はあります。

この問題は、ステート マシンを生成し、[Synthesize] をクリックすると発生します。

ソリューション 1:

State Editor でデザインが完全に合成されなかった場合、[Synthesis] -> [HDL Code Generation] をクリックします。 コードを表示するかどうかを尋ねるメッセージが表示されますので、[Yes] をクリックします。 HDL Editor を選択し、[Edit] で [Read Only] をオフにします。 問題の行を見つけて、行を短くします。

たとえば、次のようにステート名の最後が数字の場合

ER1, ER2, ER3, ER4, ER5, ER6, START STATE;

次のように変更します。

ER1..ER6, START STATE;

変更したファイルを保存し、HDL Editor で合成します。

2

ソリューション 1 と同様に、State Editor を使用して HDL コードを生成し、HDL Editor でコードを変更します。ただし、変更する場合、長いステート行を短い行に分割します。

例 :

ER1, ER2, ER3, ER4, ER5, ER6, START STATE;

次のように変更します。

ER1, ER2, ER3, ER4 STATE;
ER5, ER6, START STATE;

変更した HDL コードを保存し、HDL Editor で合成します。

3

ステート エンコーディング手法をシンボリックからバイナリに変更します。

- [FSM] -> [Machines] -> [Machine Name] をクリックします。[Machine Name] は、エンコーディング手法を変更するステート マシンです。 [Machine Properties] ダイアログ ボックスが開きます。
- [General] タブで、エンコーディングの [Encoded Radio Button] を選択します。 エンコーディング手法のリスト ボックスで [Binary] を選択します。
- [OK] をクリックし、[Synthesis] -> [Synthesize as usual] をクリックしてステート マシンを生成します。
AR# 3228
日付 08/16/2002
ステータス アーカイブ
種類 一般