加法器笔记
(没必要填的坑,手上已经有手写版笔记了)
Ripple adder 行波加法器
简单地说就是傻瓜加法器。首先有一位的全加器:
\[sum = a \oplus b \oplus c
\]
\[cout = ab + ac + bc = ab + (a + b)c
\]
然后将第 \(i\) 位的 \(cout\) 与第 \(i + 1\) 位的 \(c\) 相连即可。
Carry-Lookahead Adder 超前进位加法器
首先,一位全加器还是需要的。然后考虑到行波加法器中后一位的 \(cin\) 依赖于前一位的 \(cout\),我们可以通过直接 assign 每一位的进位来解决这个效率问题。
将 \(cout\) 的表达式化成 \(C_{i + 1} = G_i + P_i\cdot C_i\) 的形式,得到 \(G_i = A_i B_i, P_i = A_i + B_i\)。然后列出更高位的 \(C_{i + 1}\) 表达式,将其中的 \(C_i\) 替换掉,得到一系列 \(C_i\) 表达式,这就是四位超前进位加法器。
又根据
\[C_4
\]

浙公网安备 33010602011771号