【发布时间】:2013-05-01 13:18:26
【问题描述】:
我在 VHDL 中使用 IEEE 定点包。
它运行良好,但我现在面临一个关于它们在测试台中的字符串表示的问题:我想将它们转储到一个文本文件中。
我发现确实可以直接写ufixed或者sfixed使用:
write(buf, to_string(x)); --where x is either sfixed or ufixed (and buf : line)
然后我得到像 11110001.10101 之类的值(对于 sfixed q8.5 表示)。
所以我的问题是:如何将这些定点数转换回实数(然后转换为字符串)?
【问题讨论】:
-
所以,在上面的示例中,您希望将 11110001.10101 作为 241.6563 写入文本文件?
-
从谷歌搜索看来,您可以使用一个 to_real() 函数。
-
你有没有尝试过类似的东西:write(buf, to_string(to_real((x)));
-
是的,我试过了。在 GHDL 上,我得到:“前缀既不是函数名,也不能被切片或索引”
-
固定通用包(fixed_generic_pkg.vhdl、fixed_generic_pkg-body.vhdl)可从IEEE Std 1076-2008(zip 文件)的 IEEE 补充材料页面获得。此包包含 sfixed 和 ufixed 的引用 to_real 函数。您可能会或可能不会遇到为 ghdl 构建的依赖项,并且还应该查阅 ghdl 用户手册。包体中的两个函数可以作为本地转换的灵感。
标签: vhdl fixed-point