¿Alguna ventaja de implementar CSA en lugar de simplemente usar el símbolo de multiplicación al sintetizar?

4

Estoy sintetizando algunas unidades de multiplicación en Verilog y me preguntaba si generalmente obtendrás mejores resultados en términos de ahorro de área / energía si implementas tu propia CSA utilizando Booth Encoding al realizar solicitudes múltiples o si simplemente usas el símbolo * y dejas que ¿La herramienta de síntesis se encarga del problema por usted?

    
pregunta Veridian

3 respuestas

4

Si sus herramientas de síntesis son buenas, debe utilizar el operador *, establecer restricciones razonables y dejar que las herramientas hagan el trabajo pesado. Esto es particularmente cierto para los FPGA, que pueden ser células multiplicadoras muy rápidas y densas. La serie Xilinx Spartan-3, por ejemplo, tiene algunas muy buenas células multiplicadoras de 9x9. Si insiste en escribir ecuaciones lógicas para su propio multiplicador CSA, es posible que el sintetizador no pueda inferir que realmente desea un multiplicador, y el resultado usaría muchas LUT mientras las celdas del multiplicador permanezcan inactivas.

    
respondido por el Joe Hass
1

Deja 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 muy amplias estrategias de optimización presentes en las herramientas de síntesis de hoy, lo mejor que puede obtener manualmente en términos de rendimiento / área / potencia es el mismo (y es muy probable que su implementación manual sea peor).

El único escenario (en mi opinión) cuando no permite que la herramienta de síntesis se ocupe de la multiplicación es cuando hay disponibles libs / módulos estándar para multiplicadores (libs en ASIC, módulos en FPGA). Este enfoque se usa a veces en partes críticas de los sistemas (crítico en términos de rendimiento / área / potencia). Estas celdas están diseñadas para un uso particular (a nivel de diseño) y no hay ninguna posibilidad de que RLS funcione mejor que eso.

    
respondido por el Vasiliy
0

A menos que esté configurando algunos nodos internos de su multiplicador de codificación Booth como salidas, la herramienta de síntesis derivará la lógica de bajo nivel. Dado que las entradas y salidas de los dos enfoques son exactamente iguales, una buena herramienta de síntesis las optimizaría de la misma manera, y el resultado no sería diferente. La única forma en que podría forzar a la herramienta de síntesis a implementar un multiplicador de cabina es si lo divide en varios bloques y desactiva la optimización de límites.

    
respondido por el travisbartley

Lea otras preguntas en las etiquetas