Intel:17bit の整数2つを入力として、割り算を小数点以下 17 bit まで求める計算(除数の方が大きいことを想定)を行いたいのですが、浮動小数点数に変換せずに割り算で固定小数点数を出力する方法はありますか?
IP
Quartus Prime
カテゴリー:IP
ツール:Quartus® Prime
デバイス:-
整数用の割り算 IP の LPM_DIVIDE を応用して、下記の方法で対応することができます。
入力の被除数(分子)を 17bit 左シフト(右に 0 を17bit 加えて 34bit)します。
除数(分母)はそのまま、34bit 数 ÷ 17bit 数 を LPM_DIVIDE で計算します。
結果(商)の 34bit 数の小数点位置を最下位ビットの右から 17bit 左にずらした数が求めたい数になります。
<10進数での説明例>
11/15 を小数点以下3桁まで整数除算で求める
(1) 11 x 1000 = 11,000 を整数除算で 15 で割ると、商 733 余り 5
(2) 733 / 1000 = 0.733 が答えとなる。切り捨てられる誤差は 5/15/1000 = 0.000333...