One-hot

In digital circuits and machine learning, a one-hot is a group of bits among which the legal combinations of values are only those with a single high (1) bit and all the others low (0).[1] A similar implementation in which all bits are '1' except one '0' is sometimes called one-cold.[2] In statistics, dummy variables represent a similar technique for representing categorical data.

BinaryGray codeOne-hot
00000000000001
00100100000010
01001100000100
01101000001000
10011000010000
10111100100000
11010101000000
11110010000000

Applications

One-hot encoding is often used for indicating the state of a state machine. When using binary or Gray code, a decoder is needed to determine the state. A one-hot state machine, however, does not need a decoder as the state machine is in the nth state if and only if the nth bit is high.

A ring counter with 15 sequentially ordered states is an example of a state machine. A 'one-hot' implementation would have 15 flip flops chained in series with the Q output of each flip flop connected to the D input of the next and the D input of the first flip flop connected to the Q output of the 15th flip flop. The first flip flop in the chain represents the first state, the second represents the second state, and so on to the 15th flip flop which represents the last state. Upon reset of the state machine all of the flip flops are reset to '0' except the first in the chain which is set to '1'. The next clock edge arriving at the flip flops advances the one 'hot' bit to the second flip flop. The 'hot' bit advances in this way until the 15th state, after which the state machine returns to the first state.

An address decoder converts from binary or Gray code to one-hot representation. A priority encoder converts from one-hot representation to binary or Gray code.

In natural language processing, a one-hot vector is a 1 × N matrix (vector) used to distinguish each word in a vocabulary from every other word in the vocabulary. The vector consists of 0s in all cells with the exception of a single 1 in a cell used uniquely to identify the word. One-hot encoding ensures that machine learning does not assume that higher numbers are more important. For example, the value '8' is bigger than the value '1', but that does not make '8' more important than '1'. The same is true for words: the value 'New York' is not more important than 'York'.

Differences from other encoding methods

Advantages

  • Determining the state has a low and constant cost of accessing one flip-flop
  • Changing the state has the constant cost of accessing two flip-flops
  • Easy to design and modify
  • Easy to detect illegal states
  • Takes advantage of an FPGA's abundant flip-flops

Using a one-hot implementation typically allows a state machine to run at a faster clock rate than any other encoding of that state machine.[3]

Disadvantages

  • Requires more flip-flops than other encodings, making it impractical for PAL devices
  • Many of the states are illegal[4]
gollark: Oops, oh well.
gollark: `[REDACTED] Wilde RetweetedTes‏Verified account @tesFeb 10We learn from each other. So, I’m less a teacher, more a facilitator, writes @ChrisWilde78 as he tells you how you can also teach through play @LEGOEDUCATION (sponsored)`
gollark: `Head of Digital Technology & Computing, Teacher of the year Commendation 2006. Dynamo Regional Skills Lead 2014. Lego Education Teacher Award Winner 2018.` ← his twitter profile.
gollark: hello-worldThis is a test repositoryUpdated on Jun 28, 2016raspi-previewForked from RealVNC/raspi-previewPreview version of VNC Server optimized for the Raspberry Pi7 Updated on Apr 28, 2016
gollark: «PotatOS»

See also

References

  1. Harris, David and Harris, Sarah (2012-08-07). Digital design and computer architecture (2nd ed.). San Francisco, Calif.: Morgan Kaufmann. p. 129. ISBN 978-0-12-394424-5.
  2. "One-Hot Encoding". www.sciencedirect.com. Retrieved 2020-01-20.
  3. Xilinx. "HDL Synthesis for FPGAs Design Guide". section 3.13: "Encoding State Machines". Appendix A: "Accelerate FPGA Macros with One-Hot Approach". 1995.
  4. Cohen, Ben (2002). Real Chip Design and Verification Using Verilog and VHDL. Palos Verdes Peninsula, CA, US: VhdlCohen Publishing. p. 48. ISBN 0-9705394-2-8.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.