我当前的项目涉及一个地址计数器实体,它输出一个7位向量,输出(m)进入一个正弦查找表实体。所以基本上,我希望m是x,而正弦实体的输出是y。但我的问题在于查找表的条目。如何将实际实际值转换为std_logic_vectors?
例如,条目的正弦值为34.1326。 那怎么会变成一个载体?
答案 0 :(得分:4)
虽然baldyHDL的答案可行,但您现在可以使用(现在标准的和可合成的)定点类型来节省大量的手动工作。
您可以选择二进制点左右两侧的位数。有一些函数可以直接将实数转换为定点。
您可以在http://www.vhdl.org/fphdl/
找到该库例如:
signal a : sfixed (7 downto -6);
这有7位左边的点(范围为-64到+63)和6位右边的点,每个值2 ^ -6 = 0.015625。
然后你可以这样做:
s <= to_sfixed(34.1326);
您将获得您所要求的表格中可以表示的最接近的数字。鉴于输入的分辨率,这可能不够接近,所以将-6更改为更负面的东西以获得更高的分辨率。
答案 1 :(得分:0)
将您的输入乘以值2 ^ n并舍入结果。结果可以表示为std_logic_vector,请记住这有逗号后的“n”位。在某种程度上选择“n”,四舍五入后的量化就足够了!
示例:
警告:仔细选择矢量大小并注意SIGNS