文章 ID: 000085927 内容类型: 故障排除 上次审核日期: 2015 年 12 月 15 日

为什么浮点方形根Nios® II不能为 英特尔® MAX® 10 FPGAs 中的某些配置工作?

环境

  • 英特尔® Quartus® II 订阅版
  • 浮点
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    由于在浮点硬件 2 组件的所有版本中都要求使用 RAM 预填充的查找 ROM/RAM 表,浮点平方根的Nios® II自定义指令将在使用 RAM 预初始化配置模式(包括“双压缩映像”、“单压映像”和“单无压缩图像”)的设计英特尔® MAX® 10 FPGA设计中失败。

    在这些模式下,闪存不够大,无法支持 RAM 的预初始化,因此 sqrt 指令将会失败。如果 FPCI2 由于 英特尔 MAX 10 FPGA 或其他原因的配置模式设置,Quartus® II 软件版本 15.1 及更早的版本可能会提供编译错误。

    错误 (16031):当前内部配置模式不支持内存初始化或 ROM。选择具有 ERAM 的内部配置模式。

    解决方法

    要在 Quartus® II 软件 15.0 版及更早版本中解决此问题,请按照以下步骤操作:

    1. 前往 fpoint2_multi_datapath.vhd ,并 评论 FPSqrt 实例化(168 至 174 行)。

    sqrt:FPSqrt 端口地图 (
    x => dataa,
    r => fsqrts,
    clk => clk、
    reset_req => reset_req,
    areset =>重置
    );

    1. 使用 Quartus II 软件重新编译设计。
    2. 转到位于 bsp HAL文件夹中的 altera_nios_custom_instr_floating_point_2.cC 代码中包含“altera_nios_custom_instr_floating_point_2.h”之后,添加“#undef sqrtf”,以禁用软件对 sqrtf 自定义指令的使用。

    代码:

    #include“altera_nios_custom_instr_floating_point_2.h”
    #undef sqrtf

    1. 通过这些更改,重新构建所有应用程序软件和库。

    要解决 Quartus® II 软件 15.0 版及更高版本中的这一问题,请按照以下步骤操作:

    1. 使用复选框从 Platform Designer GUI 中的 FPH2 中删除 sqrt 自定义指令。

    Quartus® II 软件 v16.0 解决了此问题。

    相关产品

    本文适用于 1 产品

    英特尔® MAX® 10 FPGA

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。