0

我开始使用 Altera 的 Quartus 包学习 FPGA 编程。

我有一些遗留代码,包括以下内容:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.math_real.all;
library floatfixlib;
use floatfixlib.fixed_pkg.all; --this is the VHDL93 implementation of the VHDL08 fixed point code from http://www.eda-stds.org/fphdl/
use work.ioarrays.all;

不幸的是,评论中的链接现在已经失效。

最初我有以下错误:

Error (10481): VHDL Use Clause error at myvhdlfile.vhd(8): design library "floatfixlib" does not contain primary unit "fixed_pkg"

在阅读完之后,我使用这个答案将相关的 ieee 库文件(fixed_float_types_c.vhdl, fixed_pkg_c.vhdl, float_pkg_c.vhdl)归于 ieee_proposed 库,并将代码更改为:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.math_real.all;
library ieee_proposed;
use ieee_proposed.fixed_pkg.all;
use work.ioarrays.all;

然后似乎可以编译。

但是,我不确定这是否是正确的方法,而且我对这些库开发背后的高级故事的理解也很缺乏。

因此; 请描述 ieee 和 floatfixlib vhdl 库之间的关系。对它们发展的原因、简短的时间表和它们的现状进行简洁的描述将是理想的。

4

1 回答 1

2

链接中的fphdl代表Floating-Point HDL Packages,可用于 VHDL 和 Verilog,并为二进制浮点算术的 IEEE-754 标准提供符合综合条件的包。

该工作的 VHDL 部分作为提案 VHDL-200x-fp 提交,以将软件包添加到标准的下一个修订版(IEEE Std 1076-2008)。

您引用的 VHDL 文件名表明它们来自 -1993 兼容性发行版,以代替综合供应商广泛采用的 -2008 修订版。所有 zip 文件的链接都已失效,而通用 -1993 兼容的 VHDL 源文件可以在 Internet Archive fphdl链接上访问。

最初,您可以访问包含 README 文件的个别过时的供应商目标发行版,这些文件会告诉您目的:

这是“ieee_proposed”库。这是一个兼容性库,旨在提供 VHDL-93 中 VHDL-200X-FT 包的所有功能。包名称后的“_c”用于表示这是该包的 1993 兼容版本。否则,文件名和包名相同。

请将以下文件编译到名为“ieee_proposed”的库中:standard_additions_c.vhdl
env_c.vhdl
standard_textio_additions_c.vhdl
std_logic_1164_additions.vhdl
numeric_std_additions.vhdl
numeric_std_unsigned_c.vhdl
fixed_pkg_c.vhdl
float_pkg_c.vhdl

固定和浮点包被采用到 -2008 修订版中,参见 IEEE Std 1076-2008 16.10 定点包和 16.11 浮点包。它们包含在图书馆 ieee 中。如果你有 -2008 兼容的工具,你可以使用它们。另见附录 G G.4 使用定点包。

代替使用与修订版 -2008 兼容的 VHDL 工具,在这种情况下包含fixed_pkg 包,您可以将这些符合综合条件的源代码编译到库中。

正如您从 Brian 和 Jim 的评论中看到的那样,这些包可以针对不同的资源库(包括工作),只需对所需包中的 use 子句进行一些修改。

从 2011 年左右开始,综合供应商通常会在 ieee_proposed 库中支持这些包,以提供 VHDL 综合合格浮点。一些供应商会提供预先分析的资源库。

如果您的代码分析并详细说明在库 ieee_proposed 中引用它们,那么您要么已将包分析到库中,要么它们由您的供应商提供,这些供应商也可能提供 -2008 兼容性,这些包位于 ieee 库中。

失败了,您可以自己将代码分析为资源包。Stackoverflow 有几个问题表明供应商在这样做时遇到了特定的困难。从历史上看,他们倾向于在需要解决方法的供应商工具中展示 VHDL -1993 语言问题。好消息是用户对这些功能的需求有助于推动 -2008 年功能的采用。

根据包泛型等功能的可用性,兼容性发行版和 -2008 之间存在差异。兼容性包还提供了不仅仅是固定和浮点二进制算法,其想法是支持 -2008 与支持 -1993 的工具的兼容性。

容易获得的历史记录的丢失是 Accellera 最近停止托管 vhd.org/eda.org 网站的结果。Accellera 最初在他们的主持下开发了 VHDL 标准的 -2006 修订版,经过各种修改后成为 IEEE -2008 标准修订版。

于 2016-07-21T21:45:25.097 回答