為什麼在構建 OR
門時需要使用晶體管?僅通過連接兩個輸入並讀取輸出,我們就完全不需要晶體管就能夠達到相同的結果嗎?
為什麼在構建 OR
門時需要使用晶體管?僅通過連接兩個輸入並讀取輸出,我們就完全不需要晶體管就能夠達到相同的結果嗎?
您描述的內容稱為有線或連接。在某些邏輯系列中,特別是在ECL(發射極耦合邏輯)中,這是可能的,但在最常見的系列(TTL和CMOS)中,這是不可能的。
在CMOS中這是不可能的,因為當CMOS輸出為低電平時,它會導致從輸出引腳到芯片到地的短路。當它為高電平時,它會導致從VDD到芯片到輸出引腳之間的短路。
因此,如果將兩個CMOS輸出連接在一起,將一個輸出高電平連接在一起,而將另一個輸出低電平連接在一起,則VDD與地之間的短路會非常短,這會吸收大電流,並且可能會使兩個中的一個或另一個過熱涉及籌碼。
對於TTL,也存在類似的問題,但是輸出引腳到VDD或接地的“短路”並不像CMOS短路那麼近。
有一種變體輸出樣式,對於CMOS,稱為開漏,對於TTL,稱為開集電極,允許有線與連接,而不是有線或。這些輸出被設計為僅能夠將電流吸收到地,而當它們名義上處於高狀態時不能夠產生任何輸出電流。這些通常與外部上拉電阻一起使用,以便在需要時輸出電壓實際上將達到“高”電壓電平。
注意:如果使用低電平有效邏輯(低電壓表示邏輯1,高電壓表示邏輯0),則集電極開路或漏極開路可用於接線或。
如果僅連接電線,則(很有可能)將0和1組合在一起。由於0是gnd,而1是5V(取決於芯片,但這是標準),因此您需要通過電線將5V和gnd連接在一起。術語是短路!
您可以將二極管用於簡單的“或”門。甚至電阻器。當您將此門連接到其他門和其他電路時,就會出現問題。您可以反過來用2個二極管構建一個AND門。但是,如果您嘗試將它們中的許多連接在一起,則最終會得到一個巨大的電路,該電路不能用作單獨的小零件,而可以用作一個大零件。不在您的簡單門計劃中的連接可能在現實生活中突然出現,弄亂了您想要發生的事情。
晶體管使您可以將輸入與輸出分開。晶體管的輸出不能反饋並影響其輸入。中繼將是另一種選擇,儘管速度較慢。由於開關不會影響電磁體。
早期的邏輯是RTL或DTL,電阻-晶體管邏輯或二極管-晶體管邏輯。首先使用電阻器,然後使用後來的二極管來形成門,然後使用晶體管來緩衝結果,因此您使用的下一個門不會通過該門反饋給輸入。
現在,由於芯片上的晶體管實際上是免費的,因此從財務上來說,我們擁有所有被適當緩沖和隔離的奢侈品。通常這就是我們想要的。 TTL邏輯!
請考慮如果一個輸入為高而一個輸入為低,然後連接兩個輸入會發生什麼。這取決於您如何構建邏輯門。
如果您的邏輯門設計成確實將高電平拉高,將低電平真正拉低(CMOS),則這是短路,並且會炸毀。
如果您的邏輯門設計為高電平“弱”或高電阻(例如NMOS),則輸出將為低,但其他輸入(應為高)也將被強制為低即使它應該很高,這也會對使用相同輸入的其他邏輯門產生連鎖反應。
有一種模擬方法:
將任意數量的輸入(假定為0或5伏)與電阻組合。
如果結果電壓為0,則全部關閉。
如果結果電壓為5,則所有電壓都接通。
中間電壓表示一些接通,一些斷開。
示例:如果有4個輸入,則2.5伏表示2個打開,2個關閉。
結果== 0:也沒有門
結果== 5:和gate
結果!= 0:或門
結果!= 5:“與非”門
輸入不需要晶體管,僅需要輸出即可檢查電壓並恢復0或5伏邏輯結果。
這可以用於具有非線性輸出功能的模擬神經網絡節點,該節點具有“軟”結果,該結果可能並非完全正確或錯誤。
經過深思:
由於輸入變化時必須跟隨電阻的電容充電或放電,因此以這種方式使用的電阻會降低邏輯速度。
另外,使用晶體管可以大大降低功耗。以這種方式使用的電阻器始終會在混合輸入狀態的情況下消耗功率。使用晶體管時,功耗可以大致除以晶體管的增益。
使用某些邏輯元件(所有車門彎頭都固定在同一盞燈上),這是可行的,但由於CMOS門由P和N溝道FET晶體管構成,因此無法實現,因此它們需要定義的高低壓輸入提供輸出,輸入不能浮動。將CMOS輸出連接在一起無法正常工作。