VHDL 的 IEEE 库中的可综合 Fixed/Floating 点

Synthesisable Fixed/Floating points in VHDL's IEEE Library

我正在创建一个 VHDL 项目(Xilinx ISE for Spartan-6),需要在 fixed/floating 点中使用十进制 "real-style" 数字(我希望定点将是够了)。

作为 VHDL 的新手,我发现合成不支持非常量 real 类型的困难方法,因此我着手搜索 IP 核或库来解决这个问题。

到目前为止我找到了 3 个选项;

1) Xilinx

提供的一个floating point IP core

2) 由 David Bishop found here

编写的可下载 "ieee_proposed" 库

3) 在尝试弄清楚如何 "create" 一个包含 David Bishops 文件的新库时花了一个公平之后,我快速浏览了默认的 IEEE 库并看到它包含ieee.fixed_generic_pkgieee.fixed_pkg 个包。

我的问题是 - 在这两个库中 - 使用哪个是明智的?是一种适合合成而另一种不适合,还是一种比另一种更古老?那么如果提供浮点数,Xilinx提供的浮点IP核有没有实数点?

我搜索了许多 questions 试图添加 ieee_proposed 库的人,但 none 似乎已经引用了他们似乎已经存在于现有库中的事实IEEE

非常感谢您的帮助!

============UPDATE(基本上是我自己努力解决的)==================

我实际上不能使用 ieee.fixed_pkg - 尝试这样做会给我错误 Cannot find <fixed_pkg> in library <ieee>.

在 C:\Xilinx.7\ISE_DS\ISE\vhdl\xst\nt 找到 ieee 库后,我发现 fixed_pkg 实际上位于 ieee_proposed。但是,这仍然会引发相同的错误!

傻问题,不过你下载ieee_proposed的时候是不是也记得编译了?

编辑:还要记得将库映射到您的模拟。也许你已经做了所有这些,但这些是我经常犯的错误。

几天来我一直在与同样的问题作斗争。 我解决的方法是: 1. 将fixed_float_types_c、fixed_pkg_c 和float_pkg_c vhdl 文件添加到项目中。 2.声明它们属于工作库(Quartus文件中的属性window) 3.编译项目和调用库使用: 图书馆工作; 使用 work.fixed_pkg.all;

令我烦恼的是,它们并没有出现在我想要的漂亮的红色字体中,但它确实有效!