1.状态显示
状态显示是我们构筑组合逻辑电路的基础。在现实电路中,状态显示有高电平,低电平,非法值,浮空值。但在泰拉瑞亚中只有两种状态显示,对应高电平和低电平。在泰拉瑞亚中,我们用逻辑灯的亮灭来表示输入的状态。在这里,为了方便教学,我们规定逻辑灯亮为1,逻辑灯灭为0.
如图:
2.逻辑门的结算顺序
在泰拉瑞亚中,逻辑门发出信号看似没有延迟,全部在一物理帧内完成,但逻辑门确实有其运算顺序,我们可以通过以下电路来证明:
如图,当我拉下开关时,红线和绿线都被激活,但与门上逻辑灯仍是一亮一灭,因此与门不会发出信号,火把状态不改变。但是当我在绿线上加装一个与门后,效果就变得不一样了,火把可以被激活。如图,火把能被被激活是因为与门a1在a2打开上面的逻辑灯前先一步关掉了下面的逻辑灯,与门a1在瞬间完成亮灭切换,发出信号。那么现在,来说一下泰拉瑞亚中电路的结算机制。
1.电线的激活顺序为红,蓝,绿,黄(虽然在游戏中无法体现和证明,影响不大,可以忽略不计,但是可以借助
MechScope模组镜像站下载链接,有需要的自取
2.只要是逻辑门,都遵守逐级结算的顺序(不论任何逻辑门都是如此)
这里举一个例子,如图:与门a1在第一级,最早结算,与门a2在第二级,故第二个结算,与门a3,或门a4,故障门a5都在第三级,所以同时最晚结算。
知道了这些后,我们就可以正式进入组合逻辑了。
2.认识组合逻辑
组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与电路以前状态无关,而与其他时间的状态无关。请注意输出状态只决定于同一时刻各输入状态。
在泰拉瑞亚中,组合逻辑的构筑一般只需要与门和异或门。
不是说电路必须在同级结算,而是每一步电路间不能相互影响。
3.构建组合逻辑电路
(1)真值表
真值表是表征逻辑事件输入和输出之间全部可能状态的表格,我们通常令1为真,0为假。比如下面这个:
如图,abc为输入,y为输出,既然我们要构建组合逻辑电路,就必须依据这个写出逻辑表达式。
(2)逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。如何才能有意义,是需要构建电路的人去规定的,所谓的“有意义”是指输出的值。如果你现在看不懂的话,不用担心,后文我们会给出具体例子进一步教学。
现在说一下逻辑运算符的种类。
能用到的就这几个:
ab:表示项a和项b通过与门进行输出,也可以写作a∩b
a+b:表示项a和项b通过或门进行输出,也可以写作a∪b,在游戏中我们可以用与门来替换
a⊕b:表示项a和项b通过异或门进行输出
a':表示项a的取反,也表示项a通过非门输出,也可以写作¬a或者!或者a上划线(我打不出来你们自行想象吧)在泰拉瑞亚中,我们可以通过单次信号的激活来取反
那么我们该如何写出逻辑表达式呢?例1:根据上图中真值表写出逻辑表达式
在这里,我们默认输入为1时正常,取0时则为取反符,如:当a输入为0时,则表示为a'
我们默认y取1时有意义,也就是说,我们只需要列出当y=1时的逻辑表达式,如图:逻辑表达式为y=a'b'c+a'bc'+ab'c',形如这样的逻辑表达式叫与或式
简单的逻辑运算法则如下:
值得注意的是,某些逻辑表达式可以被化简,至于化简方法...就请自行查阅吧,这涉及太多数电的知识了
如果实在想化简的话可以借助下面这两个网站
Online Karnaugh map solver with circuit for up to 6 variables (32x8.com)
mathematical-logic-workstation (gitee.io)
(3)在游戏中构造电路
这里我们仍以y=a'b'c+a'bc'+ab'c'为例,真值表如下我们这里要严格按照真值表和逻辑表达式摆逻辑灯和逻辑门,效果如下
如图,一个组合逻辑电路就完成了,这里的电线作用是取反以及赋值。这里就需要我们提到的逻辑运算法则了,图中状态是111,也就是全开,三个与门各输出一次信号,在或门处,总输出为1(图中火把亮为1)(即y=1+1+1=1,)按照真值表,当且仅当符合a,b,c中其中只有一个为1时火把被激活。效果如下:当然,图中的或门也可以用与门替换
课后作业:7端数码管显示译码器的制作(数显)课后作业度盘链接提取码:tapW
后续楼主会在这里给出参考答案
如有错误欢迎指正