¿Por qué el punto flotante no es sintetizable en verilog?

Sé que hoy en día los FPGA tienen un rendimiento de punto flotante muy bueno, como se informa aquí, por ejemplo. Pero entonces, ¿por qué se dice que el punto flotante no es sintetizable en verilog? ¿Cómo flotan entonces los mangos de FPGA?

¿Dónde se dice que el punto flotante no es sintetizable en verilog?
por ejemplo aquí . Lo están llamando real. Lo real y lo flotante son lo mismo. ¿Estoy en lo cierto?
Real y flotante no son lo mismo. Los reales son, bueno, números reales, mientras que el punto flotante no puede representar ningún número como una lata real. La respuesta de apalopohapa explica cómo sintetizar el punto flotante.

Respuestas (2)

No es que no se puedan sintetizar (¡pueden, por supuesto!), pero las herramientas no lo harán de forma combinada (como lo harían con un sumador de punto fijo) porque el uso de recursos sería inviablemente grande. Por lo tanto, se realiza secuencialmente en múltiples pasos, y hay muchas, muchas formas de hacerlo con varias compensaciones a considerar, siendo la división bastante compleja. Por lo tanto, su operación de punto flotante debe tratarse como cualquier otro módulo, puede diseñarlo usted mismo o obtener una licencia de un proveedor, y una herramienta no sintetizará c = a/b por usted, por las mismas razones por las que no sintetizará un solucionador de integrales o de ecuaciones, ¡pero eso no significa que no se pueda hacer en un FPGA!

+1, ¿entonces quiere decir que las herramientas solo sintetizan operaciones preliminares que son fáciles de optimizar? ¿Y cualquier cosa compleja como lkie 3.88 X 89.9898 debería ser implementada por el propio diseñador?
Consulte el núcleo IP de punto flotante de Xilinx o el divisor . Estos lo ayudan con la implementación, pero son núcleos con licencia. También tenga en cuenta que los FPGA modernos con bloques DSP integrados (por ejemplo, el DSP48A1 ) pueden ayudar con algunas operaciones matemáticas.

Sé que preguntó por Verilog, pero como complemento a la respuesta de apalopohapa, VHDL tiene una biblioteca de coma flotante sintetizable , que no requiere la creación de instancias de módulos para realizar operaciones de coma flotante, simplemente el uso de llamadas de función ordinarias.

Aparte del uso elegante de la numeración de bits de VHDL para separar el exponente y el significado, no creo que haya nada que impida que alguien escriba un conjunto similar de funciones para que Verilog brinde la misma capacidad.