运算是红石模电的一个很重要的功能,红石模电在加减法,特别是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