Cambio bidireccional en la implementación eficiente de VHDL

0

Necesito implementar una variante del cambio bidireccional (básicamente necesito procesar la parte de los bits menos significativos que se pierden durante el cambio correcto específicamente). Como es una pequeña variante que necesito implementar, básicamente me preguntaba qué tan eficiente podría ser el modelado de un cambio bidireccional en vhdl, dejando el procesamiento específico que necesito hacer por el momento.

Suponiendo que el parámetro de cambio n sea positivo o negativo, lo haría en paralelo a la izquierda y a la derecha en n , y luego utilizando el signo de n seleccionaría entre la izquierda o la derecha (así que básicamente usaría el stamenent concurrente when ... else ). No estoy completamente seguro de la eficiencia de dicho código porque el compilador podría crear una instancia de ambos desplazadores. ¿Hay una mejor manera de lograr tal resultado pero de manera más eficiente? (También me gustaría evitar, si es posible, trabajar a nivel de bits para implementar dicha palanca de cambios, solo pregunto si hay algún tipo de "receta" de la que valga la pena estar consciente).

Por cierto ... estoy hablando de "cambiador de cañón" no de "registro de cambios", no me interesa mantener el resultado en absoluto.

    
pregunta user8469759

1 respuesta

1

No te preocupes por eso. Un desplazador de barril es solo una serie de multiplexores. Si tiene N cantidades de turnos diferentes, entonces los multiplexores deben tener N entradas cada una. No importa si las cantidades de cambio son positivas o negativas. La cantidad de lógica sintetizada en cualquier caso será exactamente la misma.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas