# ALU
將一些MIPS的指令用硬體給實作出來
* ALU的指令
* add/sub
* and/or/nor
* slt(set on less than)

## 設計ALU
* Divide and Conquer
* Boolean的運算(and、or、not)可以被分割為對每個 bit 的操作,進而實現整體的運算。
* 在加法中,可以先將加法拆解為一 bit 的加法,處理每個 bit 的相加,然後再將進位整合在一起。
* Design Trick 2: Solve Part of the Problem and Extend (解決部分問題並擴展)
* 在設計ALU時,可以先實現基本的邏輯運算(and、or、add、sub),然後再擴展實現額外的操作,如slt(set-on-less-than)和nor(logical NOR)。
* 先得到一部分的功能,再不斷擴展以滿足更多的需求。
## add/or/and 實現

如圖:
* and 0000
* or 0001
* add 0010
## subtract 實現

如圖:
* sub 0110
## nor 實現

如圖:
* nor 1100
## Overflow
由於超過了所能表示的位元數範圍而導致的。
一個二進位加法器只能表示一定範圍的數字。
例:
