我正在寻找使用VHDL划分两个浮点数的最简单方法。我需要代码可以合成(我将在Spartan 3 FPGA上实现它)。
第一个操作数将始终是固定数字(例如600),第二个操作数将是整数,假设在0到99999之间。固定数字是被除数,整数1是除数。所以我必须计算这样的东西:600/124。 或者任何其他数字而不是124,当然在0到99999之间。第二个数字(正在改变的数字)将始终是整数!! (不会有像123.45这样的东西。)
除法之后,我需要将结果转换为整数(将其四舍五入或者只是忽略小数点后的数字,这会更快)。
有什么想法吗?谢谢!
答案 0 :(得分:3)
此this VHDL file的site中有一个FP除法函数。
答案 1 :(得分:3)
有很多方法可以做到这一点,最简单的就是ROM。您不需要浮点任何位置,因为进行整数除法并补偿非零余数可以得到相同的结果。我建议在MATLAB或电子表格中计算前600个结果,这样就可以看出不需要处理高达99999的值。
此外,范围和精度的一些常用术语是 QI.F 其中I是整数位数,F是小数位数。因此0..99999将是Q17.0,您的输出将是Q10.0。