補数

  • x + (-x) = 2nとなる -x が x に対しての補数
  • ビット反転して1を足すことで補数を求められる

符号付き2進数

  • 最上位ビットで符号を表現する(正の数は0 負の数は1)ため、nビット符号付き2進数の場合-2n-1 から 2n-1 - 1 の範囲を表現できる
    • 例: 4ビット符号付き2進数の場合、最小値 10002 (-810) 最大値 01112 (710)
  • 符号付き2進数では0は正の数に含まれる

半加算器と全加算器

  • 半加算器は1ビットの値2つの加算を行い、和と繰り上がりを出力する

    • 繰り上がりは含められない
  • 全加算器はの1ビット値3つの加算を行う

    • 3つの値を加算できるので、繰り上げを考慮できる
  • 「半」と「全」の違いは繰り上げを含むか否か

HDL関係

  • 多ビットバスが便利

    • インデックスを指定しないと全ビットを渡せる
  • 1つの出力を異なる切り出し方で複数の入力として使用することはできないので、Andを用いて用途別に変数を作らなければいけないので、下記のように書いたりした

      And16(a=finalResult, b=true, out=out);
    
      And16(a=finalResult, b=true, out[0..7]=lower8Bits, out[8..15]=upper8Bits);
    
      ~ 省略 ~
    
      And16(a=finalResult, b=true, out[15]=ng);