如何计算verilog中浮点数的小数部分

时间:2016-05-27 10:45:12

标签: floating-point verilog fractions

我有浮点数。让我们说4.6和3.8。我们通过4.6 x 2 ^ 4 = 74和3.8 x 2 ^ 4 = 61将它们转换为固定点(Q4.4)。我们添加数字74 + 61 = 135.现在我们通过执行将此结果135转换为浮点数135/2 ^ 4 = 8.4。这将给出结果的整数部分,即8。

现在通过做(2 ^ -2 + 2 ^ -3 + 2 ^ -4)来计算小数部分。 有人可以告诉我如何在verilog中获得4的这个值,以便我可以在7段显示器上显示为8.4?

1 个答案:

答案 0 :(得分:1)

有几个简单的解决方案。

一种方法是创建一个查找表:对于16个可能值中的每一个,找出小数点应该是什么(即0b0111 = 0.4375 ~= .4)并构建一个case语句来产生正确的值。这不应该太难或太复杂,因为你只使用4位。

另一种选择是使用BCD加法器自己进行添加,这将允许您提取最高位数(即0b0111 = 250+125+62 = 437 -> 4)。