异星工厂吧 关注:64,053贴子:417,851

回复:【电路探究】电路不明白的?那就研究研究呗!

只看楼主收藏回复

3、关于大数据存储
上面提到的存储设备只能存储少量数据,对于大量数据存储就显得力不从心了。要存储大数据第一个想到的就是电脑硬盘,这就方便了,直接上图:

下面常量箱存储18个信号组成的数据,用绿线(数据用绿线连)连结上面的判断运算器,这个常量箱的地址是判断参数里的1。这个结构可以并联多个,地址可以依次标为1、2、3、……,如图:

红线只要输入相关地址的[T]控制信号(为啥用[T]?没啥,习惯,感觉像周期),就能从常量箱里读出其中18个信号了(从上方判断运算器的绿线传出)!只要肯一直往后连这个结构(别忘了改判断参数里的[T]值),你就可以拥有一个足够大的存储空间!
注:有些朋友可能会问手打每个判断运算器里的参数很累的呀,为啥不在加一点电路搞个顺序递增的信号当这里的“地址”呀!我的回答是浪费资源,如果有朋友需要这样的“硬盘”存储超多数据,他自然有办法修改这个判断参数而不花费更多的力气(我不相信他是手打常量箱里的信号的)。
这样只需要加上上述的计数器结构,就可以依次读取“硬盘”数据了!
总结,“硬盘”里的每个“扇区”(1个常量箱+1个判断运算器)都是由上述结构构成,每个“扇区”都有唯一的“地址”,只要输入相应“地址”的控制信号,就可以在延迟1t后读出该“扇区”里的相应数据。输入信号持续,输出数据也持续。打完收工(其实还有如何把18个信号分离,以及每个信号到底能有多少种变化这些问题,这些都留在音乐播放器及图像显示器里详解,别急慢慢来)!


IP属地:四川16楼2018-07-20 21:02
回复(7)
    4、关于信号过滤
    前面提到过信号污染,那么怎么怎么过滤掉摸个信号呢?其实非常简单,如图:

    比如说我想过滤掉上游的[Z],就可以这个弄。具体原理就不详细讲了,相信大家一看就会。上下游数据隔离,延迟1t。
    如果是这样就是过滤掉所有信号:

    看,简单粗暴好用(***,另起一个网络不就好了吗)。
    再继续来,如果现在需要一种“过滤”,将持续信号“过滤”为瞬时信号,规则就是如果上游的持续信号有改变,则下游传出这个瞬时信号。先上图再说:

    比如上游有一个持续信号[A],但是会不定期改变值。这里我们就巧妙的运用“延迟”来保存一个信息,上下游信号隔离,延迟1t。
    当然有了这个思路你就,你就可以继续做一个多信号这种过滤器了(持续转瞬时):

    当然下游要防止[Z]污染,延迟为2t。
    为啥我老要提到这个延迟,主要在精细化设计里总要同步呀!


    IP属地:四川17楼2018-07-20 21:05
    收起回复
      2026-02-16 09:14:01
      广告
      不感兴趣
      开通SVIP免广告
      5、关于显示器
      上述内容如果你都清楚明来,恭喜你!电路的知识你已经都具备,从现在开始,我们探讨一些无关紧要细节!首先来做一个显示器!
      显示器其实就是灯泡阵列,可以类比为数学里的矩阵,由行和列组成(又开始讲废话了)。在设计显示器前先来规划一下,两个电线杆电力覆盖之间可以插入16个灯泡,这数就可以作为矩阵的行数,列数其实也有讲究,不过先不细究,按照一般宽屏比例16:9来换算大概是28.44,四舍五入一下就是30(这是怎么舍入的呀~~,不要在意这些细节)。
      为了演示方便(为了偷懒),就先造个方形显示器:

      每一列灯泡从上到下的启用条件分别是[1]>0、[2]>0、……、[F]>0、[G]>0。
      但是光有显示器也没用,必须给他数据,然后通过控制电路让其展示出来才有意义。
      数据存储可以考虑“硬盘”,这要多大的硬盘才能表示呢?
      一个常量箱有18个格子,存16种信号可以表示一列;多少列就需要多少个常量箱,有16列需要16个常量箱,30列需要30个常量箱就可以表示了。
      好了,通过以上内容我们就可以做一个显示了。
      但是!
      16行30列灯泡矩阵能用一个常量箱完成要求吗?答案是:能!
      异星工厂里的电路其实要比实际二极管之类的东西高级得多,光是信号种类就有[0]~[9]、[A]~[Z]、还有9种颜色信号、各种物品信号……,每种信号还有数值这个属性,可以说完爆0/1。运算符号有加法、减法、乘法、除法、指数、位移、与、或……。
      灯泡亮和灭其实就相当于二进制的1和0,一个信号的数字可以很大表示多个灯泡状态。在游戏里面,数值这个东西是有上限的,稍一实验就可得出是4Byte的带符号的长整型,即32bit。最高位表示正负,负数用补码表示,这里就不展开了。所以一行灯泡(30个,其实31个也能行)可以由一个数字表示全部状态。矩阵只有16行,常量箱有18个格子,一个常量箱都用不完。
      将一个数字取二进制的某一位的值需要用到二进制分解器,这货张这个模样:

      下方的运算参数里面0,代表取二进制的第一位(最小位)。当然取第二位就写1,以此列推……


      IP属地:四川18楼2018-07-20 22:02
      回复
        二进制分解器如果连成了片就构成了简易“显卡”:

        这个就是核心模块(好low的感觉呀)!如果从常量箱里读出了[A]3、[B]2这组数据,在显示器上就会这样:

        好了更复杂的图像就留给观众老爷们练手了(这样我就可以偷懒不动手了)。
        但是,显示器就是要动态显示。这样子只是固定一个图像太乏味了,要让图动起来(这样就可以做电影播放什么的了),咱们就要引入“硬盘”及“控制器”了。
        来张全家福:

        左下角就是控制器,控制器右边就是硬盘(只做了2组扇区意思一下,有兴趣的可以做200组来玩)。

        控制器就是输出[T]来寻址。

        硬盘就是这样的东西,常量箱里放数据就行了。
        未完待续》》》


        IP属地:四川19楼2018-07-20 23:17
        回复
          求更新求更新~
          还有啥好玩的trick


          IP属地:广东20楼2018-07-21 12:51
          回复
            再来说一下红线连接的距离是10:

            再长就连不到了(不要跟我说电线杆可以加长距离,我不听):

            由于灯泡启用条件不能运算(弱爆了),颜色又是启用后的附加判断,所以我们只能对每个灯泡加一个判断运算器帮助其判断颜色(真是操碎了心)。
            为了演示原理,我们这里用4个灯泡和4个判断运算器来掩饰:

            比如第1个灯泡,我们管它叫[1],如果信号[1]<8它就启用,具体颜色是有与其相连的判断运算器来辅助判断的,所以我们在判断运算器里也看到了[1]的影子。之后的3个都一样,只不过信号改为[2]、[3]、[4]而已。
            为了便于理解,下面我放了2个常量箱:

            左边的是一个固定内容,对每个颜色进行编号(就是数值,看清楚颜色是有数值的)。右边的是存放数据地方,比如灯泡1播放颜色1(就是红色),灯泡2播放颜色4(就是绿色),大家可以自己验证。
            这到底是怎么实现的呢,大家请再看上面的判断运算器。灯泡1相连的判断运算器的判断参数是[黄色*]>=[1],输出为[黄色*]输入数值。大家应该已经心领神会了(不会的再看一遍前面内容)。
            不过呢,如果要灯泡1不亮怎么搞?简单,在常量箱里把[1]改为8,由于灯泡启用条件限制,灯泡会灭掉的。


            IP属地:四川22楼2018-07-21 14:07
            收起回复
              好了,讲解完彩电的制造机理,我们就可以自己动手造一台了:

              诶,这好像不对呀,感觉好像比上面讲的要复杂一点呀!咋回事儿?
              其实嘛,就多加了一个功能。对,就是压缩数据!(最下方的是硬盘,[T]1播放第1个扇区,[T]2播放第2个扇区,以此类推)
              黑白电视只用二进制的1位就可以表示,但是加入色彩就需要用3位(8种排列)来表示!
              由于红线最多距离10,所以中间灯泡有9行,前4行与上面相连,后5行与下面相连。用到的东西就是黑白电视里面的“二进制分解器”(当然别忘记该参数哈)。
              只强调一点,二进制分解器按3位分解出来的数范围是0~7,0代表不启动,所以灯泡的启用条件改为>0较好(比上面讲原理时<8要好)。

              好了,彩电的“砖”抛完了,坐等“玉”自动上钩的(偷笑)。


              IP属地:四川24楼2018-07-21 14:16
              收起回复
                6、关于彩色显示器
                我们已经做出了黑白电视,顺理成章下一步就要开始攻克彩色电视!先来个图压压惊:

                嗯……看起来连线是有点多(其实这里可以只用绿线的,不过为了方便观察使用了红线),不过确实可以实现单点控制。
                下面跟着我的节奏,一步一步给大家展示!
                我们首先来说一点基础知识。
                灯泡只要连上线路就会出现一个信号连接界面:

                要做彩电这里就必须把使用颜色标识勾上,同时还要填写启用条件(根据需要)。也就是说在灯泡达到条件启用时,同时传给它一个颜色信号(信号值必须为正数),该灯泡就可以显示出颜色了。比如:

                同学C:“如果在灯泡启用的前提下,同时传入两个或多个值为正数的颜色信号,那颜色怎么判定?会叠加色彩吗?”
                我:“好问题,我们一起来研究下原理。”
                比如这样:

                居然显示的是红色!
                再比如这样:

                只显示绿色,蓝色和黄颜色都被忽略了(注意数值,我想说的是跟数值无关)!
                我这里就不卖关子了,直接来看图:

                最下面一行颜色是有顺序的(!敲黑板),红色的优先级最高,之后是绿色,再之后是蓝色,……,一直到第七个白色。优先级一直递减,最后两个是颜色界的耻辱,不会影响灯泡的颜色!把这两种颜色拖出去枪毙5分钟。
                利用这个特性我们就可以入手了!!!


                IP属地:四川29楼2018-07-21 20:08
                收起回复
                  2026-02-16 09:08:02
                  广告
                  不感兴趣
                  开通SVIP免广告
                  太长了慢慢看


                  IP属地:宁夏来自Android客户端31楼2018-07-30 17:51
                  回复
                    大佬大佬


                    IP属地:美国来自Android客户端32楼2018-08-02 08:04
                    回复
                      关于逻辑信号有没一些高端的对生产有用的案例?


                      来自iPhone客户端33楼2018-08-03 15:52
                      回复
                        大佬 请问虚空泵怎么用?


                        34楼2018-08-03 16:57
                        收起回复
                          我居然没看懂


                          IP属地:广东35楼2019-02-09 03:11
                          收起回复
                            头大


                            IP属地:广东来自Android客户端36楼2019-02-10 13:05
                            回复
                              2026-02-16 09:02:02
                              广告
                              不感兴趣
                              开通SVIP免广告
                              对于一个数学零分的文科生来说一脸懵逼


                              来自Android客户端37楼2019-02-16 23:33
                              回复