是的,在 Quartus® II 軟體中使用math_real VHDL 套件一起記錄和地板功能時,有一個近似問題。在某些情況下,四捨五入錯誤可能會導致計算不正確的樓層值。
舉例來說,使用math_real套件功能計算日誌2(8.0)時,正確答案應該是 3.0,但 Quartus II 軟體中的實際計算值為 2.99999999999996。當結果被下樓時,結果是 2.0 而不是 3.0。
例子
floor(log2(real(8))) = 2.0
若要在 Quartus II 軟體中解決此問題,請使用下列選項之一
- 如果在記錄計算中套用地板功能,請新增誤差幅度
- 例子:
floor(0.000001 log2(real(8))) = 3.0
- 使用整數轉換功能,而不是地板功能
- 例子:
integer (log2(real(8))) = 3.0
這個問題預定在 Quartus II 軟體日後發佈時解決。