描述Quartus项目中ieee和floatfixlib vhdl库之间的关系

描述Quartus项目中ieee和floatfixlib vhdl库之间的关系,vhdl,fpga,quartus,ieee,Vhdl,Fpga,Quartus,Ieee,我开始学习使用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

我开始学习使用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\u float\u types\u c.vhdl
fixed\u pkg\u c.vhdl
float\u pkg\u c.vhdl
)归属于ieee\u建议的库,并将代码更改为:

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库之间的关系。简洁地描述它们的发展原因、简要的时间表和它们的当前状态将是理想的。

链接中的代表,可用于VHDL和Verilog,并提供符合IEEE-754标准的二进制浮点算法合成包

该工作的VHDL部分作为建议书VHDL-200x-fp提交,以将这些包添加到下一版本的标准(IEEE Std 1076-2008)中

您引用的VHDL文件名表明,它们来自于合成供应商提供的-1993兼容性发行版,而不是广泛使用的-2008版本。所有zip文件的链接都已失效,而用于general-1993兼容的VHDL源文件可以通过Internet存档链接访问

最初,您可以访问包含自述文件的个别注明日期的供应商目标发行版,这些文件将告诉您其用途:

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

请将以下文件编译到名为“ieee_proposed”的库中: 标准硬件描述语言(vhdl)
环境硬件描述语言
标准\u文本\u添加\u c.vhdl
std_logic_1164_additions.vhdl
数字标准添加。vhdl
数字\u标准\u无符号\u c.vhdl
修复了_pkg_c.vhdl
float_pkg_c.vhdl

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

您可以将这些符合合成条件的源代码编译到一个库中,而不是使用符合修订版-2008的VHDL工具(包含在本案例包fixed_pkg中)

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

从2011年左右开始,合成供应商通常在ieee\u提出的提供符合VHDL合成条件的浮点的库中支持这些包。一些供应商将提供预分析的资源库

如果您的代码在ieee_建议的库中对这些包进行分析和详细说明,则您已经将这些包分析到库中,或者它们是由您的供应商提供的,该供应商还可能提供-2008兼容性,这些包可以在ieee库中找到

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

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

现有历史记录的丢失是由于Accelera最近停止托管vhd.org/eda.org网站所致。Accelera最初在其主持下开发了VHDL标准的-2006版本,经过各种更改后成为IEEE-2008标准版本

链接中的代表,可用于VHDL和Verilog,并提供符合IEEE-754二进制浮点算法标准的综合软件包

该工作的VHDL部分作为建议书VHDL-200x-fp提交,以将这些包添加到下一版本的标准(IEEE Std 1076-2008)中

您引用的VHDL文件名表明,它们来自于合成供应商提供的-1993兼容性发行版,而不是广泛使用的-2008版本。所有zip文件的链接都已失效,而用于general-1993兼容的VHDL源文件可以通过Internet存档链接访问

最初,您可以访问包含自述文件的个别注明日期的供应商目标发行版,这些文件将告诉您其用途:

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

请将以下文件编译到名为“ieee_proposed”的库中: 标准硬件描述语言(vhdl)
环境硬件描述语言
标准\u文本\u添加\u c.vhdl
标准逻辑1164