Bit Length Optimization of Fractional Parts on Floating
to Fixed Point Conversion for High-Level Synthesis
(高位合成における浮動小数点演算の固定小数点演算化のためのビット長最適化)
土井 伸洋 (0151070)
近年LSIの微細化によるハードウエアモジュールの大規模化や製品サイクルの短縮
といったことから,従来のLSI設計手法では設計要求を満たせなくなってきた.
このような状況のなかでC言語やその拡張言語からハードウエアを自動的に合成する
高位合成が急速に実用化されつつある.
C言語など高級言語からハードウエアを合成する場合,コンパイラによりハードウエア
むけの最適化が必要となる.最適化のうち重要なものに変数のビット長最適化が
ある.ハードウエアを実現する場合,データパスのビット長が面積や速度に
大きな影響を与える.このため,変数のビット長を必要最低限にすることは
回路面積と速度を最適化する上で重要である.
これまで既存の高級言語を拡張してビット長を指定できるようにしたものや,
ビットベクタを記述できる新しい言語が提案されている.
しかし人手でビット長を指定するのは,設計上大変な負担となる上に,
長すぎたり短すぎたりといった指定誤りの可能性がある.我々は必要最低限
のビット長を推定しハードウエア記述を自動生成するコンパイラを開発をすす
めてきたが,これは整数演算のプログラムにのみ対応できるものであった.
本研究では,小数部分のビット数をなるべく最適にしながら,浮動小数点数を固定小数点数
に自動的に変換する手法を提案する.ハードウエアモジュールの入出力情報さえ与えれば,
変数に必要なビット長は自動的に計算される.提案する手法は誤差伝搬の考えに基づいており,
従来のような大量のデータを使用してのシミュレーションは必要ない.このため
従来手法に比べ非常に高速に必要なビット長を求めることが出来る.