√ (平方根 square root)計算回路

ルート(平方根)を計算する回路です。VHDLで記述しています。
Lattice FPGA(ECP2M)で確認していますが、ALTERA, Xilinx でも動作するはずです。
計算中は次のデータ入力を受け付けない仕様で作ったため、
FPGAに組み込むソフトCPUで計算させればよさそうな物になってしまいました。
ソースコードはご自由にお使いください。 

 入力信号
 RST 非同期リセット H=リセット
 CLK クロック
 DTIN[63..0] y=√x の x  64bitの整数
 DTEN DTIN の有効フラグ (計算開始フラグ) DTIN と同時に 1CLK H を入力
 出力信号
 BUSY 計算中 HBUSY=H の期間中は、DTIN, DTEN 信号は無視されます
 DTOUT[63..0] y=√x の y 整数32bit, 小数32bit 計64bit の固定小数点出力
 DTOUT_VLD 出力マーカーDTOUT 出力時、1CLK H を出力
遅延量 
  DTOUT 出力は、DTIN, DTEN 入力から 196 クロック後(固定)


入出力のシミュレーション画面




DTIN=1(0000_0000_0000_0001h)の出力は、DTOUT の整数=0000_0001h, 少数=0000_0000h、
従って DTOUT=1.0 です。 

DTIN=2(0000_0000_0000_0002h)の出力は、DTOUT の整数=0000_0001h, 少数=6A09_E667h,
6A09_E667h=1779033703(decimal),1779033703/(2の32乗)=0.41421356、
整数部と小数部を足すと DTOUT=1.41421356 です。