本帖最后由 PTmissionary 于 2013-7-27 12:06 编辑

运算是红石模电的一个很重要的功能,红石模电在加减法,特别是0-15的数字以内的加减法上相比于传统数字电路有极高的优越性,计算也一直是红石研究的重点。




减法器。
就是单个的点亮模式的红石比较器。



左边的漏斗代表被减数输入端,下边的漏斗代表减数输入端,红石灯是输出结果。
如果结果小于零,输出结果仍然是零。


加法器。


两个漏斗代表两个加数的输入端,最下边的比较器是输出结果,红石灯用于检验结果。
这个东西的逻辑是15-(15-A-B)=A+B。
当结果大于15时,输出结果仍等于15。


乘法器。

乘法器的原因比较粗糙。

全局。


两端特写。



两个漏斗代表两个因数的输入端,右上角的比较器是输出结果,红石灯用于检验结果。

结构有点复杂所以详细解释一下。
整个结构从上向下一共有七行。
第一和第二行是一个有十五个输入的加法器。
第三行是一条传输线路,它把从左边漏斗处接收到的A信号传到上面加法器的每一个端入端上。
第四行的中继器可以阻止A信号在传输线路中的传递,中继器点亮时传输A信号就会被切断。
第五六七行可以根据右边漏斗处接收到的B信号控制第几个中继器被点亮。
可以使从左向右数第B个以后的中继器点亮,从而让最上面的加法器中只有B个输入端接收到A信号。
第七行箱子仅仅是为了获得需要的信号,每个箱子里放一个物品,产生强度为1的信号。

这个东西的逻辑是A+A+.....+A(一共有B个A)=A*B。
当结果大于15时,结果仍为15。




除法器。

除法器的原理比乘法更粗糙。

全局。


两端特写。



上边的漏斗代表除数输入端,下边的漏斗代表被除数输入端。
上边红石灯检验余数的结果,下边的红石灯检验商的结果。

简要解释一下原理。
这个装置就是执行这样一种算法。

定义被除数A,除数B,商C。
输入A,B。
初始C=0。

比较A和B的大小。
如果A>=B,那么新的A=A-B,新的C=C+1。
如果A<B,不作处理。
循环重复15次以上步骤。

最后的结果C就是商,A就是余数。

装置中1-3行就是执行比较A和B大小的作用,4-5行就是执行A=A-B的作用,6-11行就是执行C=C+1的作用。

特别的是除零的情况会使余数等于被除数,商为零,是不正确的结果。



要注意的是以上结构都是方便讲解原理的结构,并不是体积延时等优化过的结构,实际使用时还是要有所改变。
特别是乘除法,由于性能上比不上传统的二进制数字电路,基本完全不会去使用它。



因为模电计算会受到信号强度在0-15的条件约束,所以产生了进位运算的概念,一般是满十六进一的十六进制。
具体表现就是再添加一个进位输出端,当结果超过16时就让进位端有输出。

这里仅介绍一种进位加法器的算法,再说更多难度就太大了。

定义加数A,B。
计算15-(15-A-B)=A+B 和 A-(15-B)=A+B-15。
判断,如果A+B-15<=0,那么输出A+B,进位端不输出。
如果A+B-15>0,那么输出A+B-16,进位端输出。

结构参考可以去下面的帖内下载存档查看,这是一种非常优化体积的结构。
红石模拟信号可进位加法器
这种算法也是该帖作者发明的。

STAGE CLEAR