2013-04-28 54 views
2

我想使用VHDL功率功能,其中功率是浮動數字和數字是整數(將永遠是「2」)。電源功能在vhdl

2 ^某些浮點數。

我使用ieee庫和(fixed_float_types.all,fixed_pkg.all和float_pkg.all)。

我想過計算所有可能的輸出並將它們保存在ROM中,但我不知道功率的範圍。

如何實現此功能,如果有任何實現的功能,像這樣在哪裏找到它?

感謝

回答

3

爲了進行模擬,你會找到合適的電源功能在IEEE.math_real庫

library IEEE; 
use IEEE.math_real.all; 
... 
X <= 2 ** Y; 
or 
X <= 2.0 ** Y; 

這可能不是綜合的。如果我需要類似的綜合操作,我會使用查找表的值,斜率和二階導數,以及一個二次插值器。我已經將這種方法用於倒數和平方根函數以獲得單精度精度; 2 ** n在合理的n範圍內足夠平滑,以至於相同的方法應該可以工作。

1

如果一個近似值可以做,我想我會使用我的指數的整數部分來確定2的整數冪,就像浮點數是111.011010111你知道2部分的整數冪是0b10000000。然後,我會根據分數位從左到右進行有條件添加,因此對於111.011010111,您知道需要添加器件0b10000000(0 *(1/2)+ 1 *(1/4)+ 1 *(1/8)+ 0 *(1/16).....等等)。 1/2,1/4,1/8等是右移0b10000000。這實現了求冪的整數部分,然後將小數部分逼近爲整數部分的乘法。