首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

浮点:用 FPGA 嵌入式处理器实现您的构想-1

浮点:用 FPGA 嵌入式处理器实现您的构想-1

在采用数值处理技术创建嵌入式应用时,通常以整数或定点表示法来确保算术运算尽量简单,这一点至关重要。因其不仅有助于使成本和功耗降至最低,而且还能尽可能地加速硬件部署。
  FPGA 非常适用于执行定点运算,并能在逻辑或基于软件或硬件处理器的实施方案中创建高度并行的数据路径解决方案。Virtex®-5 FPGA 产品系列中 FXT 系列的最新硬件处理器 Xilinx® PowerPC® 440 可提供超标量功能,让用户能够对器件编程,使其以高达 550 MHz 的时钟速率并行执行一个或两个定点运算。
  尽管用户能通过对器件进行编程来执行大多数采用整数或定点算术的运算,但通常须重新运算并插入比例运算以确保计算结果足够精确。对于复杂运算而言,这不仅耗时,而且还会导致程序变为专用型且不可重用。理想的替代方法是采用标准浮点表示法来提供一种适用于多个应用的高动态范围。这样人们就无需修改算法即可获得适用于任何特定应用或操作环境的定点实施方案,也无需为随后的项目及应用而大范围地修改代码。
  虽然赛灵思为基于 IBM 浮点性能库的 PowerPC 440 处理器提供了一种行之有效的仿真浮点解决方案,但处理器内核仍需占用数十个周期来执行每条运算。而采用浮点运算单元 (FPU) 形式的浮点运算硬件加速功能可缩短该运算周期。Virtex-5 FXT 系列中的 PowerPC 440 处理器提供了有效接口,能够将赛灵思软 FPU 等硬件加速器连接至该处理器内核。该方案可通过结构协处理器总线 (FCB) 将 PowerPC 440 处理器上的 128 位辅助处理器单元 (APU) 接口桥接至协处理器。使用该类协处理器(赛灵思 LogiCORE™ IP Virtex-5 APU-FPU),Virtex-5 FXT 用户可以选择软件仿真或者专用软逻辑 FPU 在 PowerPC 上自如地实现浮点运算。图 1 显示了通过 FCB 将 PowerPC 440 处理器连接至 Virtex-5 APU-FPU 的典型实施方案。


 PowerPC 440 Processor Block: PowerPC 440 处理器模块  PowerPC 440 Processor: PowerPC 440处理器
  PLB and Memory Crossbar: PLB 和存储器交叉开关
  Virtex-5 APU Floating-Point Unit: Virtex-5 APU 浮点单元
  in FPGA Logic: FPGA 逻辑内
  关于 PowerPC 440 FPU
  赛灵思针对嵌入在 Virtex-5 FXT FPGA 中的 PowerPC 440 处理器专门设计了 APU-FPU。FPU 通过 APU 接口与处理器的紧密结合可让浮点运算单元直接执行原生 PowerPC 浮点指令,这相对软件仿真而言,速度一般可提高 6 倍。
  除少数情况外,赛灵思 PowerPC FPU 一般符合单精度和双精度浮点运算的 IEEE-754 标准。赛灵思提供了为 2:1和 3:1 APU-FPU 时钟速率而优化的变量,使 PowerPC 处理器能够以最高频率运行。自发性指令发送不仅会隐藏运算时延,而且还会减少每条指令的周期。此外,这些优化的实施方案可充分发挥器件的高性能 DSP 特性,以缩短运算符时延并减少逻辑计数与功耗。赛灵思在其嵌入式开发套件 (EDK) 中支持 APU-FPU 流。
  图 2 为 FPU 架构的整体框架图。APU-FPU 由执行单元、寄存器文件、总线接口以及所有管理浮点指令执行情况所必需的控制逻辑组成。

  FCB2 Bus: FCB2 总线
  FCB2 Bus Interface: FCB2 总线接口
  Execution Control/Decode Logic: 执行控制/解码逻辑
  Register File & Forwarding: 寄存器文件与转发
  Add/Sub/Convert: 添加/子集/转换
  Compare: 比较
  Multiply: 乘
  Divide: 除
  Square Root: 平方根
  Round: 四舍五入
  图 2——Virtex-5 FXT PowerPC 440 浮点协处理器架构
  FPU 含有两个变量。双精度变量可执行除 PowerPC ISA 图形子集(fsel、fres 和 frsqrte)以外的所有浮点指令,其中也包括单精度变量执行的指令。这意味着您能使用带各种商用编译器和操作系统的 FPU(具体请参见: ise/embedded/epartners/listing.htm)。
返回列表