What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
cs:comp_n_arch:courses:fnti_i:week_2 [2025/04/08 14:22] – [Add16:Carry-ahead] codingharecs:comp_n_arch:courses:fnti_i:week_2 [2025/04/08 14:28] (当前版本) – [其他实现上的一些细节] codinghare
行 191: 行 191:
 比如第二位的 carry 公式就可以展开为: 比如第二位的 carry 公式就可以展开为:
 $$C_2=G_1​∨(P_1∧G_0)​∨(P_1∧P_0​∧C_0))$$ $$C_2=G_1​∨(P_1∧G_0)​∨(P_1∧P_0​∧C_0))$$
 +==其他实现上的一些细节==
 +  * ''Mux16'' 是 ''if / else'' 的硬件实现,使用 ''sel'' 位来作为条件输入
 +  * 验证某个输出是否小于 0 只需验证其最高位,比如 ''out[15]'' 为 1 则该数为负
 +  * 验证某个输出是否等于 0 需要使用 ''OrNWay'' 对所有 bits 进行按位 ''Or''。这样计算后:
 +    * 如果有任意 bit 为 1,那么 Or 的结果都为 1。此时输出是不等于 0 的,如果再将其翻转(//Not//)再输出至是否相等的 bit,此时为 0,也就是不相等。
 +    * 反之,按位 Or 全为 0,翻转后结果为 1,说明相等。