Utilice un rotador de un solo ciclo + enmascaramiento (para la operación de cambio). El rotador es como un mux acoplado de 32:32 (32 paralelos de 32: 1 con las mismas señales y entradas de selección, excepto que las entradas se desplazan en 1 bit por cada 32: 1 de mux posterior). La unidad de enmascaramiento es un decodificador de termómetro de 32 bits.
Si desea que esto funcione en un solo ciclo, es posible que deba pasar algo de tiempo en el rotador (ya que depende de los datos y la selección). Si nunca va a necesitar la rotación (en lugar de solo cambiar), puede ahorrar mucho tiempo en la ruta crítica al realizar un cableado fijo de la segunda etapa (y cualquier etapa posterior) del rotador LSB (que en un esquema de rotadores sería la MSB de la etapa anterior) a '0' o '1'; lo que quieras cambiar en la LSB.
Es casi seguro que la ruta crítica será a través de las selecciones al rotador (ya que debe alcanzar la primera etapa de los datos y desplegarse a 32 compuertas).
La unidad de enmascaramiento (también conocido como decodificador de termómetro de 32 bits) puede implementarse requiriendo solo las señales de selección y puede ser tan simple como un AND con cada bit (antes o después del rotador; la sincronización ideal depende de los tiempos de llegada de los selectos) vs. las señales de datos).
Por ejemplo, vea el cambiador de barril que se basa completamente en la lógica combinacional (y, por lo tanto, se puede completar en una sola ciclo, asumiendo que la lógica es lo suficientemente rápida).