邏輯門:從非門到異或門全解析)
邏輯門是數(shù)字電路的積木MOS管則是造積木的磚頭。這篇文章想做的事情很直白不用任何現(xiàn)成邏輯芯片只靠MOS管在面包板上手搓出7種基礎(chǔ)邏輯門每一條都配上電路圖和真值表。作為過來人我可以負(fù)責(zé)任地說當(dāng)我第一次親手用兩個MOS管拼出非門再接上LED看到輸出翻轉(zhuǎn)時“芯片內(nèi)部到底是什么”的疑惑瞬間消散了一大半。這篇文章適合學(xué)數(shù)字電路有點(diǎn)犯迷糊的同學(xué)也適合所有想親自驗(yàn)證CMOS原理的電子愛好者。1. 動手之前為什么我堅(jiān)持用MOS管手搓邏輯門1.1 用現(xiàn)成芯片不香嗎香但學(xué)不到真東西直接買74HC00里面集成了四個與非門插上就能用從實(shí)用角度看當(dāng)然更高效。但問題在于芯片是個黑盒子你只知道引腳功能不知道內(nèi)部那層硅片上到底發(fā)生了什么。邏輯門是數(shù)字電路的磚MOS管是造磚的原料如果你想真正搞懂“磚頭”是怎么從“泥巴”里燒出來的就得從MOS管開始。我自己剛學(xué)數(shù)字電路時也有個誤區(qū)總覺得真值表背下來就行。直到某次做項(xiàng)目被問到“CMOS與非門里面幾個管子、怎么接的”我才發(fā)現(xiàn)單純背真值表根本不夠。從那以后我給自己定了個規(guī)矩凡是學(xué)過的邏輯門都必須能在面包板上用分立MOS管搭出來眼見為實(shí)。這次一口氣把七個基礎(chǔ)門全搭了一遍收獲遠(yuǎn)超預(yù)期。當(dāng)然用分立管子搭邏輯門并不是為了替代芯片。它的價值在兩點(diǎn)一是原理驗(yàn)證CMOS數(shù)字IC內(nèi)部用的就是這套互補(bǔ)開關(guān)網(wǎng)絡(luò)搭一次勝過背十遍書二是故障分析當(dāng)你親手搭的電路出了問題你去查線、測電壓、判斷管子好壞的過程比任何仿真軟件都能鍛煉實(shí)戰(zhàn)能力。所以我建議把它當(dāng)成一個“原理體檢項(xiàng)目”來做而不是追求實(shí)用替代。1.2 材料清單與MOS管選型動手之前先把器件選對。我用的是2N7000作NMOS、BS250作PMOS。選這兩個型號主要有幾個考慮第一它們是邏輯電平MOS管2N7000的開啟電壓Vth典型值在1V到2V之間用5V電壓就能可靠開啟如果換成某些工業(yè)級大功率MOS管Vth可能就要4V以上3.3V電壓根本驅(qū)動不了實(shí)驗(yàn)會卡在第一步。第二這兩款的導(dǎo)通電阻都在幾歐到十幾歐量級帶個LED負(fù)載毫無壓力不會出現(xiàn)輸出被負(fù)載拉垮的問題。第三都是To-92直插封裝三只腳間距標(biāo)準(zhǔn)插面包板非常順滑。BS250還要多說一句它是P溝道很多人第一次用P溝道容易犯迷糊導(dǎo)通條件是G極比S極電壓低超過閾值也就是Vgs為負(fù)。它的漏極電流方向和NMOS相反S極通常接VDD。如果你手頭沒有BS250也可以用BSS92、TP0610之類的P溝道邏輯電平管參數(shù)接近就能用。材料清單如下表這些都能在常見電子元件店鋪一站式買到總成本不到二十塊。器件/工具型號或規(guī)格數(shù)量用途NMOS管2N7000至少10只構(gòu)成下拉網(wǎng)絡(luò)PMOS管BS250或BSS92至少10只構(gòu)成上拉網(wǎng)絡(luò)面包板830孔1塊搭建平臺面包板電源模塊5V輸出1個給電路供電撥碼開關(guān)2位以上2個模擬輸入高低電平LED紅色或綠色8個指示輸入輸出狀態(tài)電阻330Ω到1kΩ10個LED限流跳線公對公若干連線萬用表普通數(shù)字萬用表即可1塊測量驗(yàn)證工具方面萬用表必須有至少要用直流電壓擋和通斷擋示波器有的話更好能直觀看到開關(guān)波形沒有也不影響實(shí)驗(yàn)用萬用表和LED完全能驗(yàn)證邏輯功能。2. MOS管快速掃盲三個極、兩個條件、一個開關(guān)模型2.1 三個極到底怎么認(rèn)MOS管有柵極G、漏極D、源極S三個極。柵極是電壓控制端它和下面的導(dǎo)電溝道之間隔著一層極薄的氧化硅絕緣層所以柵極幾乎不取電流這也是MOS管輸入阻抗極高的原因。漏極和源極在物理結(jié)構(gòu)上往往是對稱的實(shí)際使用時靠外加電壓極性來判斷哪個是S哪個是D。以2N7000為例把平面對著自己、字符面朝前從左到右依次是S、D、G但不同型號排布不一定相同所以拿到管子第一步永遠(yuǎn)是查數(shù)據(jù)手冊不要憑記憶。對于NMOS電路里通常把S接GNDD通過負(fù)載接正電源當(dāng)G比S高出的電壓Vgs超過閾值Vth時N型導(dǎo)電溝道形成D和S之間像開關(guān)一樣閉合。對于PMOS電路里通常把S接VDDD通過負(fù)載接GND當(dāng)G比S低出的電壓達(dá)到閾值也就是Vgs小于負(fù)的Vth時P型導(dǎo)電溝道形成開關(guān)閉合。記住這個“NMOS低端接地、PMOS高端接電源”的接法后面所有電路圖都不會亂。2.2 為什么邏輯門必須成對出現(xiàn)如果只用一個NMOS當(dāng)開關(guān)能不能做一個簡單的反相器能但效果很差。設(shè)想A接NMOS的G輸出從D取S接地那A為高電平時NMOS導(dǎo)通輸出被拉到0V沒問題但A為低電平時NMOS關(guān)斷輸出懸空既不是高也不是低。要讓它輸出高還得在輸出和VDD之間接一個大電阻做上拉可上拉電阻會跟NMOS的導(dǎo)通電阻構(gòu)成分壓輸出低電平永遠(yuǎn)到不了0V而且功耗可觀。這就是互補(bǔ)CMOS結(jié)構(gòu)出現(xiàn)的根本原因每個邏輯門都同時配置PMOS上拉網(wǎng)絡(luò)PUN和NMOS下拉網(wǎng)絡(luò)PDN輸入信號同時控制兩者保證任意時刻只有一個網(wǎng)絡(luò)導(dǎo)通。輸出為高時PMOS網(wǎng)絡(luò)導(dǎo)通把輸出拉到VDD輸出為低時NMOS網(wǎng)絡(luò)導(dǎo)通把輸出拉到GND輸出永遠(yuǎn)不會懸空也沒有持續(xù)的直通電流。靜態(tài)功耗幾乎為零輸出擺幅滿電源軌邏輯電平清晰可靠這就是為什么現(xiàn)代數(shù)字芯片絕大多數(shù)都采用CMOS工藝。2.3 搭建邏輯門最容易踩的三個坑第一個坑是柵極懸空。MOS管柵極輸入阻抗極高懸空時一點(diǎn)點(diǎn)電荷就能讓它不確定導(dǎo)通還是關(guān)斷邏輯功能完全不可控甚至?xí)舷鹿芡瑫r導(dǎo)通造成短路。實(shí)驗(yàn)中所有輸入都必須明確接高或接低這句話值得寫三遍。第二個坑是管腳認(rèn)錯。前面說過不同型號的管腳排布不同特別是P溝道的BS250管腳定義跟2N7000不一樣拿萬用表二極管擋測一下G和其他腳之間發(fā)現(xiàn)有電壓讀數(shù)的那只腳就是G然后再區(qū)分D和S最穩(wěn)。第三個坑是拿模擬思維看數(shù)字。MOS管本質(zhì)上是個電壓控制的可變電阻導(dǎo)通時電阻不為零關(guān)斷時也有微弱的漏電流。在高速開關(guān)里這些參數(shù)影響很大但在我們這種低速邏輯門實(shí)驗(yàn)中只要管子工作在“充分導(dǎo)通”或“完全關(guān)斷”兩個狀態(tài)這些非理想效應(yīng)幾乎可以忽略。這也是為什么實(shí)驗(yàn)電壓要選在5V而不是1.8V電壓越高邏輯電平裕量越大越不容易出問題。3. 七個邏輯門電路圖與真值表3.1 非門NOT最簡結(jié)構(gòu)但足以說明一切非門是標(biāo)準(zhǔn)CMOS邏輯門的基礎(chǔ)架構(gòu)整個結(jié)構(gòu)只有兩只管子上面的PMOS接VDD下面的NMOS接GND輸入A同時接到兩個管的柵極輸出Y從兩只管子中間的節(jié)點(diǎn)取出來。邏輯功能是一句話輸出跟輸入反相輸入0輸出1輸入1輸出0。VDD │ ┌───┴───┐ │ PMOS │ └───┬───┘ │ A ───┤ ├────── Y A ───┤ │ ┌───┴───┐ │ NMOS │ └───┬───┘ │ GND工作過程分成兩半來看。當(dāng)A為0V時NMOS的Vgs0V低于閾值關(guān)斷PMOS的S接VDDG接0VVgs-5V滿足導(dǎo)通條件輸出Y被PMOS拉到接近VDDY1。反過來A為5V時NMOS導(dǎo)通把輸出拉到GNDPMOS的Vgs0V關(guān)斷Y0。兩只管子一個開一個關(guān)輸出電平永遠(yuǎn)不會懸空。真值表也很簡單AY0110這里我建議搭完以后把萬用表紅表筆放在Y節(jié)點(diǎn)撥動輸入開關(guān)看電壓是不是在5V和0V之間干凈地跳變。如果出現(xiàn)中間電壓比如2.5V說明很可能兩只管子同時導(dǎo)通了要檢查輸入是不是懸空。3.2 與非門NAND串并聯(lián)結(jié)構(gòu)的第一次交鋒與非門在邏輯上就是“先與后非”A和B都為1時輸出0其它情況輸出1。它在CMOS里的接法是上面兩只PMOS并聯(lián)下面兩只NMOS串聯(lián)。輸入A控制P1和N1輸入B控制P2和N2。VDD ──┬── P1(S) ── P1(D) ──┐ │ ├── Y └── P2(S) ── P2(D) ──┘ A ── P1(G), N1(G) B ── P2(G), N2(G) Y ── N1(D) N1(S) ── N2(D) N2(S) ── GND控制關(guān)系要順著導(dǎo)通路徑梳理。當(dāng)A和B都為高時N1和N2都導(dǎo)通NMOS串聯(lián)路徑形成完整通路把Y拉到GND同時P1和P2的Vgs都是0V都關(guān)斷所以輸出為0。只要A、B中有一個為低對應(yīng)的那個NMOS就關(guān)斷串聯(lián)通路斷開而對應(yīng)PMOS導(dǎo)通輸出被拉到VDDY1。ABY001011101110實(shí)際搭建時NMOS串聯(lián)那部分最容易接錯。N1的源極S不是直接接地而是接N2的漏極DN2的源極S才接地。很多人第一次搭會把兩個NMOS都直接接地結(jié)果不管輸入怎么變輸出都是0這個坑我踩過后來養(yǎng)成習(xí)慣搭串聯(lián)結(jié)構(gòu)時先在紙上把D和S的級聯(lián)路徑畫清楚再上板子。3.3 或非門NOR把串并聯(lián)反過來就是另一番天地或非門是“先或后非”A和B都為0時輸出1其它情況輸出0。CMOS結(jié)構(gòu)跟前一個正好鏡像上面兩只PMOS串聯(lián)下面兩只NMOS并聯(lián)。VDD ── P1(S) ── P1(D) ── P2(S) ── P2(D) ── Y A ── P1(G), N1(G) B ── P2(G), N2(G) Y ── N1(D) Y ── N2(D) N1(S) ── GND N2(S) ── GND當(dāng)A和B都為低時N1和N2都關(guān)斷NMOS并聯(lián)網(wǎng)絡(luò)不起作用P1和P2都導(dǎo)通PMOS串聯(lián)路徑從VDD到Y(jié)完全接通輸出高電平。只要任意一個輸入為高對應(yīng)的NMOS就導(dǎo)通把Y拉到GND同時對應(yīng)PMOS關(guān)斷串聯(lián)路徑斷開輸出低。ABY001010100110與非門和或非門搭完之后可以放在一起對比看一個的關(guān)鍵在下拉串聯(lián)一個的關(guān)鍵在上拉串聯(lián)。你親手搭過一次就能明白為什么CMOS電路設(shè)計里串聯(lián)管子越多速度越慢因?yàn)榈刃щ娮枋钳B加的。這也是進(jìn)階學(xué)習(xí)時理解門延遲的重要起點(diǎn)。3.4 與門AND和或門OR組合出來的基礎(chǔ)門前面已經(jīng)搭出NAND和NOR那AND和OR就變得非常簡單在它們輸出端再接一個非門就行。與非門后面接非門得到與門或非門后面接非門得到或門。從電路上看就是一個三級的邏輯網(wǎng)絡(luò)。以與門為例輸入A、B先進(jìn)入與非門得到中間信號SNAND(A,B)S再進(jìn)入非門最終輸出YNOT(NAND(A,B))A·B。因?yàn)榉情T的輸入阻抗高、輸出阻抗低還順便起到隔離和整形的作用所以這種組合方式在實(shí)際電路里很常見。ABANDOR0000010110011111搭建時有一個很實(shí)用的做法把前面搭好的與非門模塊和或非門模塊當(dāng)作“半成品”不要拆掉直接在輸出端再接一套非門。這樣一方面驗(yàn)證了邏輯門的級聯(lián)思想另一方面也為后面異或門用多個與非門拼接打下基礎(chǔ)。3.5 異或門XOR最復(fù)雜也最有意思的一個異或門的邏輯是“相同為0不同為1”也就是只有A和B不相等時輸出才為1。它是七個門里唯一不能直接用串并聯(lián)結(jié)構(gòu)獨(dú)立完成的基礎(chǔ)門需要多級組合來實(shí)現(xiàn)。適合初學(xué)者的方案是用四個與非門拼出來邏輯表達(dá)式是Y(A NAND (A NAND B)) NAND (B NAND (A NAND B))搭建思路是先用一個與非門同時接收A、B產(chǎn)出一個中間信號SNAND(A,B)然后把A和S送進(jìn)第二個與非門B和S送進(jìn)第三個與非門最后把這兩個門的輸出再接進(jìn)第四個與非門得到的就是XOR。整個過程需要16個MOS管數(shù)量多但路徑清晰很適合驗(yàn)證邏輯。如果管子夠用還有更省的傳輸門方案只需要8只管子先用一個反相器把A變成A再用一個反相器把B變成B然后通過兩個傳輸門做二選一。傳輸門本質(zhì)上是一個NMOS加一個PMOS并聯(lián)靠控制信號的高低壓來通斷信號。當(dāng)A0時送入B的信號通過第一個傳輸門到達(dá)輸出當(dāng)A1時送入B的信號通過第二個傳輸門到達(dá)輸出。這不就實(shí)現(xiàn)了Y在A0時等于B、A1時等于B嗎正好就是異或邏輯。ABY000011101110我建議第一次嘗試時用四個與非門方案因?yàn)樗玫降亩际悄闱懊嬉呀?jīng)驗(yàn)證過的模塊好排查問題。傳輸門方案等邏輯驗(yàn)證通過后再玩理解一下雙向開關(guān)的用法。3.6 同或門XNOR異或門的“反向?qū)\生”同或門的邏輯是“相同為1不同為0”正好是異或門的反相。實(shí)現(xiàn)方式就是在異或門輸出端再接一個非門把XOR的輸出再翻轉(zhuǎn)一次。如果你已經(jīng)搭好異或門那這個就屬于白送的功能。ABY001010100111這里有一個值得思考的細(xì)節(jié)從真值表看同或門就是異或門取反但在CMOS集成電路里設(shè)計者通常會直接在內(nèi)部搭一個緊湊的XNOR結(jié)構(gòu)而不是先做XOR再接反相器因?yàn)檫@樣能省管子、省面積。你在面包板上用分立元件做“XOR加NOT”理解的是邏輯關(guān)系芯片內(nèi)部優(yōu)化理解的是工程權(quán)衡。兩個層面都有價值。七個門全部搭完之后把真值表合在一起看會發(fā)現(xiàn)門與門之間存在非常清晰的規(guī)律與門取反就是與非門或門取反就是或非門異或門取反就是同或門。數(shù)字電路的學(xué)習(xí)本質(zhì)上就是建立這張表的過程有了表再復(fù)雜的組合邏輯也能拆解成這些基本單元。4. 實(shí)操實(shí)錄從面包板到第一個穩(wěn)定輸出4.1 第一步先搭非門建立信心也建立標(biāo)準(zhǔn)我的建議是永遠(yuǎn)從非門開始因?yàn)樗挥袃芍还茏游宸昼姼愣▍s能把電源、輸入、輸出、測量這四條線全部走通。上電之前先把VDD和GND兩根電源軌檢查一遍萬用表通斷擋確認(rèn)沒有短路然后用跳線把兩個撥碼開關(guān)的一端分別接VDD另一端接GND中間抽頭作為輸入信號A。這樣做的好處是輸入高低電平非常明確不會出現(xiàn)懸空。接著把2N7000插到面包板中間G接輸入AS接GNDD接輸出節(jié)點(diǎn)再把BS250的S接VDDG也接輸入AD接同一個輸出節(jié)點(diǎn)。輸出端接一個LED到GND串聯(lián)一個330Ω到1kΩ的限流電阻。上電以后撥動開關(guān)輸入低電平時LED亮輸入高電平時LED滅非門邏輯就驗(yàn)證通過了。測量的時候有個小技巧不要只量LED亮不亮要用萬用表量一下輸出節(jié)點(diǎn)的實(shí)際電壓。非門輸出高時應(yīng)該接近5V輸出低時接近0V。如果高電平只有3.8V說明PMOS沒有完全導(dǎo)通或者電源壓降太大如果低電平有1V以上說明NMOS導(dǎo)通電阻偏大或者地線接觸不良。用數(shù)據(jù)說話比看燈亮靠譜得多。4.2 第二步拆解與非門和或非門的搭建差異非門驗(yàn)證通過后開始搭與非門。四個管子在面包板上的布局建議是兩個PMOS放在最上面一行緊挨VDD軌兩個NMOS放在下面緊挨GND軌。輸入A和B分別從左右兩側(cè)送進(jìn)來這樣導(dǎo)線交叉最少不容易短路。NMOS串聯(lián)部分按前面畫的路徑來第一個NMOS的D接輸出節(jié)點(diǎn)YS接到第二個NMOS的D第二個NMOS的S接GND。PMOS并聯(lián)部分兩個PMOS的S都接VDDD都接同一個輸出節(jié)點(diǎn)Y。A同時接P1的G和N1的GB同時接P2的G和N2的G。接線時我習(xí)慣用不同顏色的跳線區(qū)分紅色接電源黑色接地黃色接輸入藍(lán)色接輸出這樣排查起來能省一半時間?;蚍情T的接法和與非門剛好反過來PMOS串聯(lián)NMOS并聯(lián)。搭的時候不要想著“把與非門的圖翻轉(zhuǎn)一下就行”建議重新對著電路圖一根一根接因?yàn)槊姘宓奈锢聿季植豢赡苤苯隅R像。我踩過的坑是搭完或非門后忘記把PMOS串聯(lián)路徑的中間節(jié)點(diǎn)接對結(jié)果輸出永遠(yuǎn)高電平。后來習(xí)慣是每接一根線就在電路圖上劃掉一根保證圖實(shí)一一對應(yīng)。4.3 第三步異或門的兩種搭法與實(shí)測感受異或門用四個與非門方案時最好先把前面搭好的單個與非門當(dāng)作“積木塊”使用。如果面包板面積足夠就保留四個獨(dú)立的與非門區(qū)域每個區(qū)域四只管然后按邏輯表達(dá)式把中間連線接好。連線順序建議從輸入端開始先給兩個原始輸入各接一個與非門再把兩個中間信號分別接到新的與非門上最后把兩個結(jié)果匯入第四個與非門。實(shí)測時重點(diǎn)驗(yàn)證兩組最容易出錯的組合A0、B1時Y應(yīng)為1A1、B0時Y也應(yīng)為1。這兩組需要兩級以上的門同時翻轉(zhuǎn)如果出現(xiàn)輸出不定或者電平偏弱多半是中間某個門的NMOS下拉和PMOS上拉動作不同步。這時候不要急著改接線先用萬用表量中間節(jié)點(diǎn)電壓判斷是哪一級出了問題。傳輸門方案我后來也試了一次搭建更清爽兩個反相器加兩個傳輸門總共八只管。傳輸門的關(guān)鍵是NMOS和PMOS的S和D要相互聯(lián)通一個管的S接另一個管的D形成雙向通路控制信號來接?xùn)艠O。雖然它比四與非門方案省管子但對初學(xué)者來說判斷“什么時候用A控制、什么時候用A控制”還是有點(diǎn)繞不如先搭四與非門來得踏實(shí)。4.4 用LED和萬用表做完整功能驗(yàn)證所有門都搭完后我習(xí)慣做一個統(tǒng)一的驗(yàn)證流程先撥動輸入開關(guān)組合出真值表里的每一種狀態(tài)觀察對應(yīng)LED亮滅再拿萬用表確認(rèn)輸出電平。輸入狀態(tài)的組合順序建議按00、01、10、11來也就是先讓A從0變1再讓B從0變1這樣能順便觀察前一級變化對后一級的影響。如果手頭有雙通道示波器可以把A接到CH1輸出Y接到CH2把A的輸入改成一個1Hz左右的方波信號源另一路B用開關(guān)設(shè)定高或低。這樣能看到輸出波形的翻轉(zhuǎn)沿能直觀理解門的傳播延遲。沒有示波器也不用糾結(jié)LED加萬用表足夠驗(yàn)證所有邏輯正確性。這里再強(qiáng)調(diào)一遍實(shí)驗(yàn)全程不要讓任何MOS管的柵極懸空。撥碼開關(guān)撥到中間位置其實(shí)也算一種懸空狀態(tài)所以最好用那種帶明確高/低檔位的開關(guān)或者干脆用跳線帽去插VDD或GND確定性更強(qiáng)。5. 常見問題與排查技巧實(shí)錄5.1 故障排查速查表搭建過程中我整理了遇到過的問題和對應(yīng)的排查思路整理成一張速查表希望你用不上但收藏好?,F(xiàn)象可能原因排查與解決輸出始終為高下拉NMOS不導(dǎo)通檢查NMOS的G是否接對輸入S是否真的接地用萬用表二極管擋確認(rèn)管子類型輸出始終為低上拉PMOS不導(dǎo)通檢查PMOS的G是否接對輸入S是否接VDD確認(rèn)是P溝道管而不是N溝道輸出在2V到3V之間上下管同時導(dǎo)通或輸入懸空檢查輸入是否懸空測量兩管Vgs是否都滿足導(dǎo)通條件輸入高時LED暗NMOS導(dǎo)通電阻偏大Vth過高的管子不適合5V邏輯換2N7000等邏輯電平管管子燙手VDD到GND直通立刻斷電檢查上下網(wǎng)絡(luò)是否同時導(dǎo)通排除接線短路邏輯偶發(fā)錯亂電源去耦不充分在VDD和GND軌之間加0.1uF陶瓷電容檢查面包板電源軌接觸某只管子換上去就不工作靜電擊穿或腳位判斷錯換新管子前先測G極不要在通電狀態(tài)下插拔管子5.2 靜電防護(hù)和器件保護(hù)MOS管柵極的氧化層非常薄靜電電壓上千伏就能把它擊穿這是實(shí)際工作中常見的情況。雖然2N7000和BS250這類小功率管內(nèi)部通常集成了保護(hù)二極管但實(shí)驗(yàn)時還是要養(yǎng)成好習(xí)慣每次拿起管子之前先摸一下水管或接地金屬把人體靜電放掉管子不從包裝里一次性全倒出來用一只拿一只焊接或者插拔時給烙鐵接好地線。還有一種情況要特別注意禁止在電路通電的情況下插拔MOS管。一瞬間的接觸抖動可能導(dǎo)致柵極懸空輸出狀態(tài)不可控甚至造成直通短路。穩(wěn)妥的做法是每次改電路前先關(guān)掉電源把輸入都撥到明確的低電平再接好線、檢查無誤后重新上電。5.3 進(jìn)階現(xiàn)象米勒效應(yīng)、寄生電容和柵極電阻如果只用LED和開關(guān)做低速驗(yàn)證你幾乎感覺不到MOS管開關(guān)的速度限制。但只要換成幾十kHz以上的方波信號立刻能看到輸出波形變得圓潤、有延遲這就是柵極寄生電容和米勒效應(yīng)在起作用。柵極與漏極之間有個很小的寄生電容Cgd開關(guān)瞬間輸出端電壓變化會通過這個電容反饋回柵極產(chǎn)生一個“米勒平臺”延長開關(guān)時間。很多MOS管驅(qū)動電路里專門在柵極串一個小電阻來抑制這個效應(yīng)。在邏輯門實(shí)驗(yàn)里這個現(xiàn)象不需要刻意解決但理解它有實(shí)際意義為什么單片機(jī)不能直接驅(qū)動大功率MOS管為什么驅(qū)動芯片都強(qiáng)調(diào)峰值電流本質(zhì)都是要在極短時間里給柵極電容充放電。你把邏輯門搭到能工作只是第一步如果能用示波器觀察到開關(guān)沿的斜率再對比加不加?xùn)艠O電阻的差異那這趟實(shí)驗(yàn)的價值就直接翻倍了。6. 再往前走一步七個門之外還能做什么七個基本門全部搭完后可以繼續(xù)挑戰(zhàn)幾個組合邏輯模塊。比如用四個與非門做一個半加器A和B相加S輸出異或結(jié)果C輸出進(jìn)位這正好用到我們搭過的異或門和與門真值表也現(xiàn)成只有A和B都為1時進(jìn)位C才為1。這個實(shí)驗(yàn)?zāi)茏屇阒庇^看到“運(yùn)算器”的最基礎(chǔ)單元不是魔法就是MOS管的開關(guān)網(wǎng)絡(luò)組合而已。還可以嘗試用兩個與非門搭一個RS鎖存器這是最基礎(chǔ)的時序邏輯單元。把與非門的輸出交叉反饋到另一個門的輸入你會發(fā)現(xiàn)電路開始具備“記憶”能力哪怕把輸入斷開輸出狀態(tài)也能保持。這一下就跨出了組合邏輯的范疇進(jìn)入時序邏輯的大門而這一切依然只需要前面這四只管子。我個人在這套實(shí)驗(yàn)里最深的體會是數(shù)字電路的學(xué)習(xí)如果只停留在真值表和邏輯表達(dá)式層面總有點(diǎn)隔靴搔癢。當(dāng)你親手用MOS管把非門、與非門、異或門一層一層搭起來之后再看任何芯片的數(shù)據(jù)手冊、任何復(fù)雜的數(shù)字系統(tǒng)框圖腦子里會自動浮現(xiàn)出管子導(dǎo)通關(guān)斷的畫面。這種感覺很難用文字描述但一旦有了就很難再忘記。建議你從非門開始耐心搭完這七個門每搭一個都量一量電壓出問題就順著節(jié)點(diǎn)查這套基本功練扎實(shí)了后面無論是學(xué)單片機(jī)還是學(xué)嵌入式都會順暢得多。