一位元加法器 ![](https://hackmd.io/_uploads/r1AcIwn_n.png) * ==關鍵字介紹== module(宣告) adder1(名字) input(輸入腳位)-> a, b, cin 三個輸入 output(輸出)-> cout(進位), s(和) assign(只要打公式都需要在前面加) endmodule(結束) ^ ->(xor), & ->(and), | ->(or) 用真值表化簡卡諾圖來解釋加法器原理 ![](https://hackmd.io/_uploads/Bk_70P2uh.png)(圖片來源:網路) 化簡後就是程式裡面的公式 ![](https://hackmd.io/_uploads/SJDlhP3O2.png) ![](https://hackmd.io/_uploads/BySqhDnuh.png) 上面兩張圖是兩個公式分別的卡諾圖 S的部分因為是取兩兩不同所以都是用xor cout的部分經過化簡可以得出上面的公式 再來用一位元加法器去延伸到八位元加法器 ![](https://hackmd.io/_uploads/Syz7-dnO2.png) * ==關鍵字介紹== 輸入[7:0] a 和 [7:0] b代表的是腳位總共8個 0~7總共八個位元輸入 輸出[7:0] sum也是共八個位元輸出 wire(接線) c0~6總共六個去做延伸到下一個位元 而下面用到的公式則是套用了一位元加法器的公式 adder1後面的a0~7則是每個一位元加法器的名字 adder1裡面的東西需要與一位元加法器內每個宣告的東西對應上 從a[0], b[0]開始加上cin 並輸出c0(進位)與[0] 裡面的cin則是用c0~6一一個個延續到下一個加法器 加到a[7], b[7]並最後得出cout 和sum[0~7]就完成了八位元加法器