Esta es mi pregunta para la tarea, agradecería cualquier consejo que me ayude a comenzar.
Se utiliza un desplazador para desplazar una cadena de 0 y 1 a la izquierda o derecho por un número fijo de posiciones. Las posiciones vacantes son lleno por 0. Por ejemplo, si 0011 se desplaza hacia la izquierda una posición, el el resultado es 0110; si 0011 se desplaza hacia la derecha una posición, el resultado es 0001.
Se utilizan dos señales de control, S1 y S0, para especificar las diversas acciones, como se indica a continuación.
S1 = 0 y S0 = 0: Sin cambios, es decir, pasar la cadena de entrada a la salida
S1 = 0 y S0 = 0: cambia la posición de un bit a la derecha
S1 = 1 y S0 = 0: desplazar dos posiciones de bit a la derecha
S1 = 1 y S0 = 1: mover la posición de un bit a la izquierda
Usando una cantidad de multiplexores apropiados sin ningún adicional puerta lógica, implemente una palanca de cambios que acepte una cadena ABCD de 4 bits, y genera la cadena de 4 bits requerida WXYZ dependiendo del control Señales S1 y S0. Los literales complementados no están disponibles. Debes etiqueta tus multiplexores, entradas y salidas claramente.
Investigué en línea acerca de la operación de cambio y descubrí que en realidad coincide con las operaciones aritméticas, es decir, que "cambiar la posición de un bit a la derecha" es en realidad una división por 2, y "cambiar la posición de un bit a la izquierda" es una multiplicación por 2. Sin embargo, no tengo idea de lo que significa "cambiar a la derecha dos bits", ¿es división por 5? Probé con el código binario 1111 (15) y el resultado es 0011 (3).
Básicamente, dado que las operaciones de cambio son solo operaciones aritméticas, ¿debo usar los multiplexores para implementar el último? Sin embargo, no sé cómo hacerlo con solo dos señales de control S1 y S0. ¿Necesito 4 multiplexores ya que la salida es de 4 bits?