pp.322-325
Quartus PrimeのIPカタログにALTSQRTがあるがここでは使わない。
まずfigure 13.2の計算部分だけ試す。unsigned 8ビット値(0~255)の平方根(0~15)を求める。
unsigned 8ビット値xの平方根の計算手順:
- 4ビットダウンカウンターを0b1111からカウントダウンしてカウント値を2乗する。
- カウント値の2乗とxとを比較する。
- カウント値の2乗のほうが大きいあいだはカウントダウンし続ける。
- カウント値の2乗がx以下になったら、次のカウントダウンよりも先にカウントを停止する。だから下の回路は出力レジスタをfalling edgeでクロッキングしている。
- そのときのカウント値がxの平方根(floor(√x))である。
今136 (=0x88)の平方根(≒11.7≒0b1011)を計算している。