平衡三进制超前进位加法器

1、超前进位加法器

这是一个新尝试,未证明其正确性,只是一个设想,利用加法运算规则,提前算出进位及和的电路,而现在用平衡三进制全加器来实现,一个CONS门与一个SUM门来实现半加器,两个半加器加一个ANY门来合并进位实现全加器,而ANY门相当于减配版本的SUM门,以下是电路图:

全加器每一位的运算公式:

Sum = A SUM B SUM Old Carry

New Carry = (A CONS B) ANY (Old Carry CONS (A SUM B))

进位传播项:Pi=A SUM B

进位产生项:Gi=A CONS B

全加器运算公式变形为:

Sum = Pi SUM Old Carry

New 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(i+1)=TFULLCONS(ai,bi,ci);

c1=TFULLCONS(a0,b0,c0);

c2=TFULLCONS(a1,b1,c1);

c3=TFULLCONS(a2,b2,c2);

c4=TFULLCONS(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-algebra

2、Fast Ternary Addition

相关推荐
Hello.Reader16 分钟前
算法基础(十)——分治思想把大问题拆成小问题
java·开发语言·算法
绛橘色的日落(。・∀・)ノ1 小时前
机器学习之评估与偏差方差分析
算法
消失的旧时光-19431 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
AI_Ming2 小时前
从0开始学AI:层归一化,原来是这回事!
算法·ai编程
WL_Aurora2 小时前
备战蓝桥杯国赛【Day 8】
算法·蓝桥杯
智者知已应修善业2 小时前
【51单片机模拟生日蜡烛】2023-10-10
c++·经验分享·笔记·算法·51单片机
MediaTea2 小时前
Scikit-learn:从数据到结构——无监督学习的最小闭环
人工智能·学习·算法·机器学习·scikit-learn
智者知已应修善业2 小时前
【51单片机如何让LED灯从一亮到八,再从八亮到一】2023-10-13
c++·经验分享·笔记·算法·51单片机
qeen873 小时前
【数据结构】二叉树相关经典函数C语言实现
c语言·数据结构·c++·笔记·学习·算法·二叉树
良木生香3 小时前
【C++初阶】STL——List从入门到应用完全指南(1)
开发语言·数据结构·c++·程序人生·算法·蓝桥杯·学习方法