ALU — 算術邏輯單元

基本結構

ALU(Arithmetic Logic Unit)是 CPU 的核心元件,負責執行算術運算(加減乘除)和邏輯運算(AND、OR、XOR、NOT)。ALU 接收兩個運算元(A、B)和一個運算碼(ALU Op),輸出結果和狀態標誌(Zero、Carry、Negative、Overflow)。

        A ──→┐
        B ──→┤  ALU
   ALU Op ──→┤      ──→ Result
              │      ──→ Flags (Z, C, N, V)
              └─

加法器電路

半加器計算兩個位元相加,輸出 Sum(XOR)和 Carry(AND)。全加器擴展為三個輸入(A、B、Cin),輸出 Sum 和 Cout。多個全加器串聯形成 N 位元漣波進位加法器。

// 全加器 Verilog
module full_adder (input a, b, cin, output sum, cout);
  assign sum = a ^ b ^ cin;
  assign cout = (a & b) | (cin & (a ^ b));
endmodule

Nand2Tetris ALU

Nand2Tetris 課程中的 Hack ALU 非常簡潔:僅需 6 個控制位元(zx、nx、zy、ny、f、no)即可實現 18 種運算。例如 zx=1, nx=1, zy=1, ny=1, f=1, no=1 輸出 !(-1 + -1) = 1

狀態標誌

相關連結