0

我已经从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. tried to compile them, first by setting my project's top entity as top entity and the second time by setting float_pkg_c.vhd as top entity

I'v encountered several issues:

  1. I'm not sure whether to use the ieee_proposed library name or floatfixlib, as the former is suggested in the documentation and the latter is used from within the package files
  2. When compiling, I keep getting errors from within the package files (e.g. "failed to elaborate call to subprogram "remainder"" and similar)
  3. There seem to be some dispute between the facts that the package file has the suffix _c, but it should be included without it (e.g. use FLOATFIXLIB.float_pkg.all;), I can't get to that error at this moment though
  4. 最后,当 float_pkg_c.vhd 设置为顶级实体时,编译器会生成此错误:“顶级设计实体“float_pkg_c”未定义”

我一直在尝试上述尝试的变体,但根本没有任何进展。

4

2 回答 2

1

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

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

于 2014-03-28T16:55:18.623 回答
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

我也看到分裂失败的呼吁。请注意,divide 处于综合的前沿。供应商可能支持也可能不支持划分。简短的故事是你可能需要提交一份针对分歧的错误报告,而不是使用他们的宏/向导。请注意,如果他们支持除法的宏/向导,那么他们可以进行综合,这对他们来说是有利的,让您尽可能多地使用他们的供应商特定代码。

于 2014-03-31T17:30:30.963 回答