每个时钟计数11,520代/ 10,016 x 6,796盒/ 244,596个弹出计数
你去了...很有趣。
好吧,设计当然不是最佳的。从边界框的角度来看(7段数字很大),从初始填充计数(有一些无用的东西,当然也可以简化一些东西)和执行速度都没有,我也没有。不确定。
但是,嘿,很漂亮。看:
运行!
从这个要点获得设计。将整个文件文本复制到剪贴板。
新增:这是同时具有AM和PM指示器的版本。
转到在线JavaScript Conway生活模拟器。单击导入,粘贴设计文本。您应该看到设计。然后,转到设置,并将生成步骤设置为512,或将其设置为这些行附近的值,否则,您将不得不永远等待以查看时钟显示的更新。
单击运行,请稍等一下!
直接链接到浏览器内版本。
请注意,使这个庞大的设计可用的唯一算法是hashlife。但是,您可以在几秒钟内完成整个时钟回绕。使用其他算法,甚至无法看到小时数的变化。
这个怎么运作
它使用p30技术。只是基本的东西,滑翔机和轻型飞船。基本上,设计是自上而下的:
- 在最顶层,有时钟。这是一个11520周期时钟。请注意,您需要大约10.000代来确保正确更新显示,但是设计应该在较小周期的时钟(大约5.000左右-时钟必须是60的倍数)下保持稳定。
- 然后,是时钟分配阶段。时钟滑翔机复制在一棵平衡的树中,因此最后有32个滑翔机正好到达柜台台的同一时刻。
- 使用每个状态和每个数字的RS锁存器进行计数器阶段(我们以十进制计数)。因此,分钟的右数位有10个状态,分钟数的左数位有6个状态,小时数的12个状态(小时数的两位在此处合并)。对于这些组中的每一个,计数器的行为都类似于移位寄存器。
- 在计数阶段之后,有查找表。它们将状态脉冲转换为显示段ON / OFF动作。
- 然后,显示本身。这些段仅由多个LWSS字符串组成。每个段都有自己的锁存器以保持其状态。我本可以对数字状态进行简单的逻辑或运算,以知道段是否必须为ON或OFF,并摆脱这些锁存器,但是当数字更改时,不变的段会出现故障(因为信号延迟)。而且从查询表到数字段的滑翔机源源不断。因此,它看起来不会那么好看。它必须是。是。
无论如何,这种设计实际上并没有什么特别之处。在此过程中没有发现任何令人惊讶的反应,也没有以前没有人想到的真正巧妙的组合。只是零零碎碎地凑在一起(我什至不确定我是否以“正确”的方式做到了-我实际上是完全陌生的)。但是,这需要很大的耐心。使所有这些滑翔机在正确的时间在正确的位置升起是令人头疼的事情。
可能的优化:
- 与其将相同的根时钟复制并分发给n个计数器单元,不如将同一个时钟块放置n次(每个计数器单元一次)。这实际上会简单得多。但是,那时我将无法通过在单个点上更改时钟来轻松地对其进行调整...而且我具有电子背景,并且在实际电路中,这将是非常错误的。
- 每个段都有自己的RS锁存器。这要求查找表同时输出R和S脉冲。如果我们有一个锁存器,它只能从公共输入脉冲中切换其状态,则可以使查找表大一半。PM点有一个这样的锁存器,但它很大,我无法提出更实用的方法。
- 缩小显示屏。但这看起来不那么好看。它必须是。是。