Microcontroladores: ¿Puedo realizar operaciones de punto flotante en un controlador Picoblaze?

3

Me pregunto si podría realizar operaciones de punto flotante en un controlador Picoblaze. Gracias a todas las respuestas posibles con referencias directas a documentación o artículos.

    
pregunta Peterstone

3 respuestas

10

Lamentablemente, no creo que Picoblaze tenga soporte de hardware para punto flotante. Si lo hace, puedes hacerlo en hardware. De lo contrario, deberá hacerlo en modo de emulación de software.

Como me di cuenta de que hizo la misma pregunta tanto para Picoblaze como para Microblaze, tal vez deba preguntarse por qué necesita realizar operaciones de punto flotante.

En muchos casos, hay alternativas a las operaciones de punto flotante. Las operaciones de punto fijo son una alternativa común al punto flotante. Necesitará estudiar sus algoritmos para determinar si es posible representar los valores en una alternativa matemática de punto fijo a la matemática de punto flotante.

Por ejemplo, si usa un ancho de punto fijo de 4 bits, puede representar valores en cantidades de 0.125 entre -1.0 a 0.875 con representación de punto fijo. Los valores más grandes pueden ser múltiplos escalares de estos valores.

Editar : Artículo que explica la conversión de punto flotante a punto fijo.

    
respondido por el sybreon
5

Picoblaze no tiene soporte de punto flotante. El conjunto de instrucciones admitidas es muy limitado, pero útil para aplicaciones simples.

Sin embargo, si necesita soporte de punto flotante, es posible desarrollar su propia interfaz entre Picoblaze y un núcleo de punto flotante de Xilinx (u otra lógica). En esta situación, podría escribir datos en el núcleo y leer el resultado. No tengo idea de cuáles son sus requisitos de rendimiento ... debería tener en cuenta la sobrecarga de comunicación.

Como se mencionó anteriormente, MicroBlaze tiene una FPU de precisión simple de hardware y puede manejar operaciones de doble precisión con emulación de software.

La documentación de Picoblaze es muy buena y se puede encontrar en aquí . Además, consulte los foros de usuarios de Xilinx que tienen soporte relacionado con Picoblaze y Microblaze.

    
respondido por el Josh
1

Usted puede hacer coma flotante en Picoblaze, pero si prueba IEEE754 será

  1. muy lento: es un procesador de 8 bits que intenta realizar operaciones en tipos de datos de 32 o 64 bits.
  2. trabajo duro: no hay nada escrito listo para que lo uses, así que tendrás que hacerlo todo por ti mismo
  3. potencialmente imposible, ya que la cantidad de código requerido es probablemente más de lo que Picoblaze puede abordar

Dependiendo de sus requisitos, posiblemente podría crear un "punto flotante pequeño" personalizado, tal vez 2 bytes de ancho con un exponente de 4 bits y un significado de 12 bits. Sin embargo, aún tendrías que escribir tu propio código aritmético.

Si debes usar Picoblaze, el punto fijo se va a "ajustar" mucho mejor.

Para ser honesto, Picoblaze es una opción rara para cualquier cosa relacionada con las matemáticas, ¡ya que ni siquiera tiene un multiplicador de hardware!

Tal vez retroceda un paso y describa el problema que cree que puede resolver con Picoblaze (al mencionar System Generator en otro comentario, puede haber una mejor manera de usar las herramientas disponibles)

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas