Quartus® II ソフトウェアの解析および合成では、有限ステート・マシン (FSM) を合成する際にこの警告が表示されることがあります。これは Quartus® II ソフトウェア・バージョン 6.0 SP1 で無効な警告が表示されます。Quartus® II ソフトウェア・バージョン 6.1 以降、不正な警告メッセージが表示されません。
この警告は、推論された FSM の状態変数を出力ポートに割り当てる場合に発生します。 次の例 arbiter_state
では、size の出力であり、 [1:0]
mystate
割り当てられた値であり、4 つのオプションの case ステートメントで使用されます。
assign arbiter_state = mystate;
case (mystate)
...Branch 1...
...Branch 2...
...Branch 3...
...Branch 4...endcase
Quartus® II の解析および合成で FSM が推論される場合、1 ホットエンコーディングを使用して状態変数をエンコードします。 この場合、mystate は 4 つの状態を持ち、4 ビットになります。この例では、 mystate
呼び出される信号に割り当てると arbiter_state
、ソフトウェアは mystate
アサインメントを実装する前に状態変数をエンコードします。 しかし、ソフトウェアは、後ではなく値をエンコードする前に、ビット・トランビションをチェックします。 したがって、ソフトウェアはアサインメントの右側を 2 ではなく 4 ビットと解釈し、警告メッセージを発行します。卉卉の警告はデザインの機能に影響を与えありません。
インテル® Quartus® II ソフトウェアのバージョン 6.0 以前のバージョンでは警告メッセージを消すために、ターゲット出力信号のサイズ ( arbiter_state
上記の例) を 4 ビットに変更し、下位 2 ビット、最小符号ビットを使用することができます。