Codice binario |
Codice Gray |
One-hot
|
000 |
000 |
00000001
|
001 |
001 |
00000010
|
010 |
011 |
00000100
|
011 |
010 |
00001000
|
100 |
110 |
00010000
|
101 |
111 |
00100000
|
110 |
101 |
01000000
|
111 |
100 |
10000000
|
In elettronica digitale, l'espressione one-hot si riferisce ad un gruppo di bit tutti posti a 0 tranne uno.[1] Un'implementazione simile in cui tutti i bit sono posti a 1 tranne uno è chiamata one-cold.[2]
Utilizzo
Un'usuale applicazione della codifica one-hot è per indicare lo stato di una macchina a stati finiti.[3] Infatti, mentre con il codice binario o il codice Gray un automa a stati finiti necessita di un decoder per determinare il suo stato, una macchina one-hot si trova nello stato n-esimo corrispondente al bit impostato ad 1.
Un contatore ad anello con quindici stati ordinati sequenzialmente è un esempio di questo automa. Un'implementazione one-hot necessiterebbe di quindici flip-flop concatenati in serie, con ogni output Qi connesso con l'input Di+1del successivo e l'output Qn dell'ultimo flip-flop connesso con l'input D1 del primo. Il primo flip-flop rappresenta il primo stato, il secondo rappresenta il secondo stato e così via. Al ripristino della macchina tutti i flip-flop sono resettati a 0, tranne il primo della catena che è impostato a '1'. Il colpo di clock successivo, il bit hot avanza di un posto. Il bit impostato ad 1 progredisce in questo modo fino al quindicesimo stato, dopodiché la macchina torna al primo stato.
Un circuito di decodifica dell'indirizzo (address decoder) converte un codice Gray o binario nella rappresentazione one-hot. Un codificatore a priorità (priority encoder) effettua l'operazione inversa.
Differenze dagli altri metodi di codifica
Vantaggi
- Determinare lo stato della macchina al costo costante di accesso ad un flip-flop
- Cambiare lo stato della macchina al costo costante di accesso a due flip-flop
- Semplice da progettare e modificare
- Rilevare semplicemente uno stato improprio dei flip-flop
- In generale, possibilità di girare ad un ritmo di clock più elevato[4]
Svantaggi
- Richiede molti più flip-flop,[5] il che rende impossibile effettuare questa implementazione, ad esempio, in un dispositivo PAL
- Possibilità più elevata di capitare in uno stato improprio[6]
Note
- ^ David and Harris, Sarah Harris, Digital design and computer architecture, 2nd ed., San Francisco, Calif., Morgan Kaufmann, 2013, p. 129, ISBN 978-0-12-394424-5.
- ^ (EN) Decoders, su csit-sun.pub.ro, Politechnica University of Bucharest - Dipartimento di informatica. URL consultato il 9 gennaio 2014.
- ^ (EN) Roger L. Traylor, One-Hot State Machines (PDF), su web.engr.oregonstate.edu, Oregon State University. URL consultato il 9 gennaio 2014 (archiviato dall'url originale il 9 gennaio 2014).
- ^ Xilinx. "HDL Synthesis for FPGAs Design Guide". section 3.13: "Encoding State Machines". Appendix A: "Accelerate FPGA Macros with One-Hot Approach". 1995.
- ^ Con n stati, la codifica one-hot richiede n bit, mentre un altro tipo di codifica ne può richiedere
- ^ Ad esempio quando tutti gli stati sono a zero o più di uno stato è impostato ad 1
Voci correlate