在前一段时间制作内存时发明了一个名为状态串行序列比较器的新部件用于内存寻址。这个部件可以匹配状态串行中的特定序列,如果接收的序列与储存的序列相同可以发出一个信号。
图中匹配的序列为0b0000
图中匹配的序列为0b1011
(关于状态串行请阅读我之前的文章)
它在内存中的用法是这样的,检查到指定的序列(地址)才会开始后续位的接收,这样来避免接收不需要的位,减少性能的占用。
注意到在蓝色区域为指定的序列0b1011时才会接收红色区域的值
实际上它可以放在串行接收端的任意位置来匹配序列,这里不做展开。
接下来让我们看一下今天的主角:任意数量传送器互相传送,简称任传。根据最多支持的传送器数量也被称为256任传、64任传、128任传等等。
以及它的压缩版本:
和之前一样都是接上一根电线就能用,放在哪里都行,只要确保中继传送器线上距离最远。
它的结构非常简单,每个传送器只需要一个状态串行发送端和一个状态串行序列比较器即可。相较于之前大大简化了结构,并且也减少了面积。
另外,也很容易根据需要增减传送器的数量,比如这个就是16任传。(最大传送器数量等于2^逻辑门数量)
由于结构简单,理解状态串行就可以理解这种任传,所以我认为不需要具体的讲解。
另附压缩版本的四色电线图:
测试视频:
-
膜拜大佬 !
-
这个传送网络在实际使用的时候有个问题,如果还没有建到某个编码的站点的时候,在其他站点输入了这个编码,就会只传送到中继传送台上。我觉得应该改成比较完成数据后再进行传送好一些。
-
我在上课,大佬在整活
-
-
大佬又来了,太强
-
我回去实验了一下,如果输入端接收了错误的数据且有奇数个1的话,比较器的编码确实会反转,比如原来是1011,那下次应该输入0100才能正确。
-
2023-12-28 19:27:53
这是状态串行序列比较,不是状态串行接收,你这样用是错误的,状态串行接收看我上一篇文章。一般情况下状态串行串行线不复位也没有问题
-
2023-12-28 19:30:24
在发送第一个值时无论串行线是零还是一都会被赋值为第一个值,所以状态串行的串行线不用复位
-
2023-12-29 15:27:34
回复@enANaSA2: 回复已删除
-
2023-12-29 15:58:02
回复@enANaSA2: 我还是认为这种把总线直接连到数据存储的行为有风险,也许在某个特定序列下,比较器会翻转不回来。
-
-
视频好像坏了,诶
-
感谢你的默默付出,文章已经推送主站
-
(我寻思我也没抄错啊……)
第二和第三个传送器分别是0001和1110,当我在第一个传送器一直输入1110时,目的地会在另外两个之间反复横跳。
-
2023-12-30 10:36:47
中继传送器上的电线换成红色
-
2023-12-30 11:28:03
回复@enANaSA2: 可是这个对结果也没有影响吧,我们讨论的不是比较器的问题吗
-
2023-12-30 13:15:35
回复@拜煎饼教主: 你先换上试试
-
2023-12-30 13:15:55
回复@拜煎饼教主: 比较器没问题
-
-
看不懂,但我大为震撼
-
2024-01-05 07:46:20
没错,我也是😊
-
-
这是碳基生物能做到的?
-
我要疯狂了











































































我才改进好的第一代啊,怎么马上就出第二代了😭
回复@拜煎饼教主: 看你发了才想起来这个有第二代的
回复@enANaSA2: 还有一个问题,这个机器的比较器怎么复位呢?比如原来的编码是1011,如果线传输了奇数个"1",那下一次比较时不就变成0100了吗,我在电路图里看不到有什么能让它复位的装置啊。
回复@拜煎饼教主: 状态串行本质是连续赋值,赋值可以赋0赋1,而赋0又叫复位。所以状态串行不需要复位。