One-hot

Da Wikipedia, l'enciclopedia libera.
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] Una simile implementazione in cui tutti i bit sono posti a 1 tranne uno è chiamata one-cold.[2]

Utilizzo[modifica | modifica wikitesto]

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 proprio 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 tale 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 prossimo colpo di clock, 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[modifica | modifica wikitesto]

Vantaggi[modifica | modifica wikitesto]

  • Determinare lo stato della macchina al costo costante di accesso ad un flip-flop
  • Cambiare lo stato della macchina ad un costo costante di accesso a due flip-flop
  • Semplice da progettare e modificare
  • Rilevare semplicemente uno stato improprio dei flip-flop
  • In generale, l'utilizzo di un'implementazione one-hot permette ad una macchina di girare ad un ritmo di clock più elevato[4]

Svantaggi[modifica | modifica wikitesto]

  • Richiede molti più flip-flop,[5] il che rende impossibile effettuare tale implementazione, ad esempio, in un dispositivo PAL
  • Possibilità più elevata di capitare in uno stato improprio[6]

Note[modifica | modifica wikitesto]

  1. ^ David and Harris, Sarah Harris, Digital design and computer architecture, 2nd ed., San Francisco, Calif., Morgan Kaufmann, p. 129, ISBN 978-0-12-394424-5.
  2. ^ (EN) Decoders, Politechnica University of Bucharest - Dipartimento di informatica. URL consultato il 9 gennaio 2014.
  3. ^ (EN) Roger L. Traylor, One-Hot State Machines, Oregon State University. URL consultato il 9 gennaio 2014.
  4. ^ Xilinx. "HDL Synthesis for FPGAs Design Guide". section 3.13: "Encoding State Machines". Appendix A: "Accelerate FPGA Macros with One-Hot Approach". 1995.
  5. ^ Con n stati, la codifica one-hot richiede n bit, mentre un altro tipo di codifica ne può richiedere \mathcal{d}log_2(n)\mathcal{e}
  6. ^ Ad esempio quando tutti gli stati sono a zero o più di uno stato è impostato ad 1

Voci correlate[modifica | modifica wikitesto]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica