工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> 埋め込み

FPGAステートマシンのためのバイナリ、グレイ、ワンホットエンコーディング実践ガイド

FPGA上で有限状態マシン(FSM)を実装する際のバイナリ、グレイ、ワンホットエンコーディングを詳細比較。合成ツールがこれらをどう評価・変換するかを理解することは、最適なパフォーマンスと電力効率を達成するために不可欠です。

有限状態マシンはデジタル設計に遍在します。合成ツールはRTLを定期的に分析してFSMを検出し、タイミング、面積、電力目標を達成するためにステートエンコーディングを書き換えることがあります。手動でステートコードを割り当てても、ツールが最適化戦略に基づいて異なる値—時には異なるビット幅で—を置き換える可能性があります。

VerilogでのFSM構築の復習には、拙記事『Verilogでの有限状態マシンの作成』を参照してください。

エンコーディングオプション:バイナリ、グレイ、ワンホット

最も一般的な3つのFSMエンコーディングはバイナリ、グレイ、ワンホットです。それぞれ異なるトレードオフを提供します。

バイナリエンコーディング

バイナリエンコーディングは、すべての状態を表現するために最小限のビット数を割り当てます。最もスペース効率の良い選択ですが、状態遷移で複数ビットが変化する可能性があり、動的電力を増加させる恐れがあります。

FPGAステートマシンのためのバイナリ、グレイ、ワンホットエンコーディング実践ガイド

バイナリエンコーディングの例。Steve Arar作

グレイエンコーディング

グレイコードは、連続する状態間で1ビットのみが変化することを保証します。FSMが予測可能なシーケンスをたどる場合、グレイエンコーディングはスイッチングアクティビティを削減し、動的電力を低減できます。

FPGAステートマシンのためのバイナリ、グレイ、ワンホットエンコーディング実践ガイド

グレイコードホイール。Marie Christiano作

ワンホットエンコーディング

ワンホットエンコーディングは、各状態を専用のフリップフロップビットで表現。より多くのロジックリソースを消費し、多くの無効な組み合わせを導入しますが、ステートデコーディングが不要になり、組み合わせロジックを簡素化し、高クロック周波数でタイミングを改善することが多いです。

FPGAステートマシンのためのバイナリ、グレイ、ワンホットエンコーディング実践ガイド

ワンホットエンコーディングの例。Steve Arar作

VHDLでのステートエンコーディングの更なる洞察については、Steve Ararの『VHDLでの有限状態マシンのステートエンコーディング』を参照してください。

適切なエンコーディングの選択

最適なエンコーディングの決定は文脈依存であり、面積、タイミング、電力のバランスを取る必要があります。一般的なガイドラインには以下が含まれます:

トレードオフは微妙なため、合成ツールにエンコーディング選択を任せることを推奨します。それでも、3つの主要開発ツールと3つの異なるステートマシンで比較実験を行い、各エンコーディングが実際にどう振る舞うかを解説しました。結果は次回の記事で議論します。

埋め込み

  1. シックスシグマ vs リーン製造:適切な戦略選択の明確なガイド
  2. グレー鋳鉄を解明:特性、グレード、産業用途
  3. 八進法と十六進法:エンジニアのための実践ガイド
  4. 二進法加算のルール、例、デジタルコンピュータでの役割
  5. 二の補数を用いた二進法減算
  6. 二進法オーバーフロー:符号ビットが二進法加算に与える影響
  7. モールス信号と二重恐喝:高度マルウェア脅威の現在地
  8. EDM・CNC機械工場の火災防護戦略:生産性と安全を守る
  9. 300・400・500シリーズステンレス鋼:組成・特性・用途
  10. C++構造体とクラス:組み込み開発者のための実践ガイド
  11. Conwayのライフゲームで学ぶFPGAエンコーディング選択の実践ガイド