¿Cómo funciona exactamente una palanca de cambio de barril? [cerrado]

-4

Soy nuevo en esto y estoy tratando de entender cómo funciona la palanca de cambios a continuación. Sé cómo funciona un multiplexor pero no entiendo el circuito a continuación.

  • Si C = 0 debería ser un desplazamiento a la izquierda. (x3, x2, x1, x0 se convierte en x1, x0,0,0)
  • Si C = 1 (se olvidó de lo que se llama este cambio) x3, x2, x1, x0 se convierte en x1, x0, x3, x2

Pero no entiendo cómo este circuito realiza estos cambios.

¿Cómo funciona este circuito?

Estoy confundido acerca de los pasos con el ejemplo de C = 0 lo que sucede en el circuito y cómo obtenemos de x3, x2, x1, x0 a x1, x0,0,0.

    
pregunta herbrand13

1 respuesta

0

Veamos el circuito cuando \ $ C = 1 \ $ y también solo nos centramos en el bit de orden superior, \ $ X_3 \ $:

simular este circuito : esquema creado usando CircuitLab

También he mostrado los otros bits de entrada en sus lugares habituales, porque quiero hablar de un caso donde \ $ S = 00 \ $ y mirar todos los bits de entrada mientras que también veo solo \ $ X_3 \ $ cuando \ $ S \ ne 00 \ $. Me he deshecho de los otros cables y puertas AND, por ahora. (Tenga en cuenta de nuevo que esto es para \ $ C = 1 \ $.)

Aquí, puede ver fácilmente que cuando \ $ S = 00 \ $ cada uno de los bits de entrada no está desplazado ni girado. Cada uno simplemente se propaga a sus cables de salida directamente asociados sin complejidad. Así que puedes ver que funciona bien para este caso.

Ahora observe solo lo que sucede con el cable de entrada \ $ X_3 \ $ para todos los casos restantes de \ $ S \ $:

  1. Si \ $ S = 1 \ $ entonces \ $ X_3 \ $ aparece en \ $ Y_0 \ $. Esto sería correcto para un caso de rotación hacia la izquierda por 1.
  2. Si \ $ S = 2 \ $, entonces \ $ X_3 \ $ aparece en \ $ Y_1 \ $. Esto sería correcto para un caso de rotación hacia la izquierda por 2.
  3. Si \ $ S = 3 \ $ entonces \ $ X_3 \ $ aparece en \ $ Y_2 \ $. Esto sería correcto para un caso de rotación hacia la izquierda por 3.

Es bastante claro que cuando \ $ C = 1 \ $, el bit \ $ X_3 \ $ se gira hacia la izquierda por el número de bits indicado por el valor de \ $ S \ $.

Ahora veamos el circuito cuando \ $ C = 1 \ $ y esta vez solo se centre en el bit \ $ X_2 \ $:

simular este circuito

No necesitamos examinar el caso para \ $ S = 0 \ $, ya que ya se hizo arriba para todos los cables de entrada. Así que observe solo lo que sucede con el cable de entrada \ $ X_2 \ $ para todos los casos restantes de \ $ S \ $:

  1. Si \ $ S = 1 \ $ entonces \ $ X_2 \ $ aparece en \ $ Y_3 \ $. Esto sería correcto para un caso de rotación hacia la izquierda por 1.
  2. Si \ $ S = 2 \ $ entonces \ $ X_2 \ $ aparece en \ $ Y_0 \ $. Esto sería correcto para un caso de rotación hacia la izquierda por 2.
  3. Si \ $ S = 3 \ $ entonces \ $ X_2 \ $ aparece en \ $ Y_1 \ $. Esto sería correcto para un caso de rotación hacia la izquierda por 3.

No analizaré los otros dos cables de entrada restantes. Creo que deberías poder avanzar por las dos situaciones restantes por tu cuenta.

Miremos el circuito cuando \ $ C = 0 \ $ y también solo nos centramos en el bit de orden más bajo, \ $ X_0 \ $:

simular este circuito

Nuevamente, no necesitamos examinar el caso para \ $ S = 0 \ $, ya que eso ya se hizo anteriormente para todos los cables de entrada. Así que observe solo lo que sucede con el cable de entrada \ $ X_0 \ $ para todos los casos restantes de \ $ S \ $:

  1. Si \ $ S = 1 \ $ entonces \ $ X_0 \ $ aparece en \ $ Y_1 \ $. Corregir para el caso de desplazamiento izquierdo por 1.
  2. Si \ $ S = 2 \ $, entonces \ $ X_0 \ $ aparece en \ $ Y_2 \ $. Corregir para el caso de desplazamiento izquierdo por 2.
  3. Si \ $ S = 3 \ $ entonces \ $ X_0 \ $ aparece en \ $ Y_3 \ $. Corregir para el caso de desplazamiento izquierdo por 3.

También tome nota de los valores \ $ 0 \ $ allí. Cuando \ $ S = 3 \ $, observe que \ $ Y_0 \ $, \ $ Y_1 \ $ y \ $ Y_2 \ $ son todos \ $ 0 \ $. Eso también es correcto para un cambio de izquierda a 3, ¿correcto? Cuando \ $ S = 2 \ $, observe que \ $ Y_0 \ $ y \ $ Y_1 \ $ son \ $ 0 \ $. Eso es correcto para un desplazamiento a la izquierda por 2, ¿correcto? Cuando \ $ S = 1 \ $, observe que \ $ Y_0 \ $ es \ $ 0 \ $. Eso es correcto para un turno de izquierda por 1, ¿correcto?

Hasta ahora, está haciendo exactamente lo que quieres.

Ahora, veamos \ $ X_1 \ $:

simular este circuito

Eso también es correcto, ya que puedes ver que \ $ X_1 \ $ aparece donde debería, cuando debería.

Etc.

Otra forma de ver esto es que esta palanca de cambios está diseñada para realizar una rotación izquierda \ $ S \ $. La configuración \ $ C = 0 \ $ no cambia el comportamiento de rotación. Todo lo que hace es hacer que la palanca de cambios del barril oculte la máscara (a \ $ 0 \ $) todos los bits desplazados fuera del extremo izquierdo antes de que se giren. Sin embargo, todavía realiza una rotación. (En efecto.)

    
respondido por el jonk

Lea otras preguntas en las etiquetas