4 votos

¿Hay alguna ventaja en la implementación de CSA frente al uso del símbolo de multiplicación al sintetizar?

Estoy sintetizando algunas unidades de multiplicación en Verilog y me preguntaba si generalmente se obtienen mejores resultados en términos de ahorro de área/energía si se implementa un CSA propio utilizando Booth Encoding al multiplicar o si simplemente se utiliza el símbolo * y se deja que la herramienta de síntesis se encargue del problema por ti.

4voto

Chris Lieb Puntos 106

Si tus herramientas de síntesis son buenas, deberías usar el operador *, establecer restricciones razonables y dejar que las herramientas hagan el trabajo pesado. Esto es especialmente cierto en el caso de las FPGAs, que pueden tener celdas multiplicadoras muy rápidas y densas. La serie Spartan-3 de Xilinx, por ejemplo, tiene unas celdas multiplicadoras de 9x9 muy buenas. Si insistes en escribir ecuaciones lógicas para tu propio multiplicador CSA, el sintetizador puede no ser capaz de inferir que realmente quieres un multiplicador, y el resultado utilizaría un montón de LUTs mientras las celdas del multiplicador permanecen ociosas.

3voto

Louise Puntos 16

Deje que la herramienta de síntesis decida.

A menos que esté interesado en los resultados intermedios de la multiplicación, no habrá grandes ganancias en el enfoque manual. De hecho, dadas las amplísimas estrategias de optimización presentes en las herramientas de síntesis actuales, lo mejor que puedes conseguir manualmente en términos de rendimiento/área/potencia es lo mismo (y hay muchas posibilidades de que tu implementación manual sea peor).

El único escenario (en mi opinión) en el que no se deja que la herramienta de síntesis se encargue de la multiplicación es cuando hay librerías/módulos estándar para multiplicadores disponibles (librerías en ASICs, módulos en FPGA). Este enfoque se utiliza a veces en partes críticas de los sistemas (críticas en términos de rendimiento/área/energía). Estas celdas se adaptan a un uso concreto (a nivel de diseño) y no hay posibilidad de que el RLS lo haga mejor.

0voto

djpercent Puntos 86

A no ser que establezcas algunos nodos internos de tu multiplicador de codificación Booth como salidas, la herramienta de síntesis derivará la lógica de bajo nivel. Como la entrada y las salidas de los dos enfoques son exactamente iguales, una buena herramienta de síntesis los optimizaría exactamente de la misma manera, y el resultado no sería diferente. La única forma de forzar a la herramienta de síntesis a implementar un multiplicador de cabina es dividirlo en varios bloques y desactivar la optimización de los límites.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X