CPU FULL ADDER

From PSXDEV
Jump to: navigation, search

Файл:Full adder.jpg

in1 = a
in2 = b
in3 = carry_in
out1 = carry_out
out2 = sum
in1 in2 bc                   out1 out2
0   0   01   b = 0, c = 1    in2  in3
0   1   10   b = 1, c = 0    in3  !in3
1   0   10   b = 1, c = 0    in3  !in3
1   1   01   b = 0, c = 1    in2  in3 
in1 in2 in3 |   out1 out2
0   0   0   |   0    0   
0   0   1   |   0    1
0   1   0   |   0    1
0   1   1   |   1    0
1   0   0   |   0    1
1   0   1   |   1    0
1   1   0   |   1    0
1   1   1   |   1    1

Файл:Full adder truth table.jpg

Файл:Full adder circuit.tif

Flow

В нижней части находится спаренные XOR / XNOR, для вычисления in1 ^ in2. На схеме представлены внутренние линии b и c.

На самом деле b = in1 xor in2 , а c = in1 xnor in2.

Отличительной особенностью тут является то, что вход у CMOS может идти на диффузию.

Файл:Fulladder flow lowpart.jpg

В верхней части проводится дополнительная операция с carry_in, для вычисления финального результата.

Файл:Fulladder flow toppart.jpg

(out3 на рисунке на самом деле carry_in :))

Особенности топологии

  • Вход carry_in может приходить как с М1 (через верх), так и через М2 (сразу на поли)
  • Вход in1 (a) также может приходить как снизу по М1, так и через М2 (на поли)