インテル® Quartus® Prime プロ・エディションのユーザーガイド: デザインの推奨事項

ID 683082
日付 8/03/2023
Public
ドキュメント目次

1.6.4.2. Verilog HDLのステートマシン

Verilog HDLのステートマシンの適切な認識と推論を保証するため、Verilog HDLでは次のガイドラインが追加適用されます。

お使いの合成ツールのドキュメントを参照し、特定のコーディングに関する推奨事項を確認してください。合成ツールでステートマシンが認識および推論されない場合は、ツールはステートマシンを通常の論理ゲートおよびレジスターとして実装します。また、ステートマシンは インテル® Quartus® Primeコンパイルレポートの Analysis & Synthesis セクションにステートマシンとして表示されません。この場合、 インテル® Quartus® Primeの合成では、ステートマシンに固有の最適化を実行しません。

  • SystemVerilog規格を使用している場合は、列挙型を使用してステートマシンを記述します。
  • ステートマシンの状態は、Verilog-1995およびVerilog-2001のパラメーター・データ型で表します。また、パラメーターを使用して状態の割り当てを行います。このパラメーターの実装により、ステートマシンが読みやすくなり、コーディング時のエラーリスクが軽減されます。
  • 状態変数に整数値を直接使用しないでください (next_state <= 0 など)。ただし、整数の使用により、 インテル® Quartus® Prime開発ソフトウェアでの推論が妨げられるわけではありません。
  • 状態遷移ロジックで次の例のような算術を使用する場合、 インテル® Quartus® Prime開発ソフトウェアはステートマシンを推論しません。
    case (state)
    	0: begin
    		if (ena) next_state <= state + 2;
    		else next_state <= state + 1;
    		end
    	1: begin
    	...
    endcase
  • 状態変数が出力の場合、 インテル® Quartus® Prime開発ソフトウェアはステートマシンを推論しません。
  • インテル® Quartus® Prime開発ソフトウェアは、符号付き変数のステートマシンを推論しません。