平方根を求める / 計算部分だけ試す

pp.322-325

Quartus PrimeのIPカタログにALTSQRTがあるがここでは使わない。

まずfigure 13.2の計算部分だけ試す。unsigned 8ビット値(0~255)の平方根(0~15)を求める。

unsigned 8ビット値xの平方根の計算手順:

  1. 4ビットダウンカウンターを0b1111からカウントダウンしてカウント値を2乗する。
  2. カウント値の2乗とxとを比較する。
  3. カウント値の2乗のほうが大きいあいだはカウントダウンし続ける。
  4. カウント値の2乗がx以下になったら、次のカウントダウンよりも先にカウントを停止する。だから下の回路は出力レジスタをfalling edgeでクロッキングしている。
  5. そのときのカウント値がxの平方根(floor(√x))である。

f:id:ti-nspire:20210423152017p:plain:w900

今136 (=0x88)の平方根(≒11.7≒0b1011)を計算している。
f:id:ti-nspire:20210423152705j:plain:w500