Antes de hacer la pregunta, he buscado en Google las ventajas de la codificación de estado de activación rápida en comparación con otras, como la codificación de estado gris y binario.
Pude entender las ventajas y desventajas de one-hot sobre el esquema de codificación de otros, como la distancia constante de hamming (dos), rápido pero que requiere un N flops, etc.
Muchos artículos mencionaron que el uso rápido es rápido y se adapta al diseño de alta velocidad, y también mencionaron que la razón es que tiene un tiempo de decodificación muy pequeño en comparación con la codificación gris y la codificación binaria.
Sin embargo, no pude entender por qué la decodificación instantánea es más rápida en comparación con otras. Por ejemplo, cuando decodificamos la máquina de estado codificada de un solo uso, la declaración del caso podría implementarse como se muestra a continuación
parameter STATE_ONE = 3'b001,
STATE_TWO = 3'b010;
STATE_THREE = 3'b100;
parameter STATE_ONE_ID = 'd0,
STATE_TWO_ID = 'd1;
STATE_THR_ID = 'd2;
reg [2:0] states;
switch(1'b1)
states[STATE_ONE_ID]: begin end
states[STATE_TWO_ID]: begin end
...
También para los estados codificados en binario, podríamos utilizar el siguiente código para decodificar
parameter STATE_ONE = 2'b00,
STATE_TWO = 2'b01,
STATE_THREE = 2'b10;
case (current_state)
STATE_ONE : begin end
STATE_TWO : begin end
STATE_THREE : begin end
....
Cuando nos fijamos en el RTL que implementa el decodificador para un solo recurso y binario, no parece realmente diferente.
Me gustaría saber por qué la decodificación instantánea es mucho más rápida que el caso binario.
¿Se induce la diferencia cuando se sintetizan?