One-hot

one-hot (ワン・ホット) は、デジタル回路のビット列において、1ビットだけHigh(1)であり、他はLow(0)である状態を指す。類似のものとして、0が1つだけで、他がすべて1であるようなビット列をone-cold(ワン・コールド)と呼ぶことがある。
応用.
one-hotエンコーディングはしばしば状態機械の状態を表すのに用いられる。二進法やグレイコードを使うときにはその状態を決定するためにデコードが必要だが、one-hotを使うときには不要である。というのも、one-hotではビット列の"n"番目のビットがHighであれば"n"番目の状態を表していることになるからである。
15個の連続する状態を持つリング・カウンタは状態機械の一例である。one-hotでこれを実現するには、15個のフリップフロップを一列に並べて、それぞれのフリップフロップのQ出力が次のフリップフロップのD入力に入るようにする。ただし初段のフリップフロップのD入力には終段のフリップフロップのQ入力が入るようにする。最初のフリップフロップは1番目の状態を表し、2番目のフリップフロップは2番目の状態を表す。それ以降も同様で、15番目(終段)のフリップフロップは最後の状態を表す。状態機械をリセットすると、最初のフリップフロップには「1」が、それ以外のフリップフロップにはすべて「0」がセットされる。クロック信号の立ち上がりによって、Hotビット(1であるビット)が次のフリップフロップに移動する。このようにしてHotビットは15番目のフリップフロップまで移動し、その次には最初のフリップフロップに戻る。
は二進数またはグレイコードをone-hot表記に変換する。
はone-hot表記を二進数またはグレイコードに変換する。
他のエンコーディング方法との違い.
利点.
one-hotを使うことで、他のエンコーディング方法を使った場合よりも速いクロック周波数で状態機械を動作させることができる。