逻辑电路(Logic Circuit)可认为是一个会返回输出结果的装置,输出结果由输入信号以及逻辑门的规则决定。举个例子,当且仅当两个输入到与门的信号都为 '真'/'开'/'激活的'/'高电平'/'1'时,与门才将'真'/'开'/'激活的'/'高电平'/'1'作为输出结果。
有许多不同种类的逻辑门,每种逻辑门都有很多不同的设计方案。不同的方案也各自有优缺点,如电路规模、复杂度、运行速度、维护难度以及花费等。下面的章节会对每一种逻辑门列出很多不同的设计方案供读者参考。
概念[]
A | 开 | 开 | 关 | 关 | (输出为真时)等效文字逻辑表达 |
---|---|---|---|---|---|
B | 开 | 关 | 开 | 关 | |
A非 | 关 | 关 | 开 | 开 | A为假吗? |
A或B | 开 | 开 | 开 | 关 | 有一个输入为真吗? |
A或非B | 关 | 关 | 关 | 开 | 两个输入都为假吗? |
A与B | 开 | 关 | 关 | 关 | 两个输入都为真吗? |
A与非B | 关 | 开 | 开 | 开 | 有一个输入为假吗? |
A异或B | 关 | 开 | 开 | 关 | 两个输入不同吗? |
A同或B | 开 | 关 | 关 | 开 | 两个输入相同吗? |
A蕴含B | 开 | 关 | 开 | 开 | A是真、B是假不满足吗? |
如果忽略逻辑门本身的少量延迟,我们可以认为逻辑门的输出可以立即对输入的状态产生反应。
- 交换输入
- 大多数2输入逻辑门中,交换A端与B端并不影响输出结果。
- 交换蕴含门的输入端会对输出造成影响,除此之外,非门只有一个输入端。
- 层叠输入
- 与门,或门与异或门可以通过输入端两两树状层叠完成多输入改造。这样改造后的输入端彼此依然可以交换。
- 异或门这样改造后,只有输入端为真的个数为奇数,输出才为真。
- 逻辑门的选择
- 如果不清楚应该用哪种逻辑门,你可以像右边一样列一张表(只留一行输出就够了)。列出所有输入信号的可能组合以及期望对应的输出,然后可以将你列出的表与下面的表进行对比,看看哪一种符合即可选用。列表也给出了每种运算的对应数学符号。
逻辑门[]
逻辑门(Logic Gate)为最基本的逻辑电路。
非门[]
A | 开 | 关 |
---|---|---|
A非 | 关 | 开 |
非门(NOT Gate)即“反相器”,会将所输入的真值反相,也就是当输入为假时输出为真,反之亦然。
- 火把反相器
- 1格宽,平面,静音,可并列
- 电路延迟:1刻
- 火把反相器是最古老、最常见的非门,其具有低原材料消耗、小体积、高灵活性与极容易建造等特点。
- 火把反相器的最大缺点就是当其传输时钟宽度小于3刻(即3刻高电平3刻低电平循环)的时钟信号(称为3刻时钟)时,火把会产生“燃尽”效果而暂时无法正常工作。一定随机时间间隔之后才会恢复正常,这样会造成难以预测的电路响应。
- 活塞反相器
- 极其简单,极其便捷。缺点:噪音极其大。
- 减法反相器
- 平面,静音
- 电路延迟:1刻
- 减法反相器能够响应2刻时钟,但无法响应更快的时钟——因为比较器本身的限制。
- 替代方案: 拉下的拉杆可以替换为任何永远激活的电源元件(例如红石火把、红石块);如果放置电源元件不方便,用装满的容器替代也是可以的。.
- 中继器的作用是确保输入信号比比较器的末端输入更强。如果输入信号强度已知,那么中继器可以在拉下的拉杆被能够产生相同信号强度的容器替换的前提下移除。你也可以在确保输出端连接的红石线长到足以将信号反相的前提下移除中继器。
- 瞬时反相器
- 瞬时
- 电路延迟:0
- 瞬时反相器是大型瞬时电路的基础部分。
- “地面版”具有最大的占地面积,但较矮小,而且能与其他平面电路相适应。“高版”占地面积与用料均最小,但输入和输出端的位置不甚理想。“长版”较大,但输入和输出端的位置方便与其他电路相接。
- “高版”的输出端也可以从台阶下面的方块引出,但这样的话只有输入的上边沿信号才能做到无延迟。
- 表现: 瞬时反相器有两个黏性活塞——一个用于切断输出,另一个用于移动红石块电源。
- 输入为假时,红石块激活输出端。输入为真时,红石块马上被移走,切断输出端信号(即立即对输入进行反相)。同时,红石中继器激活,但在其能激活输出端之前,另一个方块就会及时移动切断输出。
- 输入为真时,红石比较器尝试激活输出,但输出会被移来的方块切断。输出一被切断,方块缩回,马上使得信号通过(即立即对输入进行反相)。中继器只会在其熄灭之前激活输出端2刻,但这点时间已经足够让红石块回到原先位置接替中继器继续激活输出端。
- 替代方案: 将瞬时反相器作为大型电路的一部分时,可能需要移动输入输出端,此时,两个黏性活塞和红石中继器必须同时激活。“长版”让这三个部件可以通过充能一个方块同时激活,但其余瞬时反相器方案就需要玩家自己布线连接三个部件了。
- 除此之外,只要红石块以及其粘附的活塞能够被输入端无延迟激活,且能够在中继器之后2刻之内伸出激活输出端,红石块以及其粘附的活塞可以挪到任何合适的地方。
或门[]
A | 开 | 开 | 关 | 关 |
---|---|---|---|---|
B | 开 | 关 | 开 | 关 |
A或B | 开 | 开 | 开 | 关 |
或门(OR Gate)在逻辑学里又称为“选言”,运算方法是只要有一个输入信号为真,输出即为真;所有输入都为假时,输出才会为假。
或运算可以层叠,或门可以树状首尾自由组合,之间的顺序与层级不会影响最终的运算结果。
方案A是最简单的或门:仅仅是一个直接连接输出端和输入端的红石线。不过这也导致这个或门的输入变得很“暴露”,因此同一输入端只能被接在这一个或门上面。图示中的例子用了一个固体方块替代了红石线,这样就不会有这个问题了。
如果你想把输入用在其他地方,输入端必须隔离,或是像上面一样穿过一个方块,或是利用红石火把/中继器,这样就产生了方案B。其实这个方案就是一个输出被反相的或非门。
方案C用中继器隔离了输入端。可以在水平方向将输入端数量扩展到至多15个,比方案B快一刻。如果想扩展更多输入信号,就需要用额外的中继器加强了。然而,由于一个红石中继器需要三个红石粉来制作,故版本C需要较多的红石粉(还有石头)。
方案D1格宽的纵向设计,中继器用于隔离输入输出。本版本只能有两个输入,当然你可以通过层叠或门达到变相扩展输入端数量。
方案E利用了诸如倒置台阶与荧石块等透明方块的特性:他们铺设红石线时只能向上传导,而无法向下传导。本设计与C方案都具有相当强的可扩展性。
或非门[]
A | 开 | 开 | 关 | 关 |
---|---|---|---|---|
B | 开 | 关 | 开 | 关 |
A或非B | 关 | 关 | 关 | 开 |
或非门(NOR gate)即为或的反面,也就是只要有一个输入为真,输出即为假。当所有输入都为假时,才会输出真。
或非门可以由一个红石火把来实现,所以在Minecraft中算是非常基础的逻辑门。(单输入时为非门,无输入时为“是门”即电源)
一个火把很容易通过方案A那样实现三输入,而方案B通过长度加长实现了四输入。如果想实现更多输入端,可以像或门那样层叠,最后再经过一个非门。
与门[]
A | 开 | 开 | 关 | 关 |
---|---|---|---|---|
B | 开 | 关 | 开 | 关 |
A与B | 开 | 关 | 关 | 关 |
与门(AND gate)在逻辑学中又称为“且”,只有在所有输入都为真时,才会输出真。和或门类似,三输入与门可以自由层叠。
与门的典型应用是建造一个可以锁住的门,如果要开门,就需要同时按钮按下以及锁(通常是拉杆)打开的情况下激活按钮。
很多与门类似于“三态缓冲器”,输入端B就像一个开关,但它关闭后,输入端A就与电路其他部分断路了。不过与现实生活中的三态缓冲器不同的是,Minecraft里不可以驱动低电流。(请参考维基百科:三态逻辑获知更多信息)
与非门[]
A | 开 | 开 | 关 | 关 |
---|---|---|---|---|
B | 开 | 关 | 开 | 关 |
A与非B | 关 | 开 | 开 | 开 |
与非门(NAND gate)简单来说就是“不全是即真”,也就是与门的对立。在所有的输入都为真时,输出假。
“与非门”跟“或非门”类似,任选一个就可以构建出所有的逻辑门。
与非门也可以通过层叠与门,最后再取反相,来实现输入端扩展。
异或门[]
A | 开 | 开 | 关 | 关 |
---|---|---|---|---|
B | 开 | 关 | 开 | 关 |
A异或B | 关 | 开 | 开 | 关 |
异或门(XOR gate)为只要输入信号有不同时,就输出真,所有输入信号都相同时,才输出假。
异或门一般能满足在多地控制同一机械的需要。控制端(通常为拉杆)用异或门组合,切换任意一个控制端都会改变异或门的输出(类似于现实生活中控制同一个灯泡的两个开关——你可以用任意一个开关控制灯泡的亮暗)。
类似与门、或门,异或门也可以自由层叠。只不过输入端为1的数量为奇数时,最终输出才为1。
方案D很简洁,但只能用拉杆作为输入。加深的方块在另一个固体方块的顶层,同时被两个拉杆和一个红石火把附着。
方案F为纯红石火把方案中最常用的,但一些包括新元件的方案的性能比这个方案更好。方案H采用了活塞,响应速度更快,更节省空间。
除了火把和活塞之外,不同的中继器可以实现相对压缩与便宜的异或门方案。方案I依照可用空间任意选择输入端中继器的来向,下方也可以。方案J使用了便宜的透明方块。
Minecraft 1.5 红石比较器的引入使得异或门拥有了新的设计思路:“减法异或门”,平面,响应速度快,静音,建造容易。唯一局限是在生存模式里你需要花时间开采下界石英。
每个输入端与和其距离最近的比较器的侧面与尾部距离均相同,这样可以单个输入端无法使得和其距离最近的比较器输出信号,但能够使距离较远的那个比较器输出信号。因此,整个减法异或门当且仅当只有一个输入端激活时,输出端才有信号。
然而,这种情况必须保证原始输入信号强度完全相同(相差不超过1也可以),否则会出现一侧信号过强将另一侧压制的情况。在保证原始输入信号强度相同的前提下,你才可以使用“基础版”。否则就必须采取方法平衡两边的强度。常用的方法包括“中继版”与“反相版”。
减法异或门图示
同或门[]
A | 开 | 开 | 关 | 关 |
---|---|---|---|---|
B | 开 | 关 | 开 | 关 |
A同或B | 开 | 关 | 关 | 开 |
同或门(XNOR gate)在逻辑学里又称为“双条件”,或称为“当且仅当”(if and only if)。所有输入信号都相同时才输出真,只要有一个以上不相同时就输出假,也就是异或门的对立。
跟异或门类似,两个输入信号中的任何一个发生改变,输出信号都会发生改变。
在异或门的输出端或者其中一个输入端加非门,可以很方便的等效实现同或门。
方案A为纯火把设计。如果不需要外部输入端,朝后的两个火把可以用拉杆代替,即方案B。方案F较大,但逻辑思路清晰,方案I实际就是异或门方案H的非门改造产物。
蕴含门[]
B开 | B关 | |
---|---|---|
A开 | 输出 | 不输出 |
A关 | 输出 | 输出 |
蕴含门(IMPLIES Gate)在逻辑学里又称为“实质条件”,简单来说就是“若A则B”。
在A → B的所有四种结果中,只有在A为真,但B为假的状况下,蕴含门才会输出信号为假。其他状况蕴含门都输出为真。
如果1代表真,0代表假,蕴含门也可以理解为“A小于等于B”(A<=B)。
方案C和F在输出为真时需要2刻,输出为假时只需要1刻;方案E输出为真时需要1刻,输出为假时瞬时反应;其他的方案在输出为真时瞬时反应,输出为假时需要1刻。如果你必须同步输出周期,一般会用红石中继器来对“较快的”输入端延迟1个红石周期从而使输出同步(对于C和F而言就是输入端A,对于其他方案而言就是输入端B)。
方案E和F都是利用红石比较器的减法模式做成的蕴含门。如果想要使用E方案,就必须确保两个输入端输入的能量相同(不然会出现A和B都为真之后,蕴含门仍然输出能量的情况),否则就要想办法平衡两个输入端的能量,比如使用方案F。
参见[]
- 维基百科:逻辑门
- 教程/活塞电路
语言