网站重新上线,多谢朋友们的关心
Feb 10
背景:在Xilinx EDK系统上如果要使用FPU,现在的选择是MicroBlaze自带的单精度FPU,给PPC405用的单精度FPU和给PPC440用的双精度FPU。也就是说,在PPC405和MicroBlaze上暂时还没有双精度FPU。

于是最近做了一个基于MicroBlaze FSL总线的“伪”双精度FPU。

FAQ:

Q1: 为什么这是一个“伪”FPU?
A1: 因为这不是一个集成的FPU,不能直接使用C语言的加减乘除直接来运算,编译器不直接支持,而是使用自带的driver来传递信息。

Q2: 它能跑多快的速度?
A2: 这不是一个最优化的FPU(速度、资源),而仅仅达到“可用”的程度。在Spartan3E上的测试结果是45MHz左右, 在Virtex4上测试结果是90MHz左右。它调用了CoreGen IP - Floating Point。IP Core已经配置为节省面积且重复使用资源。用户可以使用CoreGen自己设定Floating Point IPCore 的参数并将生成的网表替换netlists目录中的相应文件。

Q3: 我该怎样使用它?
Tags: , , ,
Nov 24

FPU 不指定

RickySu , 14:29 , 技术经验 , 评论(0) , 引用(0) , 阅读(501) , Via 本站原创
[FPU种类]
MicroBlaze FPU - MB内置,单精度,加减乘除开方比较转换
V4 PPC APU_FPU - PPC APU接口,单精度,加减乘除开方比较转换
V5 PPC APU_FPU_VIRTEX5 - PPC APU接口,单/双精度,加减乘除开方移位绝对值比较转换

[问题]
1. 怎样使用FPU
2. C语言的标准函数库都是为双精度小数写的,用了sqrt()函数还是没有用到FPU
3. 怎么检查编译出来的结果有没有使用FPU?
4. 为什么我看到dump中使用了fsqrt但是也包含了的软件函数,整个函数大概有7K长?
5. 如果是加减乘除,需要用特别的函数吗?
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]