Lógica matemática detrás de la generación de códigos T0

3

Estoy realizando un pequeño proyecto en la universidad, donde debo convertir (codificación) entre códigos grises y binarios, y también para la codificación de bus invertido en verilog. Realmente es una tarea sencilla, ya que he terminado con el código para los métodos de codificación mencionados anteriormente.

Ahora hasta el punto, debo generar códigos T0 desde binario o en formato gris. He golpeado un obstáculo al tratar de entender de qué se trata este código T0. Revolviendo a través de Internet, solo pude encontrar revistas que ofrezcan solo un resumen vago sobre este tipo de código.

Soy muy bueno en la codificación y todo lo que necesito saber es si es posible codificar un código de entrada binario en un código T0 o viceversa . Si es así, me gustaría conocer la lógica matemática o los pasos realizados para generarlos. Tenga en cuenta que esto es solo un mini proyecto realizado para entender la lógica digital como parte del plan de estudios de mi universidad.

Si lo anterior no es factible, intente sugerir una técnica de codificación alternativa

    
pregunta Ashwin

1 respuesta

3

Según el documento encontrado por @ lustful-rat , T0-C no es un método para codificar palabras binarias individualmente, sino un método para codificar secuencias de palabras binarias. Se utiliza en situaciones en las que las secuencias contienen con frecuencia grupos de valores que son un desplazamiento fijo entre sí, como pasar por una matriz de memoria por bytes o palabras.

El transmisor y el receptor acuerdan un tamaño de paso \ $ S \ $. Si el siguiente valor a transmitir es el valor anterior más S (es decir, \ $ b (t) = b (t-1) + S \ $), entonces el valor real en el bus no se cambia (\ $ B ( t) = B (t-1) \ $). De lo contrario, el siguiente valor se coloca en el bus (\ $ B (t) = b (t) \ $).

Sin embargo, existe un problema: ¿qué sucede si el siguiente valor a transmitir no es el valor anterior más S, pero resulta que es el mismo que el valor actual en el bus (\ $ b (t) = B ( t-1) \ $)? En ese caso, solo hay un valor que el receptor NO debe esperar ver, y es \ $ b (t-1) + S \ $, porque si ese fuera realmente el valor a transmitir, el transmisor simplemente mantenga el autobús en \ $ B (t-1) \ $. Entonces, si el transmisor realmente pone ese valor en el bus, entonces el receptor sabe que este es un caso especial, y que \ $ b (t) \ $ ahora debe estar configurado en \ $ B (t-1) \ $.

Mientras la secuencia de valores contenga frecuentemente valores secuenciales, este método reduce el consumo de energía al reducir en gran medida el número de transiciones en los cables de bus individuales. Para implementarlo, tanto el transmisor como el receptor deben realizar un seguimiento de \ $ b (t-1) \ $ y \ $ B (t-1) \ $ internamente, de modo que la lógica descrita anteriormente (y en el papel) se puede construir.

Transmitter                        Receiver
-----------                        --------
Inputs: b(t-1), b(t), B(t-1)       Inputs: b(t-1), B(t-1), B(t)
Output: B(t)                       Output: b(t)

if (b(t) == b(t-1)+S)              if (B(t) == B(t-1)) 
  B(t) = B(t-1)                      b(t) = b(t-1) + S
else if (b(t) == B(t-1))           else if (B(t) == b(t-1)+S) 
  B(t) = b(t-1)+S                    b(t) = B(t-1)
else                               else 
  B(t) = b(t)                        b(t) = B(t)
    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas