ステートのエンコーディング

[] [] []


FPGA外部へ出力する制御信号をステートマシンで作ることを考える。制御信号はハザードがのらないようにFF出力にする必要があるが、各ステートの値の割り当て(FSMのエンコーディングという)を適当に決めていると、ステートの値から制御信号を組合せ回路でデコードするので、出力前にFFを経由させなければならず、1クロック分のレイテンシが生じる。

そこで、各制御信号をステートレジスタの1ビットに割り当てれば、制御信号がFF出力になるのでそのまま出力できる

ただし、同じ組合せでもそこに至るシーケンスが異なる場合は別々のステートになるので、ステートに余分なビットを付け加える必要があ

例) SA1SB1は同じ出力値だったとしても異なるステートを割り当てなければならない

この方法を使うときの注意として、論理合成ツールは回路規模や遅延が小さくなるようにエンコーディングを勝手に変更してしまうので、変更されないように合成制約をかけなければならない。(FSMエンコーディング)


[] [] []