平衡三进制超前进位加法器
1、超前进位加法器这是一个新尝试未证明其正确性只是一个设想利用加法运算规则提前算出进位及和的电路而现在用平衡三进制全加器来实现一个CONS门与一个SUM门来实现半加器两个半加器加一个ANY门来合并进位实现全加器而ANY门相当于减配版本的SUM门以下是电路图全加器每一位的运算公式Sum A SUM B SUM Old CarryNew Carry (A CONS B) ANY (Old Carry CONS (A SUM B))进位传播项:PiA SUM B进位产生项:GiA CONS B全加器运算公式变形为Sum Pi SUM Old CarryNew Carry Gi ANY (Old Carry CONS Pi)以四位加法器来分析超前进位原理c1 g0 ANY (p0 CONS c0)c2 g1 ANY (p1 CONS c1)c3 g2 ANY (p2 CONS c2)c4 g3 ANY (p3 CONS c3)将c1、c2、c3的值依次代入得c2 g1 ANY (p1 CONS (g0 ANY (p0 CONS c0)))c3 g2 ANY (p2 CONS ( g1 ANY (p1 CONS (g0 ANY (p0 CONS c0)))))c4 g3 ANY (p3 CONS (g2 ANY (p2 CONS ( g1 ANY (p1 CONS (g0 ANY (p0 CONS c0)))))))也就是c1 g0 ANY (p0 * c0)c2 g1 ANY (p1 * g0) ANY (p1 * p0 * c0)c3 g2 ANY (p2 * g1) ANY (p2 * p1 * g0) ANY (p2 * p1 * p0 * c0)c4 g3 ANY (p3 * g2) ANY (p3 * p2 * g1) ANY (p3 * p2* p1 * g0) ANY (p3 * p2 * p1 * p0 * c0)注其中 “ * ” 符号表示CONS操作符。超前进位加法器速度更快,但同时电路会更复杂。2、实现思路上述的想要实现那复杂度实现是太大了有点不现实了特别平衡三进制逻辑门也是很复杂的所以从第一性原则出发那就是以结果为导向参考用Rust写平衡三进制加法器来写也就是代码如下所示也就是说当以全加器时它的逻辑可以简化这样子也就是它的进位只受当前位与上一位的影响可得公式C(i1)TFULLCONS(ai,bi,ci);c1TFULLCONS(a0,b0,c0);c2TFULLCONS(a1,b1,c1);c3TFULLCONS(a2,b2,c2);c4TFULLCONS(a3,b3,c3);如果可以提前算出所有的进位也就是(c4,c3,c2,c1)那么A SUM B再加上这个提前算出所有的进位就可以得到答案也就是超前加法器而(a0,b0)是知道的所以可以先算出CONS[a0,b0]然后设法得到CONS[a0,b0] X c0得到TFULLCONS(a0,b0,c0)多套几层就行了。参考1、balanced-ternary-algebra2、Fast Ternary Addition