拡大+縮小+回転をサポートするとなると乗算回路が必須な気がしてきた。どう計算すればいいんだ、ということでぱっと思いつきで、各bit を shift して足していけばいいじゃんとソースを書いてみる。
begin
m = 2260
v = 0
#460 のうちに1になってるbit
[8, 7, 6, 3, 2].each{|t|
v += m << t
}
p v
p 2260 * 460
end
- 計算はあってたが、wikipedia に同じことが符号なしについて書いてあった。
- 符号ありの説明は難しそうで理解する気をなくした。
- 素直に verilog で * 演算子を使って実装しろってことか?