2012-03-15 50 views
1

私はVHDLを使用して2つの浮動小数点数を分割する最も簡単な方法を探しています。私は合成可能なコードが必要です(私はSpartan 3 FPGAで実装します)。VHDL浮動小数点除算を行う最も簡単な方法は?

最初のオペランドは常に固定数(たとえば600)になり、2番目の整数は0から99999までの整数になります。固定数は被除数、整数1は除数です。だから私はこのような何かを計算する必要があります:600/124。 または124の代わりに他の数字を使用します。もちろん、0〜99999の範囲です。第2の数字(変更するもの)は常に整数です! (123.45のようなものはありません)。

分割後、結果を整数に変換する必要があります(切り捨てるか小数点以下の数値を無視します)。

アイデア?ありがとう!

+0

opencores.orgのソースコードからサンプルを探しましたか? –

+1

除数はどちらの値ですか?これは大きな違いになります。 –

+1

また、0〜99999と0.000000〜99999.000000の間には大きな違いがあります。すべての値の精度と範囲を正確に明確にすることはできますか? –

答えて

3

最も簡単なのはROMで、これを行うには多くの方法があります。整数除算を実行してからゼロ以外の余りを補償すると、同じ結果を得ることができるため、浮動小数点は必要ありません。 MATLABまたはスプレッドシートの最初の600個の結果を計算し、99999までの値を処理する必要はないことがわかります。

また、範囲と精度の一般的な命名法は、QI.Fです。ここで、Iは整数ビット数、Fは小数点以下桁数です。従って、0..99999はQ17.0、あなたの出力はQ10.0となります。

+0

ありがとう!整数除算(繰り返し減算)を使用することにしました。これを実装しました。 – xx77aBs

関連する問題