将* .vhdl编译到库中时的编译器错误 - Altera Quartus II

时间:2014-03-27 19:37:36

标签: compiler-errors floating-point vhdl intel-fpga

我从http://www.vhdl.org/fphdl/下载了浮点包并执行了以下操作:

  1. 我在项目中包含math_utility_pkg.vhd,fixed_pkg_c.vhd和float_pkg_c.vhd文件
  2. 我已将它们分配到图书馆(按照Compiling *.vhdl into a library, using Altera Quartus II
  3. 中的说明进行操作
  4. 尝试编译它们,首先将我的项目的顶层实体设置为顶层实体,然后通过将float_pkg_c.vhd设置为顶层实体来第二次编译它们
  5. 我遇到了几个问题:

    1. 我不确定是否使用ieee_proposed库名称或floatfixlib,因为前者是在文档中建议的,而后者是在包文件中使用的
    2. 编译时,我不断收到包文件中的错误(例如“未能详细调用子程序”余数“”等)
    3. 包文件有后缀_c的事实之间似乎存在争议,但是没有它应该包含它(例如使用FLOATFIXLIB.float_pkg.all;),此刻我无法得到错误虽然
    4. 最后,当float_pkg_c.vhd设置为顶层实体时,编译器会生成此错误:“顶级设计实体”float_pkg_c“未定义”
    5. 我一直在尝试上述尝试的变化,但根本没有进展。

2 个答案:

答案 0 :(得分:1)

您可能希望重新下载这些包。我没有看到math_utility_pkg,我没有看到包中引用的库floatfixlib。你必须有一个非常旧的版本。

我刚刚重新下载了Altera发行版。在其中,我看到您交叉列出的帖子中引用的包:fixed_float_types_c.vhdl,fixed_pkg_c.vhdl和float_pkg_c.vhdl。我还注意到zip文件中的文件日期戳是:2009年8月27日。

答案 1 :(得分:1)

我看了看:pastebin.com/TUtGax7M

看起来这些软件包已编译,您正在尝试编译您的设计,并且在调用" to_float"时失败。没有看到代码,我只能猜测。对to_float的调用需要通过传递对象(下面的第一个赋值)或结果的索引(下面的第二个赋值)来确定结果的范围。

signal A_fp32 : float32 ;
. . .

-- Real and/or Integer Literal
A_fp32 <= to_float(6.5, A_fp32); -- size using A_fp32
A_fp32 <= to_float(6.5, 8, -32); -- pass indicies

我也看到了分裂失败的呼吁。请注意,鸿沟是在合成的最前沿。供应商可能会也可能不会支持鸿沟。简短的故事是你可能需要提交一个针对鸿沟的错误报告,而是使用他们的宏/向导。请注意,如果它们支持用于除法的宏/向导,那么它们可以进行综合,尽可能让您尽可能地使用其供应商特定代码。