从vhdl中的实变量进行定点转换

时间:2011-11-02 16:22:55

标签: vhdl fixed-point

我在vhdl中有以下代码段:

signal s: signed(31 downto 0);
s <= to_signed(to_sfixed(1.2,8,-23),32);

现在我希望1.2的定点版本可以在信号's'中找到。

但它总是忽略了分数部分。 's'只包含小数部分(此处为“1”)。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

s没有任何地方存储任何小数部分,它是一个只能表示整数的带符号向量。

你几乎就在那里 - 删除签名并制作s和sfixed类型:

signal s: sfixed(8 downto -23);
s <= to_sfixed(1.2,sfixed'high,sfixed'low);

答案 1 :(得分:1)

如果您只想将sfixed中的位重新解释为有符号类型,只需使用简单的类型转换:

signal s: signed(31 downto 0);
...
s <= signed(to_sfixed(1.2,8,-23));