2012-03-15 29 views
1

我要找來劃分使用VHDL兩個浮點數最簡單的方法。我需要可以綜合的代碼(我將在Spartan 3 FPGA上實現它)。最簡單的方法來做VHDL浮點除法?

第一個操作數將始終爲固定數字(例如600),第二個操作數將爲整數,比如介於0和99999之間。固定數字爲被除數,整數1爲除數。所以我必須計算這樣的東西:600/124。 或者任何其他數量的,而不是124,當然也就是在範圍介於0和99999第二個數字將始終是整數(即改變一個)! (不會有像123.45那樣的東西)。

師後,我需要的結果轉換成整數(圓起來,或者直接忽略小數點,這曾經是更快後的數字)。

任何想法?謝謝 !

+0

你看對opencores.org從源代碼的例子嗎? – 2012-03-15 20:06:55

+1

哪個值是除數?這有很大的不同。 – 2012-03-15 20:23:44

+1

另外,0到99999和0.000000到99999.000000之間有很大差異。你能澄清所有你的價值的準確性和範圍嗎? – 2012-03-15 20:37:58

回答

3

有很多方法可以做到這一點,用最簡單的是一個ROM。由於進行整數除法並且補償非零餘數可以給出相同的結果,所以不需要任何浮點數。我建議在MATLAB或電子表格中計算前600個結果,以便您可以看到處理99999的值不是必需的。

此外,範圍和精度的一些常見術語是QI.F其中I是整數位數,F是小數位數。因此0..99999將是Q17.0,您的輸出將是Q10.0。

+0

謝謝!我決定使用整數除法(重複減法),我已經成功實現了它。 – xx77aBs 2012-03-16 23:07:48