√ (平方根 square root)計算回路
ルート(平方根)を計算する回路です。VHDLで記述しています。
Lattice FPGA(ECP2M)で確認していますが、ALTERA, Xilinx でも動作するはずです。
計算中は次のデータ入力を受け付けない仕様で作ったため、
FPGAに組み込むソフトCPUで計算させればよさそうな物になってしまいました。
ソースコードはご自由にお使いください。
入力信号 | |
RST | 非同期リセット H=リセット |
CLK | クロック |
DTIN[63..0] | y=√x の x |
DTEN | DTIN の有効フラグ (計算開始フラグ) |
出力信号 | |
BUSY | 計算中 H |
DTOUT[63..0] | y=√x の y |
DTOUT_VLD | 出力マーカー |
遅延量 | |
DTOUT 出力は、DTIN, DTEN 入力から 196 クロック後(固定) |
入出力のシミュレーション画面
DTIN=1(0000_0000_0000_0001h)の出力は、DTOUT の整数=0000_0001h, 少数=0000_0000h、
従って
DTOUT=1.0 です。
DTIN=2(0000_0000_0000_0002h)の出力は、
6A09_E667h=1779033703(decimal),1779033703/(2の32乗)=0.41421356、
整数部と小数部を足すと
DTOUT=1.41421356 です。