泰拉瑞亞電路裝置有哪些技巧 泰拉瑞亞電路元件

游戲中電路裝置是游戲的特色之一,很多玩家不清楚這些電路裝置有哪些技巧,今天小編為大家?guī)硖├饋嗠娐费b置技巧匯總,希望能夠幫助各位玩家 。
電路裝置技巧
使用故障邏輯門建造觸發(fā)器
雖然有各種邏輯門可以用來執(zhí)行基本的邏輯操作,如與門、或門和非門,但是還有另一個邏輯設(shè)備可能被一些初學(xué)者忽略或低估:故障邏輯燈(故障邏輯門) 。
故障邏輯燈的原理相當簡單,將燈安放在任何邏輯門(與、或、非、與或、與非、或非)的頂部會改變它輸出信號的邏輯,故障邏輯門輸出信號的方式是概率性的,這個概率依故障邏輯門和故障邏輯燈之間的亮起的邏輯燈和總共的邏輯燈的數(shù)量比值而定 。當故障邏輯門和故障邏輯燈之間只有一個邏輯燈時,故障邏輯門就會有0%或100%的概率(也就是是和否)輸出信號 。
因為這個特性,故障燈門(從現(xiàn)在起我將這么稱呼它 , 其實就是一個故障邏輯門加一個故障邏輯燈組成的最基本的部件)充當一個晶體管(也可看做二極管),可以用來控制信號的傳輸方向(晶體管或二極管都是單向傳輸信號) 。
然而,故障燈門不僅可以用于簡單的晶體管,還可以用來建造觸發(fā)器 。
觸發(fā)器是一種能夠存儲狀態(tài)(值)的邏輯設(shè)備 。根據(jù)接受到的不同輸入,不同類型的觸發(fā)器狀態(tài)改變的也不同 。
我將向您展示的第一個觸發(fā)器是D觸發(fā)器(D即為data):
D觸發(fā)器會保存一個特定值并有兩個輸入端;第一個輸入端(紅線)是一個觸發(fā)器,它將觸發(fā)器的存儲值(綠線)設(shè)置為第二個輸入(藍線)的當前值 。這樣,您可以輕松地存儲信息以供之后使用 。
這種觸發(fā)器依靠故障邏輯燈門具有異或門的性質(zhì)來工作;兩個輸入端連接到同一個邏輯燈,只有當輸入的值(0和1)不同時,燈才會打開 。在這里 , 輸入和輸出線都連接到邏輯燈上 。當這些值不同時觸發(fā)器將導(dǎo)致輸出值變化并與輸入值相匹配 。
D觸發(fā)器很容易平鋪建造,這使得它可以用單個觸發(fā)端(信號輸入端)存儲大量信息:
使用故障邏輯門燈建造SR鎖存器
除D觸發(fā)器之外 , 另一個有用的觸發(fā)器裝置是SR鎖存器(用于置位-復(fù)位):
SR鎖存器的功能類似于D觸發(fā)器 , 但它沒有一個觸發(fā)器端和一個值輸入端,而是有兩個觸發(fā)器輸入端 。一個觸發(fā)器端(藍線)用來打開鎖存器 , 而另一個觸發(fā)器端(紅線)用來將其關(guān)閉 。這是有用的,它使設(shè)備在被激活后不能被關(guān)閉,除非拉動重置開關(guān) 。
與D觸發(fā)器一樣,SR鎖存器也很容易平鋪放置,允許你將一個重置開關(guān)連接到多個鎖存器上:
使用故障燈門進行移位(遞次電路)
在二進制中,移位是一種功能 , 它可以使一組數(shù)據(jù)中的每一個位都向左或向右移動 。例如 , 左移00011001一位會產(chǎn)生00110010 。注意,在每個數(shù)字的左邊多加0 。這是因為移位的結(jié)果可能會根據(jù)可用位而改變 。在本教程里,我將會在下面的示例中使用8位二進制數(shù)(也稱為一字節(jié)) 。
如果一個1在移動時從字節(jié)的任何一邊掉下來(進位),它就會被舍掉 。
在數(shù)學(xué)上講,如果不舍掉1,則向左移動一位會使該數(shù)字乘以2 。右移一位則是將它除以2,如果這個數(shù)字在右邊有一個1(在這種情況下這個數(shù)字是奇數(shù)),那么這個1被舍掉,結(jié)果被四舍五入,所以00000101(十進制數(shù)5)右移一位就是00000010(十進制數(shù)2) 。
這里有一個左移的例子:
當觸發(fā)器端(紅線)被激活時,每個開啟的故障燈門都會關(guān)閉自己的邏輯燈,同時打開其左側(cè)的邏輯門燈 。要創(chuàng)造一個正確的移位,只需把線接到另一端 。通過將最左邊的一個位連接到最右邊的一個位,從而使由最左邊掉下來的“1”不是消失,而是被發(fā)送到這個字節(jié)的右側(cè) 。這就是所謂的向左循環(huán)移位:
同理,也可由此建造向右循環(huán)移位的電路 。
使用累加器建造加法器和計數(shù)器
累加器是一個非常有用的裝置 。它可以存儲插入到其中的任何內(nèi)容的總和 。建造累加器要先從上升邊緣檢測器開始:
上升邊緣檢測器是一種裝置,當輸入端從關(guān)閉到開啟時輸出信號 。你也可以通過倒置邏輯燈來創(chuàng)建一個下降邊緣檢測器 , 它只在輸入端從打開到關(guān)閉時輸出脈沖 。如果你將一系列的下降邊緣檢測器并排放置并從右向左連接,你將得到一個累加器:
當線路被觸發(fā)時,累加器存儲的值以相應(yīng)位的2的冪值增加 。只需將最右邊的電線連接到觸發(fā)器上,就可以將累加器用作計數(shù)器 。您還可以同時觸發(fā)多條線路 , 以使累加器可以增加任意值 。注意,如果累加器內(nèi)的值超過11111111(最大值),則會發(fā)生溢出 , 導(dǎo)致其發(fā)生重置 。
通過倒置所有的邏輯燈(從而將它們轉(zhuǎn)換為上升邊緣檢測器) , 您可以反轉(zhuǎn)累加器 , 從而使插入到其中的數(shù)據(jù)被減去 。
疊加單一的組件以建造更復(fù)雜的裝置
在這之前,我們知道了如何建造各種可以在1bit(八個數(shù)位)的數(shù)位上運行的裝置,從D觸發(fā)器到移位器再到累加器 。現(xiàn)在是時候?qū)⑺鼈兎旁谝黄饋斫ㄔ旄晟频难b置了 。
這可以通過將裝置堆建在一個類似架子的結(jié)構(gòu)中,以一種非常緊湊的組件組裝方式來完成 。
例如,這里有一個D觸發(fā)器陣列和一個累加器連接在一起:
上面一行是D觸發(fā)器陣列,下面一行是累加器,擺放的石磚只是為了幫助連接電路 。
請注意,看我是如何使用單線傳輸特定bit的所有信號的 。我本可以用單獨一種顏色的電線來做D觸發(fā)器 , 而對累加器中的每一位使用另一種顏色的電線連接,但是將同一根電線連接到每一個與一個bit相連接的裝置上要容易得多,也更有整齊性 。
更換電線顏色也很重要,就像我對藍線和綠線所做的那樣,因為這樣可以讓兩個bit相互連接而不產(chǎn)生干擾 。
最后,注意一下如何使用單獨的一組紅線連接累加器中的D觸發(fā)器 。如果我沒有這樣做,那么來自D觸發(fā)器的信號將激活累加器中的下降邊緣(沿)觸發(fā)器 。
無論如何,這只是一個如何組合設(shè)備的基本例子 。在構(gòu)建更大的設(shè)備堆棧時,請記住我提到的規(guī)則(每比特一根垂直線、交替的電線顏色和單獨的觸發(fā)器線),因為我將在后面的教程中展示的大多數(shù)設(shè)備都將使用這些規(guī)則 。
使用比較器比較數(shù)值
比較器是將兩個數(shù)值作為輸入,并確定它們是相等的還是一個值大于另一個值的裝置(比較大小) 。
要建造一個二進制數(shù)值的比較器,需要考慮關(guān)于二進制數(shù)的兩個很明顯但是重要的事實: 1大于0;1在較高的地方(即左邊)的數(shù)值大于1在較低的地方 。
知道這些之后,您可以比較兩個二進制數(shù)字,方法是從左到右掃描它們,并找到第一個出現(xiàn)在同一位置的兩個位不匹配的情況 。
例如,00110110大于00110010 。
如果您查看每個數(shù)字中最左邊的位 , 然后一次向右移動一位,直到找到不匹配的位為止,你就會知道 , 結(jié)果是1的位 , 就必須是更大的數(shù)字 。
如果,在比較數(shù)字時,沒有匹配過一對不同的位,那么你就知道這兩個數(shù)字是相等的 。
下面是使用故障燈門實現(xiàn)此過程的方法:
這個比較器包含一個單比特比較(一行),它會觸發(fā)三個輸出端中的一個,從上到下的輸出端的情況分別是藍色=綠色、藍色>綠色和藍色<綠色 。
如果是單獨比較一個位,你可以看到藍線和綠線的位都連接到頂端的一對故障燈門 。如果位不同,這對門將向紅線發(fā)送信號,如果它們相同則向黃線發(fā)送信號,從而繼續(xù)下一位的比較 。
如果位不同,則紅線觸發(fā)一對僅由綠線控制的故障燈門 。如果綠線連接的位關(guān)閉,則“藍色>綠色”的輸出端將被觸發(fā) , 因為藍線連接的位必須打開 。但是,如果綠線連接的位打開,則觸發(fā)“藍色<綠色”的輸出端 。
使用Shift-Add算法來建造一個乘法器
現(xiàn)在你已經(jīng)知道了如何使用累加器執(zhí)行二進制加法,現(xiàn)在是使用累加器建造乘法器的時候了 。
在二進制中,乘法可以通過兩種方式完成 。要執(zhí)行X*Y,只需將X加進累加器Y次,也可以使用更有效的方法:Shift -Add 。Shift-Add類似于用手乘十進制數(shù)的長乘法方法 。在豎式乘法中(就是小學(xué)學(xué)的那個筆算多位數(shù)相乘的方法),把X乘以Y的每一位數(shù)字,然后把每一個結(jié)果相加在一起即為解(這里不需要多說) 。
類似地,使用Shift-Add,掃描Y中的每個位 , 對于每個數(shù)值為1的位,都會將X加到累加器中一次 。在每一步之后,左移X以便將其值增加到下一個位置 。
Terraria中的乘法器(示例)如下:
正如你所看到的,這是我向你展示的第一個需要一個半磚驅(qū)動來操作的裝置 。這是因為Shift-Add方法需要對每一位都執(zhí)行一次運算,在這種情況下需要執(zhí)行8次 。
從上到下的第一行表示Y值,第二行表示X值,底部的一行用來保存結(jié)果 。當左下角開關(guān)被激活時,半磚驅(qū)動開啟并激活產(chǎn)生一次移位,并在每個tick中執(zhí)行一次操作 。在每次操作中 , 通過右移位從Y值中讀取單個位 。如果來自Y的一個位的值為1 , 則黃線觸發(fā)一組故障燈門 , 將X的當前值發(fā)送到累加器 。然后,X值被左移 。請注意,在Y值的右移和X值的左移之間放置了一個額外的故障燈門 。這是為了確保X值在被左移之前會被發(fā)送到累加器 。然后,半磚驅(qū)動重復(fù)這8tick的整個過程,直至完成乘法運算 。
使用與門建造多路復(fù)用器
在數(shù)字電路中,多路復(fù)用器是一種使用二進制輸入端從一個長值中選擇單個位的設(shè)備 。
例如,可以使用多路復(fù)用器從一系列傳送器中選擇單個傳送器以建造傳送陣 。多路復(fù)用器也可用于將較小的二進制數(shù)轉(zhuǎn)換為十進制單數(shù),我將在以后的教程中展示 。這是一個多路復(fù)用器,它使用3位的輸入端在8個不同的輸出端之間進行選擇:
當前,二進制輸入端的值為0,所以使最底端的火把處于亮起狀態(tài) 。通過輸入一個二進制數(shù),其相應(yīng)的火把將被多路復(fù)用器觸發(fā) 。多路復(fù)用器使用有分叉結(jié)構(gòu)的與門裝置工作 。
每兩個相鄰的垂直的與門,其第一個與門最上面的邏輯燈為關(guān)閉狀態(tài),第二個與門的邏輯燈為開啟狀態(tài)(可見下圖) 。拉動這相應(yīng)兩個與門所屬的一列的開關(guān)會使這兩個燈交換狀態(tài) 。每個與門也從其左邊的列中接收一個輸入信號 。這樣,你就可以控制信號從左到右的傳輸 。
你可以很容易地復(fù)制和粘貼一個復(fù)用器 , 使它能控制的位數(shù)翻倍并且增加輸入端的個數(shù) 。
【泰拉瑞亞電路裝置有哪些技巧 泰拉瑞亞電路元件】
