
本指南将详细介绍逻辑元件的基础知识以及各种装置的数学计算方法。 基础逻辑元件 大家好。我想很多人都想了解逻辑元件以及基于它们构建复杂机制的方法。那么,我们开始吧!与大多数相关主题指南不同,我们将从理论基础开始学习,也就是布尔代数。因此,本文会包含大量(真的很多)数学知识,但不必担心,因为布尔代数只涉及“0”和“1”,所以我们只需对这两个数字进行加减和乘法运算。那么,我们开始吧。 逻辑与门(AND):

从图中可以看出:执行逻辑乘法运算 Y = X1*X2,由于我们处理的是“0”和“1”,因此结果也只会是“0”或“1”。图中还展示了其真值表(输出状态取决于输入状态),从中可知,只有当两个输入均为“1”时,输出才为“1”。在游戏中也能看到类似的情况:

符号差异是由于图中采用的是俄罗斯国家标准(ГОСТ)符号,而游戏中使用的是国外的国家标准符号,但我认为这没什么大不了的,是可以适应的。 逻辑或门(OR):该逻辑元件执行逻辑加运算,但有一个“例外”,如果将“1”和“1”相加,结果不是“2”(二进制中为“10”),而是“1”。除此之外,这就是普通的“0”和“1”的加法:Y = X1+X2 及其表示法+真值表:

这次不会有游戏截图(我比较懒,情况其实很简单)。 逻辑元件非(NOT):游戏中没有这个元件,但为了完全理解相关主题,有必要对其进行了解。非元件可以表示为反相器,如果运用数学知识,也可以用符号“-”表示。而在布尔代数中,则使用另一种表示方式,即上划线。

关于游戏中的逻辑元件 在《废品机械师》中,逻辑元件的输入端数量可以从1个到某个较大的上限(这个上限非常大,我们暂不关注)。因此,上述公式的规模会相应扩大,例如对于5输入的逻辑与门,我们会得到: Y = X1*X2*X3*X4*X5。 或门的情况与此类似。 关于与非门(NAND)、或非门(NOR),尤其是异或门(XOR),我们稍后再讨论。我要说的是,前两个元素只是“与(或)”和“非”元素的结合。布尔代数的基本定律我不会直接全部讨论,因为数量相当多。布尔数学遵循所有那些在小学五到六年级学过的规则。因此,我们来看看最“特别”的部分,由于Steam中没有完善的公式编辑器,我会用一张图片展示所有公式。

这就是设计各种机制的主要基础,更准确地说是它们的计算基础(没错……数学无处不在)。 真值表和卡诺图 在掌握了基础知识后,就可以开始进行初步计算了。为此,我们会使用真值表,以及一种称为构建“完全析取(合取)范式”(分别为CDNF和CCNF)的方法。听起来很吓人,我同意,但实际上一切都很简单。 在实践中经常使用【SDNF】,因为它是根据逻辑构建的。“1”在输出端。为了不浪费时间,我直接举个例子:

这里需要立即指出的是,为了构建真值表,乃至在逻辑运算相关工作中,都需要具备一定的二进制计数能力,因为真值表必须包含所有输入数据的组合(除了解码器,但解码器的相关内容稍后再讨论)。 那么,回到真值表的话题。 输出Y的状态与输入X0、X1、X2存在某种依赖关系(目前连我自己也不清楚具体是什么关系,因为Y是随机设定的)。任务:根据该表格构建析取范式(DNF)。 解答:构建析取范式的方法如下:对于表格中“Y”等于“1”的每一行,写出该行的逻辑“与”函数,具体规则为:如果Xn=0,则该变量取反;否则,直接写出该变量。

同样,需要计算表格中其他Y=1的行,并将得到的中间结果相加。

接下来可以对表达式进行化简,但我们不会这样做,因为这既耗时又不合理,毕竟有更便捷的方法来化简得到的函数(卡诺图)。我们不会考虑合取范式,因为即使在大学里我们也没有使用过它。卡诺图是一种非常方便的逻辑函数化简工具,我们将直接使用它来为上述问题构建这样的图表。

看起来很复杂,但其实和往常一样简单。卡诺图是n维立方体的展开图,其中n为输入的数量。这样我们就能得到一个包含输入变量组合的表格。接下来,根据真值表填写该表格。填写完成后,就到了简化标准析取范式(СДНФ)的步骤:将所有“1”进行分组,此时“1”的数量必须是2的倍数,且每组必须构成一个矩形,同时各组之间可以重叠。应该尽可能组成最大的组。此外,组也可以只包含一个“1”。但在我们的情况中,一切并不太“乐观”:

不过仍然可以简化该函数:在组内只需写出其中不发生变化的那些变量的乘积,然后相加(所有构建DNF的规则在此处均适用)。

这样一来,功能在毫不费力的情况下就缩减了好几倍 =)。顺便说一下,我们的X0完全消失了,这很正常,甚至可以说很好 =) 实践! 乌拉!!!实践的时刻到了。由于游戏中没有逻辑非门,所以可以用与非门或者或非门(单输入)来代替。 实际上这个阶段是最简单的(关键是别把线路搞混了 =)),因为我们的任务就是根据公式选择逻辑元件并搭建电路:

电线=):

为了更加确保准确性,我们按照国家标准绘制了示意图。
这是我们按照俄罗斯国家标准(GOST)绘制的示意图(我知道这里不需要这种格式,但在构建机制时,纸上的示意图可能会非常有帮助)。 这样,我们就完成了从想法(条件)到在游戏中构建最简单组合机制的过程。对我来说,这个过程通常需要5到7分钟,具体取决于任务的复杂程度。顺便说一下几个问题,如果需要有多个输出端,那么每个输出端都要单独制作卡诺图,因此DNF(析取范式)也要单独制作。 特别谨慎的人可以在《废品机械师》中测试最新电路的运行情况,好在它又小又简单。 总结 这样,我们了解了布尔代数的核心,并且学会了构建逻辑器件的函数以及根据函数绘制电路。能坚持读到最后的人很棒,因为实际上这些内容都是技术学院二年级的学习材料,虽然难度不算太高。
Хабре上关于卡诺地图的文章。就这样,下次再见!
2026-02-15 07:00:15 发布在
废品机械师
说点好听的...
收藏
0
0
