[1.20] 新书架密码锁

2:01 移位寄存器的实现原理:
中轴线上的六个比较器,由下而上用 123456 编号
gt -2 时,两边红石线亮起,我们可以认为其更新顺序是由下而上的(事实上,红石线的更新顺序哈希相关,但是因为间隔较大,我们可以忽略这一点)
gt 0 时,左边清零用的中继器和右边的红石火把分别从下而上依次亮起/熄灭,这会从下而上地给中轴线左边的三个比较器和右边的三个中继器计划刻
计划刻执行的顺序是 1) 先比较添加的游戏刻数 2) 再比较优先级 3) 再比较添加的微观时序,因为中继器的计划刻的优先级高于比较器的,因此 gt 4 时右边三个中继器由下而上先执行计划刻,然后左边三个比较器再由下而上执行计划刻
gt 2:按照刚刚分析出的结论,右边三个中继器由下而上先执行计划刻,然后左边三个比较器再由下而上执行计划刻,这会分别给中轴线上的六个比较器添加计划刻,回顾计划刻的执行顺序,添加计划刻在同一个 gt,计划刻的对象都是比较器,因此前两个条件相等,需要比较微观时序——这些计划刻添加的时刻,就是导致它们添加的计划刻的执行的时刻,因此,中轴线上的六个比较器,计划刻的执行顺序是:1、3、5、2、4、6
gt 4:比较器的计划刻如我们分析的顺序执行,比较器 1 号将输入信号输出到自己面前的红石粉上,比较器 3 号将自己身后还没改变的比较器 2 号的信号,也就是第一格原本的信号输出到自己面前的红石粉,比较器 5 号将自己身后还没改变的比较器 4 号的信号,也就是第二格原本的信号输出到自己面前的红石粉,于是移位完成;比较器 2、4、6 号依次更新自己的信号强度,变成与 1、3、5 相同,完成寄存器的回路
我认为计划刻的微观时序是很多电路的基础,潜能很大,却很少有被用到,这个寄存器的例子,和无延迟比较器链的例子,都是计划刻微观时序的良好练习,我也坚持认为,微时序是每一个红石玩家应当学习的话题。
参考文献:
1) Fallen_Breath:深度剖析Minecraft #3 计划刻 深度剖析Minecraft #3 计划刻
2) Void0:浅析无延迟比较器链 浅析无延迟比较器链 (不要脸地引用自己的文献的我是鉴)