คำตอบ:
ในการรับการดำเนินการที่ไม่กลับด้านสำหรับตรรกะ (เช่น AND หรือ OR เทียบกับ NAND หรือ NOR) คุณจะต้องใช้งานทรานซิสเตอร์ในโหมด Common-drain ซึ่งเรียกอีกอย่างว่าโหมด "แหล่งผู้ติดตาม"
ท่ามกลางปัญหากับโหมดนี้สำหรับตรรกะ:
เมื่อรวมกันแล้วปัญหาเหล่านี้หมายความว่าคุณไม่สามารถเชื่อมต่อเอาท์พุทของเกตนี้ไปยังอินพุตของสำเนาอื่นได้ สิ่งนี้ทำให้มันค่อนข้างไร้ประโยชน์ในการสร้างวงจรที่ซับซ้อนมากขึ้น
นี่คือเหตุผลที่ตระกูลตรรกะที่ประสบความสำเร็จทั้งหมด1สร้างขึ้นโดยใช้ทรานซิสเตอร์ในโหมด Common-Source (หรือ Common-emitter) ซึ่งมีแรงดันไฟฟ้าที่เพิ่มขึ้นอย่างมากและไม่มีออฟเซ็ตสะสมระหว่างอินพุตและเอาต์พุต - แต่เอาต์พุตกลับด้านด้วยอินพุต ดังนั้นฟังก์ชั่นพื้นฐานรวมถึงการผกผัน: NAND หรือ NOR
โบนัสประตู NAND และ NOR เป็น "การทำงานอย่างสมบูรณ์" ซึ่งหมายความว่าคุณสามารถสร้างฟังก์ชั่นลอจิกใด ๆ ได้เลย (รวมถึงองค์ประกอบที่เก็บข้อมูลเช่นแลตช์และรองเท้าแตะ) จากประตู NAND ทั้งหมดหรือประตู NOR ทั้งหมด
1เพื่อระบุตระกูลตรรกะที่ใช้แรงดันไฟฟ้าเป็นสถานะลอจิก ซึ่งรวมถึง RTL, DTL, TTL, PMOS, NMOS และ CMOS ตระกูลโลจิกโหมดปัจจุบันเช่นECLใช้การรวมกันของผู้ติดตาม emitter และทรานซิสเตอร์ทั่วไปเพื่อบรรลุจุดสิ้นสุดเดียวกันในขณะที่หลีกเลี่ยงความอิ่มตัว (สำหรับความเร็ว)
สิ่งที่คุณอธิบายเป็นตรรกะ PMOS มีข้อเสียอย่างมีนัยสำคัญบางส่วนเหนือ CMOS:
หากค่าของตัวต้านทานต่ำเกตจะใช้พลังงานสถิตย์จำนวนมากเมื่อเกตทำงาน CMOS เกตใช้พลังงานเป็นหลักไม่มีพลังงานเมื่อพวกเขาไม่ได้สลับอย่างแข็งขัน
หากค่าของตัวต้านทานสูงประตูจะปิดช้าเนื่องจากความจุของประตูใด ๆ ที่ขับเคลื่อนด้วยเอาต์พุตจะต้องถูกปล่อยผ่านตัวต้านทาน นอกจากนี้ตัวต้านทานที่มีมูลค่าสูงจะกินพื้นที่มากกว่าชุดทรานซิสเตอร์เสริม
สำหรับเหตุผลที่กระบวนการที่เกี่ยวข้องกับการ PMOS มีประสิทธิภาพน้อยกว่าผกผัน - ตรรกะ NMOS
เหตุผลที่ฉันไม่คิดว่ามีใครพูดถึง: ข้อ จำกัด ด้านเทคโนโลยี:
ตัวต้านทานบนชิปมีขนาดใหญ่เมื่อเทียบกับทรานซิสเตอร์ เพื่อให้ได้ค่าที่เหมาะสมเรากำลังพูดถึงคำสั่งของขนาดใหญ่กว่าทรานซิสเตอร์ที่เล็กที่สุด กล่าวอีกนัยหนึ่งถัดจากข้อดีอื่น ๆ ทั้งหมดที่คุณได้รับจาก CMOS ที่เหมาะสม (กระแสคงที่ระดับไดรฟ์การแกว่งเอาต์พุต) นอกจากนี้ยังมีราคาถูกกว่ามาก
การจัดรูปแบบ: ทรานซิสเตอร์บนลอจิกสามารถมีขนาดเล็กได้เนื่องจากมีการจัดรูปแบบซ้ำ ๆ กัน นอกจากนี้ยังช่วยให้พวกเขาได้รับผลตอบแทนที่สูงขึ้นและมีประสิทธิภาพที่สอดคล้องกันมากขึ้น การโยนตัวต้านทานเข้าไปทำลายสิ่งนี้
ความจุ: ข้อ จำกัด ของความเร็วในระบบลอจิกคือความจุของขั้นตอนต่อไป ความจุที่มากขึ้นหมายถึงการทำงานที่ช้าลง (ประสิทธิภาพน้อยลง) หรือความต้องการไดรฟ์ที่มากขึ้น (ทรานซิสเตอร์ขนาดใหญ่, พื้นที่มากขึ้น, กระแสคงที่มากขึ้น, การใช้พลังงานมากขึ้น, ความจุมากขึ้นที่นำเสนอไปยังระยะก่อนหน้า) ตัวต้านทานขนาดใหญ่อาจให้ความจุมากขึ้นในการชาร์จเนื่องจากมันใช้พื้นที่ขนาดใหญ่ทางกายภาพ ซึ่งอาจส่งผลกระทบต่อประสิทธิภาพการทำงาน
บางครั้งก็ทำในเทคโนโลยีพิเศษอื่น ๆ ที่คุณอาจไม่มีทรานซิสเตอร์ลอจิกที่ดี (สำหรับการใช้งานแบบอะนาล็อก / RF)
ลอจิกของตัวต้านทานทรานซิสเตอร์เป็นสนามของความรู้ คุณสมบัติของประตูลอจิกที่พึ่งพาตัวต้านทานนั้นแตกต่างจากคุณสมบัติของที่ใช้ตัวต้านทาน สำหรับหนึ่งตัวต้านทานแบบเลื่อนลงซึ่งเก็บไว้ในสถานะสูงจะกระจายอำนาจอย่างต่อเนื่อง นี่อาจเป็นปัญหาสำหรับการออกแบบด้วยแบตเตอรี่หรือความหนาแน่นสูง เช่นเดียวกับวิธีอื่น ๆ (สำหรับ pulldowns ที่มีระดับต่ำ)
พื้นที่อื่นที่มีความแตกต่างใหญ่คือความเร็วและแรงขับ โครงสร้างเอาต์พุตแบบพุช - พูลที่ใช้ใน CMOS สามารถสลับได้อย่างรวดเร็วโดยไม่กระจายอำนาจเมื่อเกิดไฟฟ้า
โปรดทราบว่าวงจรที่คุณวาดจะไม่ทำงานเลย คุณไม่สามารถใส่ NMOS ในสาขาด้านบนเว้นแต่ว่าแรงดันไฟฟ้าอินพุตสูงกว่า VCC ถ้าเอาท์พุทมีภาระมากวงจรของคุณจะไม่สามารถขับได้ทุกที่ใกล้กับ VCC มันอาจจะไม่สูงพอที่จะรับรู้ว่า "สูง" โดยบางประตูตรรกะ
นี่ไม่ใช่แค่ nitpick ตามที่ปรากฎมันเป็นเรื่องยากมากที่จะสร้างบางสิ่งบางอย่างที่สลับไปมาระหว่างรถไฟกับรถไฟในขั้นตอนเดียวเว้นแต่ว่ามันจะกลับด้านในธรรมชาติ (เหมือน NAND และ NOR) และนี่คือเหตุผลที่แท้จริงว่าทำไม AND ประตูจึงใช้ NAND ตามด้วย NOT (อินเวอร์เตอร์) ไม่มีใครในโลกที่รู้วิธีในการสร้าง CMOS และเกทวัตถุประสงค์ทั่วไปที่มีทรานซิสเตอร์น้อยกว่า 6 ตัว เช่นเดียวกับ OR
เหตุผลสำคัญในตรรกะ TTL และฉันอยากจะแนะนำในตระกูลลอจิกส่วนใหญ่ก็คือองค์ประกอบที่ได้รับจะกลับหัวกลับหาง เพื่อให้ได้ผลลัพธ์ที่ไม่มีการแปลงกลับที่มีคุณสมบัติไดรฟ์ที่ดีต้องมีอินเวอร์เตอร์เพิ่มเติม
อินเวอร์เตอร์นี้เป็นสิ่งที่ไม่ดี
เนื่องจากเรามักจะต่อสู้ด้วยความเร็วด้วยประตูที่ไม่ต่อเนื่อง (หรือเมื่อพวกเขาเป็นตัวเลือกเดียว) การคว่ำประตูเข้าไปควบคุมวันนั้น ประตูที่ไม่กลับด้านนั้นมีให้บริการ (เปรียบเทียบ 7400 กับ 7408)
แบบอย่างที่หลักนี้เป็นประตูหรือคว่ำ สำหรับหมายเลข TTL ทั่วไปการหน่วงเวลาการแพร่กระจายจะเหมือนกับ NAND และ NOR แต่มีตรรกะสองระดับ
ข้อดีของการใช้การออกแบบ CMOS มีมากมาย:
ดังนั้นเกท NAND ตามด้วยอินเวอร์เตอร์จึงใช้เพื่อออกแบบเกทและ
การสร้าง AND จาก NAND อนุญาตให้หนึ่งใช้ขนาดเกตน้อยที่สุดสำหรับตรรกะและขนาดทรานซิสเตอร์สอง (และสองเท่านั้น) ในอินเวอร์เตอร์เพื่อขับเคลื่อนสาย สิ่งนี้จะช่วยเพิ่มความเร็วและลดการสูญเสียพลังงานให้น้อยที่สุดโดยใช้พื้นที่เพียงเล็กน้อยสำหรับทรานซิสเตอร์เพิ่มเติม (การบัญชีสำหรับขนาดของตัวต้านทานที่จำเป็นในการขับเคลื่อนสายในแอปพลิเคชันที่ต้องการ)
นอกจากนี้เพื่อแบ่งปันสติปัญญาที่ฉันได้เรียนรู้ในวิทยาลัย (เมื่อนานมาแล้วในกาแลคซีไกลแสนไกล ... ): เราเคยสนุกกับการนำเสนอเกี่ยวกับตรรกะของแถวลำดับประตู ในตอนท้ายนักเรียนถามว่าทำไมวิศวกรควรใส่ใจลดจำนวนประตู NAND ที่ใช้เมื่อประตู NAND ทั้งหมดเหล่านั้นอยู่บนชิปตั้งแต่แรก? คำตอบของผู้นำเสนอติดกับฉันเป็นเวลา 30 ปี: เพราะถ้าเราทำไม่ได้คู่แข่งของเราจะ
หากคู่แข่งของคุณสามารถสร้างวงจรที่เร็วขึ้นและมีประสิทธิภาพมากขึ้นโดยไม่มีความแตกต่างที่เห็นได้ในต้นทุนการใช้ตัวต้านทานเป็นข้อผิดพลาดทางการค้าไม่ใช่แค่ความผิดพลาดทางวิศวกรรม
สัญญาณลอจิกที่ผ่านประตูไม่ขยายจะสิ้นสุดลงอย่างมีนัยสำคัญอ่อนแอกว่ามันจะเริ่มต้นด้วย ในขณะที่บางคนอาจรวมถึงประตูที่ไม่มีการกลับด้านและ AND ภายในชิป แต่ประตูที่ป้อนโดยเอาต์พุตที่อ่อนแออาจมีการสลับช้ากว่าประตูที่ป้อนโดยประตูที่ป้อนด้วยเอาต์พุตที่แข็งแกร่งซึ่งเวลาที่ใช้ในการส่งสัญญาณผ่าน NAND และอีกหนึ่งเกทมีโอกาสน้อยกว่าถ้า NAND และอินเวอร์เตอร์ถูกแทนที่ด้วยเอาท์พุตที่อ่อนแอ
โปรดทราบว่าแม้ว่าจะมีทั้งทรานซิสเตอร์ NMOS และ PMOS และต้องการสร้างเอาต์พุตอ่อนและเกต แต่ก็ควรสร้างเกทในลักษณะที่คล้ายกับเกต CMOS NOR แต่กลับเปลี่ยนทรานซิสเตอร์ NMOS และ PMOS เพื่อหลีกเลี่ยง การกระจายพลังงานคงที่ ตัวต้านทานมีราคาแพงมากดังนั้นจึงควรหลีกเลี่ยงการใช้มันหากจำเป็นจริงๆ
อย่างไรก็ตามจุดที่ไม่ได้กล่าวถึงในคำตอบอื่น ๆ คือประตูกลับด้านสามารถมีส่วนผสมของอนุกรมและเอาท์พุทแบบขนาน ตัวอย่างเช่นเราสามารถมีเกตคอมเพล็กซ์เชิงปฏิบัติที่คำนวณ "ไม่ ((X และ Y) หรือ (X และ Z) หรือ (Y และ Z))" โดยใช้การผกผันเพียงระดับเดียว แม้ว่ามันจะไม่มีประโยชน์ที่จะมี "AND" ซึ่งฟีดเอาต์พุตไปยังหลาย ๆ ที่ในวงจร แต่ก็สามารถรวมประตู "AND" ในอินพุตหนึ่งหรือมากกว่าหนึ่งของเกต "NOR" หรือเกต "หรือ" ที่หนึ่งหรือ อินพุตเพิ่มเติมของเกต "NAND"