|
发表于 2010-9-13 21:22:31
|
显示全部楼层
我一直想写博文专门论述,无奈最近有点忙。都是大白话,我就不翻译了。
介绍:http://www.altera.com.cn/literature/hb/nios2/n2cpu_nii51002.pdf P5~6
通过自定义指令来实现硬件单精度乘除法,双精度的只能用软件实现。
![](http://./bbs_upload/files_33/ourdev_582773V4441T.png)
You can add floating-point custom instructions to any Nios II processor core
using the Nios II Processor MegaWizard? interface. The loating-point division
hardware requires more resources than the other instructions. The MegaWizard
interface allows you to omit the floating-point division hardware for cases
in which code running on your hardware design does not make heavy use of
floating-point division. When you omit the floating-point divide instruction,
the Nios II compiler implements floating-point division in software.
All the floating-point custom instructions are single-precision operations.
Double-precision operations are implemented in software. By default, the Nios
II compiler treats floating-point constants as double-precision numbers.
To use the floating-point custom instructions for operations with floating-point
constants, append an “f” to the constant. This tells the compiler to treat
the constant as a single-precision floating-point value, rather than promote
the other variables in your equation to double precision numbers. Table 2–3
shows code examples using constants.
![](http://./bbs_upload/files_33/ourdev_582774A05YDV.png)
使用:http://www.altera.com.cn/literature/hb/nios2/n2cpu_nii51004.pdf P17~18
默认情况下单精度的除法不打开。
资源消耗:Nios/f开单精度乘法(EP2C8)大约消耗接近6000的LEs;Nios/f开单精度乘除法(EP2C8)大约消耗9000多LEs;而不开单精度乘除法的Nios/f仅需4000左右的LEs。 |
|